Version 15.54

This commit is contained in:
Antonio Cañas Vargas 2015-12-01 00:38:22 +01:00
parent 5a4185c184
commit 271e55d00f
10 changed files with 381 additions and 322 deletions

View File

@ -589,11 +589,11 @@ a:hover {text-decoration:underline;}
box-sizing:border-box;
width:100%;
}
#main_horizontal .MENU_LIST
#main_horizontal .MENU_LIST_CONTAINER
{
width:100%;
}
#main_horizontal ul
#main_horizontal .MENU_LIST
{
display:table;
box-sizing:border-box;
@ -648,11 +648,11 @@ a:hover {text-decoration:underline;}
box-sizing:border-box;
width:100%;
}
#main_vertical .MENU_LIST
#main_vertical .MENU_LIST_CONTAINER
{
width:100%;
}
#main_vertical ul
#main_vertical .MENU_LIST
{
display:table;
box-sizing:border-box;
@ -710,13 +710,13 @@ a:hover {text-decoration:underline;}
box-sizing:border-box;
width:100%;
}
#main_vertical .MENU_LIST
#main_vertical .MENU_LIST_CONTAINER
{
display:table-cell;
box-sizing:border-box;
width:180px;
}
#main_vertical ul
#main_vertical .MENU_LIST
{
display:table;
margin:0;

View File

@ -75,7 +75,7 @@ extern struct Globals Gbl;
/************************ Internal global variables **************************/
/*****************************************************************************/
/*
1122 actions in one CGI:
1124 actions in one CGI:
0. ActAll Any action (used for statistics)
1. ActUnk Unknown action
2. ActHom Show home menu
@ -439,7 +439,7 @@ Course:
310. ActSeeSylPra Show the syllabus of practicals
311. ActSeeAdmDocCrs Documents zone of the course (see or admin)
312. ActAdmCom Request the administration of the files of the common zone of the course or of a group
313. ActSeeCrsTimTbl Show the timetable
313. ActSeeCrsTT Show the timetable
314. ActSeeBib Show the bibliography
315. ActSeeFAQ Show the FAQ
316. ActSeeCrsLnk Show links related to the course
@ -450,9 +450,10 @@ Course:
319. ActChgCrsLog Change log in method for this course
320. ActEdiCrsInf Edit general information about the course
321. ActEdiTchGui Edit teaching guide of the course
322. ActPrnCrsTimTbl Show print view of the timetable
323. ActEdiCrsTimTbl Edit the timetable
324. ActChgCrsTimTbl Modify the timetable of the course
322. ActPrnCrsTT Show print view of the timetable
323. ActEdiCrsTT Edit the timetable
324. ActChgCrsTT Modify the timetable of the course
New! 1123. ActChgCrsTT1stDay Change first day of week and show timetable of the course
325. ActEdiSylLec Edit the syllabus of lectures
326. ActEdiSylPra Edit the syllabus of practicals
327. ActDelItmSylLec Remove a item from syllabus of lectures
@ -1218,7 +1219,7 @@ Statistics:
Profile:
1044. ActFrmLogIn Show form to log in
1045. ActMyCrs Select one of my courses
1046. ActSeeMyTimTbl Show the timetable of all courses of the logged user
1046. ActSeeMyTT Show the timetable of all courses of the logged user
1047. ActFrmUsrAcc Show form to the creation or change of user's account
1048. ActReqEdiRecCom Request the edition of the record with the personal data of the user
1049. ActEdiPrf Show forms to edit preferences
@ -1236,12 +1237,12 @@ Profile:
1059. ActChgMyRol Change type of logged user
1060. ActCreUsrAcc Create new user account
1061. ActRemID_Me Remove one of my user's IDs
1061. ActRemID_Me Remove one of my user's IDs
1062. ActNewIDMe Create a new user's ID for me
1063. ActRemOldNic Remove one of my old nicknames
1064. ActChgNic Change my nickname
1065. ActRemMaiMe Remove one of my old e-mails
1066. ActNewMaiMe Change my e-mail address
1066. ActNewMaiMe Change my e-mail address
1067. ActCnfMai Confirm e-mail address
1068. ActFrmChgMyPwd Show form to the change of the password
1069. ActChgPwd Change the password
@ -1283,9 +1284,12 @@ Profile:
1099. ActChgMnu Change menu
1100. ActChgNtfPrf Change whether to notify by e-mail new messages
1101. ActPrnUsrQR Show my QR code ready to print
1102. ActPrnMyTimTbl Show the timetable listo to impresión of all my courses
1102. ActPrnMyTT Show the timetable listo to impresión of all my courses
1103. ActEdiTut Edit the timetable of tutorías
1104. ActChgTut Modify the timetable of tutorías
New! 1124. ActChgMyTT1stDay Change first day of week and show timetable of the course
1105. ActReqRemFilBrf Request removal of a file of the briefcase
1106. ActRemFilBrf Remove a file of the briefcase
1107. ActRemFolBrf Remove a folder empty of the briefcase
@ -1381,7 +1385,7 @@ const struct Act_Menu Act_Menu[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
{ActSeeAdmDocCrs ,false},
{ActAdmCom ,true },
{ActSeeCrsTimTbl ,false},
{ActSeeCrsTT ,false},
{ActSeeBib ,false},
{ActSeeFAQ ,false},
{ActSeeCrsLnk ,true },
@ -1446,7 +1450,7 @@ const struct Act_Menu Act_Menu[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
{ActFrmLogIn ,true },
{ActMyCrs ,false},
{ActSeeMyTimTbl ,true },
{ActSeeMyTT ,true },
{ActFrmUsrAcc ,false},
{ActReqEdiRecCom ,false},
@ -1841,7 +1845,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActSeeSyl */{1242, 3,TabCrs,ActSeeSyl ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Inf_ShowInfo ,"presentation" },
/* ActSeeAdmDocCrs */{ 0, 4,TabCrs,ActSeeAdmDocCrs ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"folder" },
/* ActAdmCom */{ 461, 5,TabCrs,ActAdmCom ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"folderusers" },
/* ActSeeCrsTimTbl */{ 25, 6,TabCrs,ActSeeCrsTimTbl ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowClassTimeTable ,"clock" },
/* ActSeeCrsTT */{ 25, 6,TabCrs,ActSeeCrsTT ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowClassTimeTable ,"clock" },
/* ActSeeBib */{ 32, 7,TabCrs,ActSeeBib ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Inf_ShowInfo ,"books" },
/* ActSeeFAQ */{ 54, 8,TabCrs,ActSeeFAQ ,0x118,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Inf_ShowInfo ,"faq" },
/* ActSeeCrsLnk */{ 9, 9,TabCrs,ActSeeCrsLnk ,0x118,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Inf_ShowInfo ,"link" },
@ -1853,9 +1857,12 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActChgCrsLog */{1024,-1,TabCrs,ActSeeCrsInf ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Crs_ChangeCourseConfig ,NULL},
/* ActEdiCrsInf */{ 848,-1,TabCrs,ActSeeCrsInf ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Inf_FormsToSelSendInfo ,NULL},
/* ActEdiTchGui */{ 785,-1,TabCrs,ActSeeTchGui ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Inf_FormsToSelSendInfo ,NULL},
/* ActPrnCrsTimTbl */{ 152,-1,TabCrs,ActSeeCrsTimTbl ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,TT_ShowClassTimeTable ,NULL},
/* ActEdiCrsTimTbl */{ 45,-1,TabCrs,ActSeeCrsTimTbl ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_EditCrsTimeTable ,NULL},
/* ActChgCrsTimTbl */{ 53,-1,TabCrs,ActSeeCrsTimTbl ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_EditCrsTimeTable ,NULL},
/* ActPrnCrsTT */{ 152,-1,TabCrs,ActSeeCrsTT ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,TT_ShowClassTimeTable ,NULL},
/* ActEdiCrsTT */{ 45,-1,TabCrs,ActSeeCrsTT ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_EditCrsTimeTable ,NULL},
/* ActChgCrsTT */{ 53,-1,TabCrs,ActSeeCrsTT ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_EditCrsTimeTable ,NULL},
/* ActChgCrsTT1stDay */{1486,-1,TabCrs,ActSeeCrsTT ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,Cal_ChangeFirstDayOfWeek ,TT_ShowClassTimeTable ,NULL},
/* ActSeeSylLec */{ 28,-1,TabCrs,ActSeeSyl ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Inf_ShowInfo ,NULL},
/* ActSeeSylPra */{ 20,-1,TabCrs,ActSeeSyl ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Inf_ShowInfo ,NULL},
/* ActEdiSylLec */{ 44,-1,TabCrs,ActSeeSyl ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Inf_FormsToSelSendInfo ,NULL},
@ -2694,7 +2701,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
// Actions in menu:
/* ActFrmLogIn */{ 843, 0,TabPrf,ActFrmLogIn ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_WriteFormLoginLogout ,"keyuser" },
/* ActMyCrs */{ 987, 1,TabPrf,ActMyCrs ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Crs_ReqSelectOneOfMyCourses ,"mygroups" },
/* ActSeeMyTimTbl */{ 408, 2,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowClassTimeTable ,"clock" },
/* ActSeeMyTT */{ 408, 2,TabPrf,ActSeeMyTT ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowClassTimeTable ,"clock" },
/* ActFrmUsrAcc */{ 36, 3,TabPrf,ActFrmUsrAcc ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Acc_ShowFormAccount ,"arroba" },
/* ActReqEdiRecCom */{ 285, 4,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ShowFormMyCommRecord ,"card" },
/* ActEdiPrf */{ 673, 5,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pre_EditPrefs ,"heart" },
@ -2767,9 +2774,10 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActPrnUsrQR */{1022,-1,TabPrf,ActFrmUsrAcc ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,QR_PrintQRCode ,NULL},
/* ActPrnMyTimTbl */{ 409,-1,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,TT_ShowClassTimeTable ,NULL},
/* ActEdiTut */{ 65,-1,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowMyTutTimeTable ,NULL},
/* ActChgTut */{ 48,-1,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowMyTutTimeTable ,NULL},
/* ActPrnMyTT */{ 409,-1,TabPrf,ActSeeMyTT ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,TT_ShowClassTimeTable ,NULL},
/* ActEdiTut */{ 65,-1,TabPrf,ActSeeMyTT ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowMyTutTimeTable ,NULL},
/* ActChgTut */{ 48,-1,TabPrf,ActSeeMyTT ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowMyTutTimeTable ,NULL},
/* ActChgMyTT1stDay */{1487,-1,TabPrf,ActSeeMyTT ,0x1FF,0x1FF,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Cal_ChangeFirstDayOfWeek ,TT_ShowClassTimeTable ,NULL},
/* ActReqRemFilBrf */{ 286,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_AskRemFileFromTree ,NULL},
/* ActRemFilBrf */{ 155,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFileFromTree ,NULL},
@ -2818,7 +2826,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActSeeRecSevTch, // #22
ActAdmBrf, // #23
-1, // #24 (obsolete action)
ActSeeCrsTimTbl, // #25
ActSeeCrsTT, // #25
ActReqMsgUsr, // #26
ActRcvMsgUsr, // #27
ActSeeSylLec, // #28
@ -2838,7 +2846,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActLstStdAll, // #42
-1, // #43 (obsolete action)
ActEdiSylLec, // #44
ActEdiCrsTimTbl, // #45
ActEdiCrsTT, // #45
-1, // #46 (obsolete action)
-1, // #47 (obsolete action)
ActChgTut, // #48
@ -2846,7 +2854,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
-1, // #50 (obsolete action)
ActSeeChtRms, // #51
ActCht, // #52
ActChgCrsTimTbl, // #53
ActChgCrsTT, // #53
ActSeeFAQ, // #54
-1, // #55 (obsolete action)
-1, // #56 (obsolete action)
@ -2945,7 +2953,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
-1, // #149 (obsolete action)
ActFrmCreWrkUsr, // #150
-1, // #151 (obsolete action)
ActPrnCrsTimTbl, // #152
ActPrnCrsTT, // #152
ActRcvFilBrfCla, // #153
-1, // #154 (obsolete action)
ActRemFilBrf, // #155
@ -3201,8 +3209,8 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActPlaTxtEdiFAQ, // #405
ActRcvPlaTxtFAQ, // #406
-1, // #407 (obsolete action)
ActSeeMyTimTbl, // #408
ActPrnMyTimTbl, // #409
ActSeeMyTT, // #408
ActPrnMyTT, // #409
ActExpBrf, // #410
ActConBrf, // #411
-1, // #412 (obsolete action)
@ -4282,6 +4290,8 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActNewMaiTch, // #1483
ActChg1stDay, // #1484
ActChgCal1stDay, // #1485
ActChgCrsTT1stDay, // #1486
ActChgMyTT1stDay, // #1487
};
/*****************************************************************************/
@ -4717,10 +4727,12 @@ void Act_AdjustCurrentAction (void)
case ActReqEdiMyIns:
case ActReqSelGrp:
case ActReqMdfOneStd: // A student use this action to remove him/herself from current course
case ActSeeCrsTimTbl:
case ActPrnCrsTimTbl:
case ActSeeMyTimTbl:
case ActPrnMyTimTbl:
case ActSeeCrsTT:
case ActPrnCrsTT:
case ActChgCrsTT1stDay:
// case ActSeeMyTT: // TODO: Remove these 3 actions from here?
// case ActPrnMyTT:
// case ActChgMyTT1stDay:
// These last actions are allowed in order to students could see/print timetable before register in groups
break;
default:

View File

@ -70,9 +70,9 @@ typedef enum
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_NUM_ACTIONS (7+52+15+90+73+68+204+183+154+171+27+79)
#define Act_NUM_ACTIONS (7+52+15+90+73+68+205+183+154+171+27+80)
#define Act_MAX_ACTION_COD 1485
#define Act_MAX_ACTION_COD 1487
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
@ -447,7 +447,7 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
#define ActSeeSyl (ActDowComDeg+ 4)
#define ActSeeAdmDocCrs (ActDowComDeg+ 5)
#define ActAdmCom (ActDowComDeg+ 6)
#define ActSeeCrsTimTbl (ActDowComDeg+ 7)
#define ActSeeCrsTT (ActDowComDeg+ 7)
#define ActSeeBib (ActDowComDeg+ 8)
#define ActSeeFAQ (ActDowComDeg+ 9)
#define ActSeeCrsLnk (ActDowComDeg+ 10)
@ -457,206 +457,207 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
#define ActChgCrsLog (ActDowComDeg+ 13)
#define ActEdiCrsInf (ActDowComDeg+ 14)
#define ActEdiTchGui (ActDowComDeg+ 15)
#define ActPrnCrsTimTbl (ActDowComDeg+ 16)
#define ActEdiCrsTimTbl (ActDowComDeg+ 17)
#define ActChgCrsTimTbl (ActDowComDeg+ 18)
#define ActSeeSylLec (ActDowComDeg+ 19)
#define ActSeeSylPra (ActDowComDeg+ 20)
#define ActEdiSylLec (ActDowComDeg+ 21)
#define ActEdiSylPra (ActDowComDeg+ 22)
#define ActDelItmSylLec (ActDowComDeg+ 23)
#define ActDelItmSylPra (ActDowComDeg+ 24)
#define ActUp_IteSylLec (ActDowComDeg+ 25)
#define ActUp_IteSylPra (ActDowComDeg+ 26)
#define ActDwnIteSylLec (ActDowComDeg+ 27)
#define ActDwnIteSylPra (ActDowComDeg+ 28)
#define ActRgtIteSylLec (ActDowComDeg+ 29)
#define ActRgtIteSylPra (ActDowComDeg+ 30)
#define ActLftIteSylLec (ActDowComDeg+ 31)
#define ActLftIteSylPra (ActDowComDeg+ 32)
#define ActInsIteSylLec (ActDowComDeg+ 33)
#define ActInsIteSylPra (ActDowComDeg+ 34)
#define ActModIteSylLec (ActDowComDeg+ 35)
#define ActModIteSylPra (ActDowComDeg+ 36)
#define ActPrnCrsTT (ActDowComDeg+ 16)
#define ActEdiCrsTT (ActDowComDeg+ 17)
#define ActChgCrsTT (ActDowComDeg+ 18)
#define ActChgCrsTT1stDay (ActDowComDeg+ 19)
#define ActSeeSylLec (ActDowComDeg+ 20)
#define ActSeeSylPra (ActDowComDeg+ 21)
#define ActEdiSylLec (ActDowComDeg+ 22)
#define ActEdiSylPra (ActDowComDeg+ 23)
#define ActDelItmSylLec (ActDowComDeg+ 24)
#define ActDelItmSylPra (ActDowComDeg+ 25)
#define ActUp_IteSylLec (ActDowComDeg+ 26)
#define ActUp_IteSylPra (ActDowComDeg+ 27)
#define ActDwnIteSylLec (ActDowComDeg+ 28)
#define ActDwnIteSylPra (ActDowComDeg+ 29)
#define ActRgtIteSylLec (ActDowComDeg+ 30)
#define ActRgtIteSylPra (ActDowComDeg+ 31)
#define ActLftIteSylLec (ActDowComDeg+ 32)
#define ActLftIteSylPra (ActDowComDeg+ 33)
#define ActInsIteSylLec (ActDowComDeg+ 34)
#define ActInsIteSylPra (ActDowComDeg+ 35)
#define ActModIteSylLec (ActDowComDeg+ 36)
#define ActModIteSylPra (ActDowComDeg+ 37)
#define ActChgToSeeDocCrs (ActDowComDeg+ 37)
#define ActSeeDocCrs (ActDowComDeg+ 38)
#define ActExpSeeDocCrs (ActDowComDeg+ 39)
#define ActConSeeDocCrs (ActDowComDeg+ 40)
#define ActZIPSeeDocCrs (ActDowComDeg+ 41)
#define ActReqDatSeeDocCrs (ActDowComDeg+ 42)
#define ActDowSeeDocCrs (ActDowComDeg+ 43)
#define ActChgToSeeDocCrs (ActDowComDeg+ 38)
#define ActSeeDocCrs (ActDowComDeg+ 39)
#define ActExpSeeDocCrs (ActDowComDeg+ 40)
#define ActConSeeDocCrs (ActDowComDeg+ 41)
#define ActZIPSeeDocCrs (ActDowComDeg+ 42)
#define ActReqDatSeeDocCrs (ActDowComDeg+ 43)
#define ActDowSeeDocCrs (ActDowComDeg+ 44)
#define ActSeeDocGrp (ActDowComDeg+ 44)
#define ActExpSeeDocGrp (ActDowComDeg+ 45)
#define ActConSeeDocGrp (ActDowComDeg+ 46)
#define ActZIPSeeDocGrp (ActDowComDeg+ 47)
#define ActReqDatSeeDocGrp (ActDowComDeg+ 48)
#define ActDowSeeDocGrp (ActDowComDeg+ 49)
#define ActSeeDocGrp (ActDowComDeg+ 45)
#define ActExpSeeDocGrp (ActDowComDeg+ 46)
#define ActConSeeDocGrp (ActDowComDeg+ 47)
#define ActZIPSeeDocGrp (ActDowComDeg+ 48)
#define ActReqDatSeeDocGrp (ActDowComDeg+ 49)
#define ActDowSeeDocGrp (ActDowComDeg+ 50)
#define ActChgToAdmDocCrs (ActDowComDeg+ 50)
#define ActAdmDocCrs (ActDowComDeg+ 51)
#define ActReqRemFilDocCrs (ActDowComDeg+ 52)
#define ActRemFilDocCrs (ActDowComDeg+ 53)
#define ActRemFolDocCrs (ActDowComDeg+ 54)
#define ActCopDocCrs (ActDowComDeg+ 55)
#define ActPasDocCrs (ActDowComDeg+ 56)
#define ActRemTreDocCrs (ActDowComDeg+ 57)
#define ActFrmCreDocCrs (ActDowComDeg+ 58)
#define ActCreFolDocCrs (ActDowComDeg+ 59)
#define ActCreLnkDocCrs (ActDowComDeg+ 60)
#define ActRenFolDocCrs (ActDowComDeg+ 61)
#define ActRcvFilDocCrsDZ (ActDowComDeg+ 62)
#define ActRcvFilDocCrsCla (ActDowComDeg+ 63)
#define ActExpAdmDocCrs (ActDowComDeg+ 64)
#define ActConAdmDocCrs (ActDowComDeg+ 65)
#define ActZIPAdmDocCrs (ActDowComDeg+ 66)
#define ActShoDocCrs (ActDowComDeg+ 67)
#define ActHidDocCrs (ActDowComDeg+ 68)
#define ActReqDatAdmDocCrs (ActDowComDeg+ 69)
#define ActChgDatAdmDocCrs (ActDowComDeg+ 70)
#define ActDowAdmDocCrs (ActDowComDeg+ 71)
#define ActChgToAdmDocCrs (ActDowComDeg+ 51)
#define ActAdmDocCrs (ActDowComDeg+ 52)
#define ActReqRemFilDocCrs (ActDowComDeg+ 53)
#define ActRemFilDocCrs (ActDowComDeg+ 54)
#define ActRemFolDocCrs (ActDowComDeg+ 55)
#define ActCopDocCrs (ActDowComDeg+ 56)
#define ActPasDocCrs (ActDowComDeg+ 57)
#define ActRemTreDocCrs (ActDowComDeg+ 58)
#define ActFrmCreDocCrs (ActDowComDeg+ 59)
#define ActCreFolDocCrs (ActDowComDeg+ 60)
#define ActCreLnkDocCrs (ActDowComDeg+ 61)
#define ActRenFolDocCrs (ActDowComDeg+ 62)
#define ActRcvFilDocCrsDZ (ActDowComDeg+ 63)
#define ActRcvFilDocCrsCla (ActDowComDeg+ 64)
#define ActExpAdmDocCrs (ActDowComDeg+ 65)
#define ActConAdmDocCrs (ActDowComDeg+ 66)
#define ActZIPAdmDocCrs (ActDowComDeg+ 67)
#define ActShoDocCrs (ActDowComDeg+ 68)
#define ActHidDocCrs (ActDowComDeg+ 69)
#define ActReqDatAdmDocCrs (ActDowComDeg+ 70)
#define ActChgDatAdmDocCrs (ActDowComDeg+ 71)
#define ActDowAdmDocCrs (ActDowComDeg+ 72)
#define ActAdmDocGrp (ActDowComDeg+ 72)
#define ActReqRemFilDocGrp (ActDowComDeg+ 73)
#define ActRemFilDocGrp (ActDowComDeg+ 74)
#define ActRemFolDocGrp (ActDowComDeg+ 75)
#define ActCopDocGrp (ActDowComDeg+ 76)
#define ActPasDocGrp (ActDowComDeg+ 77)
#define ActRemTreDocGrp (ActDowComDeg+ 78)
#define ActFrmCreDocGrp (ActDowComDeg+ 79)
#define ActCreFolDocGrp (ActDowComDeg+ 80)
#define ActCreLnkDocGrp (ActDowComDeg+ 81)
#define ActRenFolDocGrp (ActDowComDeg+ 82)
#define ActRcvFilDocGrpDZ (ActDowComDeg+ 83)
#define ActRcvFilDocGrpCla (ActDowComDeg+ 84)
#define ActExpAdmDocGrp (ActDowComDeg+ 85)
#define ActConAdmDocGrp (ActDowComDeg+ 86)
#define ActZIPAdmDocGrp (ActDowComDeg+ 87)
#define ActShoDocGrp (ActDowComDeg+ 88)
#define ActHidDocGrp (ActDowComDeg+ 89)
#define ActReqDatAdmDocGrp (ActDowComDeg+ 90)
#define ActChgDatAdmDocGrp (ActDowComDeg+ 91)
#define ActDowAdmDocGrp (ActDowComDeg+ 92)
#define ActAdmDocGrp (ActDowComDeg+ 73)
#define ActReqRemFilDocGrp (ActDowComDeg+ 74)
#define ActRemFilDocGrp (ActDowComDeg+ 75)
#define ActRemFolDocGrp (ActDowComDeg+ 76)
#define ActCopDocGrp (ActDowComDeg+ 77)
#define ActPasDocGrp (ActDowComDeg+ 78)
#define ActRemTreDocGrp (ActDowComDeg+ 79)
#define ActFrmCreDocGrp (ActDowComDeg+ 80)
#define ActCreFolDocGrp (ActDowComDeg+ 81)
#define ActCreLnkDocGrp (ActDowComDeg+ 82)
#define ActRenFolDocGrp (ActDowComDeg+ 83)
#define ActRcvFilDocGrpDZ (ActDowComDeg+ 84)
#define ActRcvFilDocGrpCla (ActDowComDeg+ 85)
#define ActExpAdmDocGrp (ActDowComDeg+ 86)
#define ActConAdmDocGrp (ActDowComDeg+ 87)
#define ActZIPAdmDocGrp (ActDowComDeg+ 88)
#define ActShoDocGrp (ActDowComDeg+ 89)
#define ActHidDocGrp (ActDowComDeg+ 90)
#define ActReqDatAdmDocGrp (ActDowComDeg+ 91)
#define ActChgDatAdmDocGrp (ActDowComDeg+ 92)
#define ActDowAdmDocGrp (ActDowComDeg+ 93)
#define ActChgToAdmCom (ActDowComDeg+ 93)
#define ActChgToAdmCom (ActDowComDeg+ 94)
#define ActAdmComCrs (ActDowComDeg+ 94)
#define ActReqRemFilComCrs (ActDowComDeg+ 95)
#define ActRemFilComCrs (ActDowComDeg+ 96)
#define ActRemFolComCrs (ActDowComDeg+ 97)
#define ActCopComCrs (ActDowComDeg+ 98)
#define ActPasComCrs (ActDowComDeg+ 99)
#define ActRemTreComCrs (ActDowComDeg+100)
#define ActFrmCreComCrs (ActDowComDeg+101)
#define ActCreFolComCrs (ActDowComDeg+102)
#define ActCreLnkComCrs (ActDowComDeg+103)
#define ActRenFolComCrs (ActDowComDeg+104)
#define ActRcvFilComCrsDZ (ActDowComDeg+105)
#define ActRcvFilComCrsCla (ActDowComDeg+106)
#define ActExpComCrs (ActDowComDeg+107)
#define ActConComCrs (ActDowComDeg+108)
#define ActZIPComCrs (ActDowComDeg+109)
#define ActReqDatComCrs (ActDowComDeg+110)
#define ActChgDatComCrs (ActDowComDeg+111)
#define ActDowComCrs (ActDowComDeg+112)
#define ActAdmComCrs (ActDowComDeg+ 95)
#define ActReqRemFilComCrs (ActDowComDeg+ 96)
#define ActRemFilComCrs (ActDowComDeg+ 97)
#define ActRemFolComCrs (ActDowComDeg+ 98)
#define ActCopComCrs (ActDowComDeg+ 99)
#define ActPasComCrs (ActDowComDeg+100)
#define ActRemTreComCrs (ActDowComDeg+101)
#define ActFrmCreComCrs (ActDowComDeg+102)
#define ActCreFolComCrs (ActDowComDeg+103)
#define ActCreLnkComCrs (ActDowComDeg+104)
#define ActRenFolComCrs (ActDowComDeg+105)
#define ActRcvFilComCrsDZ (ActDowComDeg+106)
#define ActRcvFilComCrsCla (ActDowComDeg+107)
#define ActExpComCrs (ActDowComDeg+108)
#define ActConComCrs (ActDowComDeg+109)
#define ActZIPComCrs (ActDowComDeg+110)
#define ActReqDatComCrs (ActDowComDeg+111)
#define ActChgDatComCrs (ActDowComDeg+112)
#define ActDowComCrs (ActDowComDeg+113)
#define ActAdmComGrp (ActDowComDeg+113)
#define ActReqRemFilComGrp (ActDowComDeg+114)
#define ActRemFilComGrp (ActDowComDeg+115)
#define ActRemFolComGrp (ActDowComDeg+116)
#define ActCopComGrp (ActDowComDeg+117)
#define ActPasComGrp (ActDowComDeg+118)
#define ActRemTreComGrp (ActDowComDeg+119)
#define ActFrmCreComGrp (ActDowComDeg+120)
#define ActCreFolComGrp (ActDowComDeg+121)
#define ActCreLnkComGrp (ActDowComDeg+122)
#define ActRenFolComGrp (ActDowComDeg+123)
#define ActRcvFilComGrpDZ (ActDowComDeg+124)
#define ActRcvFilComGrpCla (ActDowComDeg+125)
#define ActExpComGrp (ActDowComDeg+126)
#define ActConComGrp (ActDowComDeg+127)
#define ActZIPComGrp (ActDowComDeg+128)
#define ActReqDatComGrp (ActDowComDeg+129)
#define ActChgDatComGrp (ActDowComDeg+130)
#define ActDowComGrp (ActDowComDeg+131)
#define ActAdmComGrp (ActDowComDeg+114)
#define ActReqRemFilComGrp (ActDowComDeg+115)
#define ActRemFilComGrp (ActDowComDeg+116)
#define ActRemFolComGrp (ActDowComDeg+117)
#define ActCopComGrp (ActDowComDeg+118)
#define ActPasComGrp (ActDowComDeg+119)
#define ActRemTreComGrp (ActDowComDeg+120)
#define ActFrmCreComGrp (ActDowComDeg+121)
#define ActCreFolComGrp (ActDowComDeg+122)
#define ActCreLnkComGrp (ActDowComDeg+123)
#define ActRenFolComGrp (ActDowComDeg+124)
#define ActRcvFilComGrpDZ (ActDowComDeg+125)
#define ActRcvFilComGrpCla (ActDowComDeg+126)
#define ActExpComGrp (ActDowComDeg+127)
#define ActConComGrp (ActDowComDeg+128)
#define ActZIPComGrp (ActDowComDeg+129)
#define ActReqDatComGrp (ActDowComDeg+130)
#define ActChgDatComGrp (ActDowComDeg+131)
#define ActDowComGrp (ActDowComDeg+132)
#define ActEdiBib (ActDowComDeg+132)
#define ActEdiFAQ (ActDowComDeg+133)
#define ActEdiCrsLnk (ActDowComDeg+134)
#define ActEdiBib (ActDowComDeg+133)
#define ActEdiFAQ (ActDowComDeg+134)
#define ActEdiCrsLnk (ActDowComDeg+135)
#define ActChgFrcReaCrsInf (ActDowComDeg+135)
#define ActChgFrcReaTchGui (ActDowComDeg+136)
#define ActChgFrcReaSylLec (ActDowComDeg+137)
#define ActChgFrcReaSylPra (ActDowComDeg+138)
#define ActChgFrcReaBib (ActDowComDeg+139)
#define ActChgFrcReaFAQ (ActDowComDeg+140)
#define ActChgFrcReaCrsLnk (ActDowComDeg+141)
#define ActChgFrcReaCrsInf (ActDowComDeg+136)
#define ActChgFrcReaTchGui (ActDowComDeg+137)
#define ActChgFrcReaSylLec (ActDowComDeg+138)
#define ActChgFrcReaSylPra (ActDowComDeg+139)
#define ActChgFrcReaBib (ActDowComDeg+140)
#define ActChgFrcReaFAQ (ActDowComDeg+141)
#define ActChgFrcReaCrsLnk (ActDowComDeg+142)
#define ActChgHavReaCrsInf (ActDowComDeg+142)
#define ActChgHavReaTchGui (ActDowComDeg+143)
#define ActChgHavReaSylLec (ActDowComDeg+144)
#define ActChgHavReaSylPra (ActDowComDeg+145)
#define ActChgHavReaBib (ActDowComDeg+146)
#define ActChgHavReaFAQ (ActDowComDeg+147)
#define ActChgHavReaCrsLnk (ActDowComDeg+148)
#define ActChgHavReaCrsInf (ActDowComDeg+143)
#define ActChgHavReaTchGui (ActDowComDeg+144)
#define ActChgHavReaSylLec (ActDowComDeg+145)
#define ActChgHavReaSylPra (ActDowComDeg+146)
#define ActChgHavReaBib (ActDowComDeg+147)
#define ActChgHavReaFAQ (ActDowComDeg+148)
#define ActChgHavReaCrsLnk (ActDowComDeg+149)
#define ActSelInfSrcCrsInf (ActDowComDeg+149)
#define ActSelInfSrcTchGui (ActDowComDeg+150)
#define ActSelInfSrcSylLec (ActDowComDeg+151)
#define ActSelInfSrcSylPra (ActDowComDeg+152)
#define ActSelInfSrcBib (ActDowComDeg+153)
#define ActSelInfSrcFAQ (ActDowComDeg+154)
#define ActSelInfSrcCrsLnk (ActDowComDeg+155)
#define ActRcvURLCrsInf (ActDowComDeg+156)
#define ActRcvURLTchGui (ActDowComDeg+157)
#define ActRcvURLSylLec (ActDowComDeg+158)
#define ActRcvURLSylPra (ActDowComDeg+159)
#define ActRcvURLBib (ActDowComDeg+160)
#define ActRcvURLFAQ (ActDowComDeg+161)
#define ActRcvURLCrsLnk (ActDowComDeg+162)
#define ActRcvPagCrsInf (ActDowComDeg+163)
#define ActRcvPagTchGui (ActDowComDeg+164)
#define ActRcvPagSylLec (ActDowComDeg+165)
#define ActRcvPagSylPra (ActDowComDeg+166)
#define ActRcvPagBib (ActDowComDeg+167)
#define ActRcvPagFAQ (ActDowComDeg+168)
#define ActRcvPagCrsLnk (ActDowComDeg+169)
#define ActEditorCrsInf (ActDowComDeg+170)
#define ActEditorTchGui (ActDowComDeg+171)
#define ActEditorSylLec (ActDowComDeg+172)
#define ActEditorSylPra (ActDowComDeg+173)
#define ActEditorBib (ActDowComDeg+174)
#define ActEditorFAQ (ActDowComDeg+175)
#define ActEditorCrsLnk (ActDowComDeg+176)
#define ActPlaTxtEdiCrsInf (ActDowComDeg+177)
#define ActPlaTxtEdiTchGui (ActDowComDeg+178)
#define ActPlaTxtEdiSylLec (ActDowComDeg+179)
#define ActPlaTxtEdiSylPra (ActDowComDeg+180)
#define ActPlaTxtEdiBib (ActDowComDeg+181)
#define ActPlaTxtEdiFAQ (ActDowComDeg+182)
#define ActPlaTxtEdiCrsLnk (ActDowComDeg+183)
#define ActRchTxtEdiCrsInf (ActDowComDeg+184)
#define ActRchTxtEdiTchGui (ActDowComDeg+185)
#define ActRchTxtEdiSylLec (ActDowComDeg+186)
#define ActRchTxtEdiSylPra (ActDowComDeg+187)
#define ActRchTxtEdiBib (ActDowComDeg+188)
#define ActRchTxtEdiFAQ (ActDowComDeg+189)
#define ActRchTxtEdiCrsLnk (ActDowComDeg+190)
#define ActRcvPlaTxtCrsInf (ActDowComDeg+191)
#define ActRcvPlaTxtTchGui (ActDowComDeg+192)
#define ActRcvPlaTxtSylLec (ActDowComDeg+193)
#define ActRcvPlaTxtSylPra (ActDowComDeg+194)
#define ActRcvPlaTxtBib (ActDowComDeg+195)
#define ActRcvPlaTxtFAQ (ActDowComDeg+196)
#define ActRcvPlaTxtCrsLnk (ActDowComDeg+197)
#define ActRcvRchTxtCrsInf (ActDowComDeg+198)
#define ActRcvRchTxtTchGui (ActDowComDeg+199)
#define ActRcvRchTxtSylLec (ActDowComDeg+200)
#define ActRcvRchTxtSylPra (ActDowComDeg+201)
#define ActRcvRchTxtBib (ActDowComDeg+202)
#define ActRcvRchTxtFAQ (ActDowComDeg+203)
#define ActRcvRchTxtCrsLnk (ActDowComDeg+204)
#define ActSelInfSrcCrsInf (ActDowComDeg+150)
#define ActSelInfSrcTchGui (ActDowComDeg+151)
#define ActSelInfSrcSylLec (ActDowComDeg+152)
#define ActSelInfSrcSylPra (ActDowComDeg+153)
#define ActSelInfSrcBib (ActDowComDeg+154)
#define ActSelInfSrcFAQ (ActDowComDeg+155)
#define ActSelInfSrcCrsLnk (ActDowComDeg+156)
#define ActRcvURLCrsInf (ActDowComDeg+157)
#define ActRcvURLTchGui (ActDowComDeg+158)
#define ActRcvURLSylLec (ActDowComDeg+159)
#define ActRcvURLSylPra (ActDowComDeg+160)
#define ActRcvURLBib (ActDowComDeg+161)
#define ActRcvURLFAQ (ActDowComDeg+162)
#define ActRcvURLCrsLnk (ActDowComDeg+163)
#define ActRcvPagCrsInf (ActDowComDeg+164)
#define ActRcvPagTchGui (ActDowComDeg+165)
#define ActRcvPagSylLec (ActDowComDeg+166)
#define ActRcvPagSylPra (ActDowComDeg+167)
#define ActRcvPagBib (ActDowComDeg+168)
#define ActRcvPagFAQ (ActDowComDeg+169)
#define ActRcvPagCrsLnk (ActDowComDeg+170)
#define ActEditorCrsInf (ActDowComDeg+171)
#define ActEditorTchGui (ActDowComDeg+172)
#define ActEditorSylLec (ActDowComDeg+173)
#define ActEditorSylPra (ActDowComDeg+174)
#define ActEditorBib (ActDowComDeg+175)
#define ActEditorFAQ (ActDowComDeg+176)
#define ActEditorCrsLnk (ActDowComDeg+177)
#define ActPlaTxtEdiCrsInf (ActDowComDeg+178)
#define ActPlaTxtEdiTchGui (ActDowComDeg+179)
#define ActPlaTxtEdiSylLec (ActDowComDeg+180)
#define ActPlaTxtEdiSylPra (ActDowComDeg+181)
#define ActPlaTxtEdiBib (ActDowComDeg+182)
#define ActPlaTxtEdiFAQ (ActDowComDeg+183)
#define ActPlaTxtEdiCrsLnk (ActDowComDeg+184)
#define ActRchTxtEdiCrsInf (ActDowComDeg+185)
#define ActRchTxtEdiTchGui (ActDowComDeg+186)
#define ActRchTxtEdiSylLec (ActDowComDeg+187)
#define ActRchTxtEdiSylPra (ActDowComDeg+188)
#define ActRchTxtEdiBib (ActDowComDeg+189)
#define ActRchTxtEdiFAQ (ActDowComDeg+190)
#define ActRchTxtEdiCrsLnk (ActDowComDeg+191)
#define ActRcvPlaTxtCrsInf (ActDowComDeg+192)
#define ActRcvPlaTxtTchGui (ActDowComDeg+193)
#define ActRcvPlaTxtSylLec (ActDowComDeg+194)
#define ActRcvPlaTxtSylPra (ActDowComDeg+195)
#define ActRcvPlaTxtBib (ActDowComDeg+196)
#define ActRcvPlaTxtFAQ (ActDowComDeg+197)
#define ActRcvPlaTxtCrsLnk (ActDowComDeg+198)
#define ActRcvRchTxtCrsInf (ActDowComDeg+199)
#define ActRcvRchTxtTchGui (ActDowComDeg+200)
#define ActRcvRchTxtSylLec (ActDowComDeg+201)
#define ActRcvRchTxtSylPra (ActDowComDeg+202)
#define ActRcvRchTxtBib (ActDowComDeg+203)
#define ActRcvRchTxtFAQ (ActDowComDeg+204)
#define ActRcvRchTxtCrsLnk (ActDowComDeg+205)
/*****************************************************************************/
/***************************** Assessment tab ********************************/
@ -1261,7 +1262,7 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
// Actions in menu
#define ActFrmLogIn (ActSeeAllStaCrs+ 1)
#define ActMyCrs (ActSeeAllStaCrs+ 2)
#define ActSeeMyTimTbl (ActSeeAllStaCrs+ 3)
#define ActSeeMyTT (ActSeeAllStaCrs+ 3)
#define ActFrmUsrAcc (ActSeeAllStaCrs+ 4)
#define ActReqEdiRecCom (ActSeeAllStaCrs+ 5)
#define ActEdiPrf (ActSeeAllStaCrs+ 6)
@ -1326,27 +1327,29 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
#define ActPrnUsrQR (ActSeeAllStaCrs+58)
#define ActPrnMyTimTbl (ActSeeAllStaCrs+59)
#define ActPrnMyTT (ActSeeAllStaCrs+59)
#define ActEdiTut (ActSeeAllStaCrs+60)
#define ActChgTut (ActSeeAllStaCrs+61)
#define ActReqRemFilBrf (ActSeeAllStaCrs+62)
#define ActRemFilBrf (ActSeeAllStaCrs+63)
#define ActRemFolBrf (ActSeeAllStaCrs+64)
#define ActCopBrf (ActSeeAllStaCrs+65)
#define ActPasBrf (ActSeeAllStaCrs+66)
#define ActRemTreBrf (ActSeeAllStaCrs+67)
#define ActFrmCreBrf (ActSeeAllStaCrs+68)
#define ActCreFolBrf (ActSeeAllStaCrs+69)
#define ActCreLnkBrf (ActSeeAllStaCrs+70)
#define ActRenFolBrf (ActSeeAllStaCrs+71)
#define ActRcvFilBrfDZ (ActSeeAllStaCrs+72)
#define ActRcvFilBrfCla (ActSeeAllStaCrs+73)
#define ActExpBrf (ActSeeAllStaCrs+74)
#define ActConBrf (ActSeeAllStaCrs+75)
#define ActZIPBrf (ActSeeAllStaCrs+76)
#define ActReqDatBrf (ActSeeAllStaCrs+77)
#define ActChgDatBrf (ActSeeAllStaCrs+78)
#define ActDowBrf (ActSeeAllStaCrs+79)
#define ActChgMyTT1stDay (ActSeeAllStaCrs+62)
#define ActReqRemFilBrf (ActSeeAllStaCrs+63)
#define ActRemFilBrf (ActSeeAllStaCrs+64)
#define ActRemFolBrf (ActSeeAllStaCrs+65)
#define ActCopBrf (ActSeeAllStaCrs+66)
#define ActPasBrf (ActSeeAllStaCrs+67)
#define ActRemTreBrf (ActSeeAllStaCrs+68)
#define ActFrmCreBrf (ActSeeAllStaCrs+69)
#define ActCreFolBrf (ActSeeAllStaCrs+70)
#define ActCreLnkBrf (ActSeeAllStaCrs+71)
#define ActRenFolBrf (ActSeeAllStaCrs+72)
#define ActRcvFilBrfDZ (ActSeeAllStaCrs+73)
#define ActRcvFilBrfCla (ActSeeAllStaCrs+74)
#define ActExpBrf (ActSeeAllStaCrs+75)
#define ActConBrf (ActSeeAllStaCrs+76)
#define ActZIPBrf (ActSeeAllStaCrs+77)
#define ActReqDatBrf (ActSeeAllStaCrs+78)
#define ActChgDatBrf (ActSeeAllStaCrs+79)
#define ActDowBrf (ActSeeAllStaCrs+80)
/*****************************************************************************/
/******************************** Public types *******************************/

View File

@ -59,8 +59,7 @@ const bool Cal_DayIsValidAsFirstDayOfWeek[7] =
/***************************** Private prototypes ****************************/
/*****************************************************************************/
static void Cal_ShowFormInCalendarToSelectFirstDayOfWeek (void);
static void Cal_ShowFormToSelectFirstDayOfWeek (Act_Action_t Action,const char *ClassIcon);
static void Cal_ShowFormToSelFirstDayOfWeek (Act_Action_t Action,const char *ClassIcon);
static unsigned Cal_GetParamFirstDayOfWeek (void);
@ -73,7 +72,7 @@ void Cal_PutIconsToSelectFirstDayOfWeek (void)
extern const char *Txt_Calendar;
Lay_StartRoundFrameTable (NULL,0,Txt_Calendar);
Cal_ShowFormToSelectFirstDayOfWeek (ActChg1stDay,"ICON32x32");
Cal_ShowFormToSelFirstDayOfWeek (ActChg1stDay,"ICON32x32");
Lay_EndRoundFrameTable ();
}
@ -81,10 +80,10 @@ void Cal_PutIconsToSelectFirstDayOfWeek (void)
/************** Show form to select the first day of the week ****************/
/*****************************************************************************/
static void Cal_ShowFormInCalendarToSelectFirstDayOfWeek (void)
void Cal_ShowIntegratedFormToSelFirstDayOfWeek (Act_Action_t Action)
{
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\" style=\"margin:0 auto;\">");
Cal_ShowFormToSelectFirstDayOfWeek (ActChgCal1stDay,"ICON20x20");
Cal_ShowFormToSelFirstDayOfWeek (Action,"ICON20x20");
fprintf (Gbl.F.Out,"</table>");
}
@ -92,7 +91,7 @@ static void Cal_ShowFormInCalendarToSelectFirstDayOfWeek (void)
/******** Show form in calendar to select the first day of the week **********/
/*****************************************************************************/
static void Cal_ShowFormToSelectFirstDayOfWeek (Act_Action_t Action,const char *ClassIcon)
static void Cal_ShowFormToSelFirstDayOfWeek (Act_Action_t Action,const char *ClassIcon)
{
extern const char *Txt_First_day_of_the_week;
extern const char *Txt_DAYS_SMALL[7];
@ -266,7 +265,7 @@ void Cal_DrawCalendar (void)
/* Show form to change first day of week */
if (!PrintView)
Cal_ShowFormInCalendarToSelectFirstDayOfWeek ();
Cal_ShowIntegratedFormToSelFirstDayOfWeek (ActChgCal1stDay);
/* JavaScript will write HTML here */
fprintf (Gbl.F.Out,"<div id=\"calendar\">"

View File

@ -27,6 +27,8 @@
/********************************* Headers ***********************************/
/*****************************************************************************/
#include "swad_action.h"
/*****************************************************************************/
/***************************** Public constants ******************************/
/*****************************************************************************/
@ -42,6 +44,7 @@
/*****************************************************************************/
void Cal_PutIconsToSelectFirstDayOfWeek (void);
void Cal_ShowIntegratedFormToSelFirstDayOfWeek (Act_Action_t Action);
void Cal_ChangeFirstDayOfWeek (void);
void Cal_DrawCurrentMonth (void);

View File

@ -115,12 +115,13 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 15.53 (2015/11/30)"
#define CSS_FILE "swad15.53.css"
#define Log_PLATFORM_VERSION "SWAD 15.54 (2015/12/01)"
#define CSS_FILE "swad15.54.css"
// 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
/*
Version 15.54: Dec 01, 2015 Selection of the first day of the week in timetables. (186736 lines)
Version 15.53: Nov 30, 2015 Sunday can be the first day of the week in timetable, depending on user's preferences. (186689 lines)
Version 15.52: Nov 30, 2015 Timetable now starts at 6 a.m. instead of 7 a.m.
Changes in layout of timetable. (186656 lines)

View File

@ -4181,7 +4181,7 @@ void Grp_ShowSelectorWhichGrps (void)
Gbl.FormId,Txt_Show_WHICH_groups[WhichGrps]);
}
fprintf (Gbl.F.Out,"</ul>"
"</div>");
"</div>");
}
/*****************************************************************************/
@ -4211,19 +4211,21 @@ void Grp_GetParamWhichGrps (void)
else // This parameter does not exist ==> set default value
switch (Gbl.CurrentAct)
{
case ActSeeCrsTimTbl:
case ActPrnCrsTimTbl:
case ActSeeCrsTT:
case ActPrnCrsTT:
case ActChgCrsTT1stDay:
case ActSeeAsg:
case ActSeeAtt:
case ActSeeAllSvy:
Gbl.CurrentCrs.Grps.WhichGrps = Gbl.Usrs.Me.IBelongToCurrentCrs ? Grp_ONLY_MY_GROUPS : // If I belong to this course ==> see only my groups
Grp_ALL_GROUPS; // If I don't belong to this course ==> see all groups
break;
case ActSeeMyTimTbl:
case ActPrnMyTimTbl:
case ActSeeMyTT:
case ActPrnMyTT:
case ActChgMyTT1stDay:
Gbl.CurrentCrs.Grps.WhichGrps = Grp_ONLY_MY_GROUPS; // By default, see only my groups
break;
default: // Control never must enter here
default: // Control never should enter here
Gbl.CurrentCrs.Grps.WhichGrps = Grp_ALL_GROUPS;
break;
}

View File

@ -82,8 +82,8 @@ void Mnu_WriteMenuThisTab (void)
bool IsTheSelectedAction;
/***** Menu start *****/
fprintf (Gbl.F.Out,"<div class=\"MENU_LIST\">"
"<ul>");
fprintf (Gbl.F.Out,"<div class=\"MENU_LIST_CONTAINER\">"
"<ul class=\"MENU_LIST\">");
/***** Loop to write all options in menu. Each row holds an option *****/
for (NumOptInMenu = 0;

View File

@ -17274,7 +17274,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Compartilhados"
#endif
,
// ActSeeCrsTimTbl
// ActSeeCrsTT
#if L==0
"Horari"
#elif L==1
@ -18124,7 +18124,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Disciplinas"
#endif
,
// ActSeeMyTimTbl
// ActSeeMyTT
#if L==0
"Horari"
#elif L==1
@ -19168,7 +19168,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Arquivos compartilhados"
#endif
,
// ActSeeCrsTimTbl
// ActSeeCrsTT
#if L==0
"Horari de classes de l'assignatura"
#elif L==1
@ -20055,7 +20055,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Disciplinas a que perten&ccedil;o"
#endif
,
// ActSeeMyTimTbl
// ActSeeMyTT
#if L==0
"Horari conjunt de totes les meves assignatures a la plataforma"
#elif L==1

View File

@ -29,6 +29,7 @@
#include <stdio.h> // For fprintf, etc.
#include <string.h> // For string functions
#include "swad_calendar.h"
#include "swad_database.h"
#include "swad_global.h"
#include "swad_parameter.h"
@ -114,16 +115,19 @@ bool TimeTableHoursChecked[TT_HOURS_PER_DAY*2];
static void TT_ShowTimeTableGrpsSelected (void);
static void TT_GetParamsTimeTable (void);
static void TT_ShowSelectorWhichGrps (Act_Action_t Action);
static void TT_WriteCrsTimeTableIntoDB (long CrsCod);
static void TT_WriteTutTimeTableIntoDB (long UsrCod);
static void TT_CreatTimeTableFromDB (TT_TimeTableType_t TimeTableType,long UsrCod);
static void TT_ModifTimeTable (void);
static void TT_DrawTimeTable (void);
static void TT_DrawTimeTable (TT_TimeTableType_t TimeTableType);
static void TT_TimeTableDrawAdjustRow (void);
static void TT_TimeTableDrawDaysCells (void);
static unsigned TT_TimeTableCalculateColsToDraw (unsigned Day,unsigned Hour);
static void TT_DrawCellAlignTimeTable (void);
static void TT_TimeTableDrawCell (unsigned Day,unsigned Hour,unsigned Column,unsigned ColSpan,
static void TT_TimeTableDrawCell (TT_TimeTableType_t TimeTableType,
unsigned Day,unsigned Hour,unsigned Column,unsigned ColSpan,
long CrsCod,TT_HourType_t HourType,TT_ClassType_t ClassType,unsigned Duration,char *Group,long GrpCod,char *Place);
/*****************************************************************************/
@ -221,45 +225,54 @@ void TT_ShowClassTimeTable (void)
extern const char *Txt_Edit_office_hours;
extern const char *Txt_Print;
extern const char *Txt_TIMETABLE_TYPES[TT_NUM_TIMETABLE_TYPES];
TT_TimeTableType_t TimeTableType = TT_COURSE_TIMETABLE;
bool PutEditButton = (Gbl.CurrentAct == ActSeeCrsTimTbl &&
Gbl.Usrs.Me.LoggedRole >= Rol_TEACHER);
bool PutEditOfficeHours = (Gbl.CurrentAct == ActSeeMyTimTbl &&
(Gbl.Usrs.Me.AvailableRoles & (1 << Rol_TEACHER)));
bool PrintView = (Gbl.CurrentAct == ActPrnCrsTimTbl ||
Gbl.CurrentAct == ActPrnMyTimTbl);
TT_TimeTableType_t TimeTableType = TT_COURSE_TIMETABLE; // Initialized to avoid warning
bool PrintView;
bool PutEditCrsTT;
bool PutEditOfficeHours;
/***** Initializations *****/
switch (Gbl.CurrentAct)
{
case ActSeeCrsTT:
case ActPrnCrsTT:
case ActChgCrsTT1stDay:
TimeTableType = TT_COURSE_TIMETABLE;
break;
case ActSeeMyTT:
case ActPrnMyTT:
case ActChgMyTT1stDay:
TimeTableType = TT_MY_TIMETABLE;
break;
default:
Lay_ShowErrorAndExit ("Wrong action.");
}
PrintView = (Gbl.CurrentAct == ActPrnCrsTT ||
Gbl.CurrentAct == ActPrnMyTT);
PutEditCrsTT = (TimeTableType == TT_COURSE_TIMETABLE &&
!PrintView &&
Gbl.Usrs.Me.LoggedRole >= Rol_TEACHER);
PutEditOfficeHours = (TimeTableType == TT_MY_TIMETABLE &&
!PrintView &&
(Gbl.Usrs.Me.AvailableRoles & (1 << Rol_TEACHER)));
/***** Get whether to show only my groups or all groups *****/
Grp_GetParamWhichGrps ();
/***** Start of frame and title *****/
switch (Gbl.CurrentAct)
{
case ActSeeCrsTimTbl:
case ActPrnCrsTimTbl:
TimeTableType = TT_COURSE_TIMETABLE;
break;
case ActSeeMyTimTbl:
case ActPrnMyTimTbl:
TimeTableType = TT_MY_TIMETABLE;
break;
}
/***** Put buttons *****/
if (PutEditButton || PutEditOfficeHours || !PrintView)
if (PutEditCrsTT || PutEditOfficeHours || !PrintView)
{
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
if (PutEditButton)
Act_PutContextualLink (ActEdiCrsTimTbl,Grp_PutParamWhichGrps,
if (PutEditCrsTT)
Act_PutContextualLink (ActEdiCrsTT,Grp_PutParamWhichGrps,
"edit",Txt_Edit);
if (PutEditOfficeHours)
Act_PutContextualLink (ActEdiTut,NULL,"edit",Txt_Edit_office_hours);
if (!PrintView)
Act_PutContextualLink (Gbl.CurrentAct == ActSeeCrsTimTbl ? ActPrnCrsTimTbl :
ActPrnMyTimTbl,
Act_PutContextualLink (TimeTableType == TT_COURSE_TIMETABLE ? ActPrnCrsTT :
ActPrnMyTT,
Grp_PutParamWhichGrps,"print",Txt_Print);
fprintf (Gbl.F.Out,"</div>");
@ -278,12 +291,17 @@ void TT_ShowClassTimeTable (void)
TT_ShowTimeTableGrpsSelected ();
else
{
/***** Select whether show only my groups or all groups *****/
fprintf (Gbl.F.Out,"<tr>"
"<td>");
Act_FormStart (Gbl.CurrentAct);
Grp_ShowSelectorWhichGrps ();
Act_FormEnd ();
/***** Select whether show only my groups or all groups *****/
TT_ShowSelectorWhichGrps (TimeTableType == TT_COURSE_TIMETABLE ? ActSeeCrsTT :
ActSeeMyTT);
/***** Show form to change first day of week *****/
Cal_ShowIntegratedFormToSelFirstDayOfWeek (TimeTableType == TT_COURSE_TIMETABLE ? ActChgCrsTT1stDay :
ActChgMyTT1stDay);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
}
@ -299,6 +317,17 @@ void TT_ShowClassTimeTable (void)
Lay_EndRoundFrameTable ();
}
/*****************************************************************************/
/************* Select whether show only my groups or all groups **************/
/*****************************************************************************/
static void TT_ShowSelectorWhichGrps (Act_Action_t Action)
{
Act_FormStart (Action);
Grp_ShowSelectorWhichGrps ();
Act_FormEnd ();
}
/*****************************************************************************/
/********************** Show course timetable for edition ********************/
/*****************************************************************************/
@ -310,7 +339,7 @@ void TT_EditCrsTimeTable (void)
/***** Link (form) to see my timetable *****/
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Act_PutContextualLink (ActSeeCrsTimTbl,NULL,"clock",Txt_Show_timetable);
Act_PutContextualLink (ActSeeCrsTT,NULL,"clock",Txt_Show_timetable);
fprintf (Gbl.F.Out,"</div>");
/***** Editable time table *****/
@ -330,7 +359,7 @@ void TT_ShowMyTutTimeTable (void)
/***** Link (form) to see my timetable *****/
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Act_PutContextualLink (ActSeeMyTimTbl,NULL,"clock",Txt_Show_timetable);
Act_PutContextualLink (ActSeeMyTT,NULL,"clock",Txt_Show_timetable);
fprintf (Gbl.F.Out,"</div>");
/***** Time table *****/
@ -349,7 +378,7 @@ void TT_ShowTimeTable (TT_TimeTableType_t TimeTableType,long UsrCod)
TT_CreatTimeTableFromDB (TimeTableType,UsrCod);
/***** If timetable must be modified... *****/
if (Gbl.CurrentAct == ActChgCrsTimTbl ||
if (Gbl.CurrentAct == ActChgCrsTT ||
Gbl.CurrentAct == ActChgTut)
{
/* Get parameters for time table editing */
@ -376,7 +405,7 @@ void TT_ShowTimeTable (TT_TimeTableType_t TimeTableType,long UsrCod)
}
/***** Draw timetable *****/
TT_DrawTimeTable ();
TT_DrawTimeTable (TimeTableType);
}
/*****************************************************************************/
@ -537,8 +566,8 @@ static void TT_CreatTimeTableFromDB (TT_TimeTableType_t TimeTableType,long UsrCo
break;
case TT_COURSE_TIMETABLE:
if (Gbl.CurrentCrs.Grps.WhichGrps == Grp_ALL_GROUPS ||
Gbl.CurrentAct == ActEdiCrsTimTbl ||
Gbl.CurrentAct == ActChgCrsTimTbl) // If we are editing, all groups are shown
Gbl.CurrentAct == ActEdiCrsTT ||
Gbl.CurrentAct == ActChgCrsTT) // If we are editing, all groups are shown
sprintf (Query,"SELECT Day,Hour,Duration,Place,ClassType,GroupName,GrpCod"
" FROM timetable_crs"
" WHERE CrsCod='%ld'"
@ -727,7 +756,7 @@ static void TT_ModifTimeTable (void)
/********************* Draw timetable using internal table *******************/
/*****************************************************************************/
static void TT_DrawTimeTable (void)
static void TT_DrawTimeTable (TT_TimeTableType_t TimeTableType)
{
bool Editing = false;
unsigned DayColumn; // Column from left (0) to right (6)
@ -741,12 +770,12 @@ static void TT_DrawTimeTable (void)
switch (Gbl.CurrentAct)
{
case ActSeeCrsTimTbl: case ActPrnCrsTimTbl:
case ActSeeMyTimTbl: case ActPrnMyTimTbl:
case ActSeeCrsTT: case ActPrnCrsTT: case ActChgCrsTT1stDay:
case ActSeeMyTT: case ActPrnMyTT: case ActChgMyTT1stDay:
case ActSeeRecOneTch: case ActSeeRecSevTch:
Editing = false;
break;
case ActEdiCrsTimTbl: case ActChgCrsTimTbl:
case ActEdiCrsTT: case ActChgCrsTT:
case ActEdiTut: case ActChgTut:
// If editing and there's place for more columns, a potential new column is added at the end of each day
Editing = true;
@ -777,8 +806,8 @@ static void TT_DrawTimeTable (void)
TT_PERCENT_WIDTH_OF_AN_HOUR_COLUMN,TT_START_HOUR);
/***** Get list of groups types and groups in this course *****/
if (Gbl.CurrentAct == ActEdiCrsTimTbl ||
Gbl.CurrentAct == ActChgCrsTimTbl)
if (Gbl.CurrentAct == ActEdiCrsTT ||
Gbl.CurrentAct == ActChgCrsTT)
Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_ONLY_GROUP_TYPES_WITH_GROUPS);
/***** Write the table row by row *****/
@ -832,10 +861,13 @@ static void TT_DrawTimeTable (void)
{
if (ContinuousFreeMinicolumns)
{
TT_TimeTableDrawCell (Day,Hour,Column-1,ContinuousFreeMinicolumns,-1L,TT_FREE_HOUR,TT_NO_CLASS,0,NULL,-1,NULL);
TT_TimeTableDrawCell (TimeTableType,
Day,Hour,Column-1,ContinuousFreeMinicolumns,
-1L,TT_FREE_HOUR,TT_NO_CLASS,0,NULL,-1,NULL);
ContinuousFreeMinicolumns = 0;
}
TT_TimeTableDrawCell (Day,Hour,Column,TT_NUM_MINICOLUMNS_PER_DAY/ColumnsToDrawIncludingExtraColumn,
TT_TimeTableDrawCell (TimeTableType,
Day,Hour,Column,TT_NUM_MINICOLUMNS_PER_DAY/ColumnsToDrawIncludingExtraColumn,
TimeTable[Day][Hour].Columns[Column].CrsCod,
TimeTable[Day][Hour].Columns[Column].HourType,
TimeTable[Day][Hour].Columns[Column].ClassType,
@ -845,7 +877,9 @@ static void TT_DrawTimeTable (void)
TimeTable[Day][Hour].Columns[Column].Place);
}
if (ContinuousFreeMinicolumns)
TT_TimeTableDrawCell (Day,Hour,Column-1,ContinuousFreeMinicolumns,-1L,TT_FREE_HOUR,TT_NO_CLASS,0,NULL,-1L,NULL);
TT_TimeTableDrawCell (TimeTableType,
Day,Hour,Column-1,ContinuousFreeMinicolumns,
-1L,TT_FREE_HOUR,TT_NO_CLASS,0,NULL,-1L,NULL);
}
/* Empty column used to adjust height */
@ -863,7 +897,8 @@ static void TT_DrawTimeTable (void)
}
/***** Free list of groups types and groups in this course *****/
if (Gbl.CurrentAct == ActEdiCrsTimTbl || Gbl.CurrentAct == ActChgCrsTimTbl)
if (Gbl.CurrentAct == ActEdiCrsTT ||
Gbl.CurrentAct == ActChgCrsTT)
Grp_FreeListGrpTypesAndGrps ();
/***** Row with day names *****/
@ -891,6 +926,7 @@ static void TT_TimeTableDrawAdjustRow (void)
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"TT_TXT LEFT_MIDDLE\" style=\"width:%u%%;\">"
"&nbsp;"
"</td>",
TT_PERCENT_WIDTH_OF_AN_HOUR_COLUMN);
TT_DrawCellAlignTimeTable ();
@ -902,11 +938,13 @@ static void TT_TimeTableDrawAdjustRow (void)
Minicolumn++)
fprintf (Gbl.F.Out,"<td class=\"TT_TXT LEFT_MIDDLE\""
" style=\"width:%u%%;\">"
"&nbsp;"
"</td>",
TT_PERCENT_WIDTH_OF_A_MINICOLUMN);
TT_DrawCellAlignTimeTable ();
fprintf (Gbl.F.Out,"<td class=\"TT_TXT LEFT_MIDDLE\""
" style=\"width:%u%%;\">"
"&nbsp;"
"</td>"
"</tr>",
TT_PERCENT_WIDTH_OF_AN_HOUR_COLUMN);
@ -1005,6 +1043,7 @@ static unsigned TT_TimeTableCalculateColsToDraw (unsigned Day,unsigned Hour)
static void TT_DrawCellAlignTimeTable (void)
{
fprintf (Gbl.F.Out,"<td class=\"TT_TXT LEFT_MIDDLE\" style=\"width:%u%%;\">"
"&nbsp;"
"</td>",
TT_PERCENT_WIDTH_OF_A_SEPARATION_COLUMN);
}
@ -1013,7 +1052,8 @@ static void TT_DrawCellAlignTimeTable (void)
/*************************** Write a timetable cell **************************/
/*****************************************************************************/
static void TT_TimeTableDrawCell (unsigned Day,unsigned Hour,unsigned Column,unsigned ColSpan,
static void TT_TimeTableDrawCell (TT_TimeTableType_t TimeTableType,
unsigned Day,unsigned Hour,unsigned Column,unsigned ColSpan,
long CrsCod,TT_HourType_t HourType,TT_ClassType_t ClassType,unsigned Duration,char *Group,long GrpCod,char *Place)
{
extern const char *Txt_unknown_course;
@ -1066,11 +1106,11 @@ static void TT_TimeTableDrawCell (unsigned Day,unsigned Hour,unsigned Column,uns
/***** Set type of view depending on current action *****/
switch (Gbl.CurrentAct)
{
case ActSeeCrsTimTbl: case ActPrnCrsTimTbl:
case ActSeeMyTimTbl: case ActPrnMyTimTbl:
case ActSeeCrsTT: case ActPrnCrsTT: case ActChgCrsTT1stDay:
case ActSeeMyTT: case ActPrnMyTT: case ActChgMyTT1stDay:
TimeTableView = TT_CRS_SHOW;
break;
case ActEdiCrsTimTbl: case ActChgCrsTimTbl:
case ActEdiCrsTT: case ActChgCrsTT:
TimeTableView = TT_CRS_EDIT;
break;
case ActSeeRecOneTch: case ActSeeRecSevTch:
@ -1101,7 +1141,7 @@ static void TT_TimeTableDrawCell (unsigned Day,unsigned Hour,unsigned Column,uns
/***** Form to modify this cell *****/
if (TimeTableView == TT_CRS_EDIT)
Act_FormStart (ActChgCrsTimTbl);
Act_FormStart (ActChgCrsTT);
else if (TimeTableView == TT_TUT_EDIT)
Act_FormStart (ActChgTut);
@ -1113,8 +1153,7 @@ static void TT_TimeTableDrawCell (unsigned Day,unsigned Hour,unsigned Column,uns
if (HourType != TT_FREE_HOUR) // If cell is not empty...
{
fprintf (Gbl.F.Out,"<span class=\"TT_TXT\">");
if (Gbl.CurrentAct == ActSeeMyTimTbl ||
Gbl.CurrentAct == ActPrnMyTimTbl)
if (TimeTableType == TT_MY_TIMETABLE)
{
Crs.CrsCod = CrsCod;
Crs_GetDataOfCourseByCod (&Crs);