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

View File

@ -75,7 +75,7 @@ extern struct Globals Gbl;
/************************ Internal global variables **************************/ /************************ Internal global variables **************************/
/*****************************************************************************/ /*****************************************************************************/
/* /*
1122 actions in one CGI: 1124 actions in one CGI:
0. ActAll Any action (used for statistics) 0. ActAll Any action (used for statistics)
1. ActUnk Unknown action 1. ActUnk Unknown action
2. ActHom Show home menu 2. ActHom Show home menu
@ -439,7 +439,7 @@ Course:
310. ActSeeSylPra Show the syllabus of practicals 310. ActSeeSylPra Show the syllabus of practicals
311. ActSeeAdmDocCrs Documents zone of the course (see or admin) 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 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 314. ActSeeBib Show the bibliography
315. ActSeeFAQ Show the FAQ 315. ActSeeFAQ Show the FAQ
316. ActSeeCrsLnk Show links related to the course 316. ActSeeCrsLnk Show links related to the course
@ -450,9 +450,10 @@ Course:
319. ActChgCrsLog Change log in method for this course 319. ActChgCrsLog Change log in method for this course
320. ActEdiCrsInf Edit general information about the course 320. ActEdiCrsInf Edit general information about the course
321. ActEdiTchGui Edit teaching guide of the course 321. ActEdiTchGui Edit teaching guide of the course
322. ActPrnCrsTimTbl Show print view of the timetable 322. ActPrnCrsTT Show print view of the timetable
323. ActEdiCrsTimTbl Edit the timetable 323. ActEdiCrsTT Edit the timetable
324. ActChgCrsTimTbl Modify the timetable of the course 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 325. ActEdiSylLec Edit the syllabus of lectures
326. ActEdiSylPra Edit the syllabus of practicals 326. ActEdiSylPra Edit the syllabus of practicals
327. ActDelItmSylLec Remove a item from syllabus of lectures 327. ActDelItmSylLec Remove a item from syllabus of lectures
@ -1218,7 +1219,7 @@ Statistics:
Profile: Profile:
1044. ActFrmLogIn Show form to log in 1044. ActFrmLogIn Show form to log in
1045. ActMyCrs Select one of my courses 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 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 1048. ActReqEdiRecCom Request the edition of the record with the personal data of the user
1049. ActEdiPrf Show forms to edit preferences 1049. ActEdiPrf Show forms to edit preferences
@ -1236,12 +1237,12 @@ Profile:
1059. ActChgMyRol Change type of logged user 1059. ActChgMyRol Change type of logged user
1060. ActCreUsrAcc Create new user account 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 1062. ActNewIDMe Create a new user's ID for me
1063. ActRemOldNic Remove one of my old nicknames 1063. ActRemOldNic Remove one of my old nicknames
1064. ActChgNic Change my nickname 1064. ActChgNic Change my nickname
1065. ActRemMaiMe Remove one of my old e-mails 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 1067. ActCnfMai Confirm e-mail address
1068. ActFrmChgMyPwd Show form to the change of the password 1068. ActFrmChgMyPwd Show form to the change of the password
1069. ActChgPwd Change the password 1069. ActChgPwd Change the password
@ -1283,9 +1284,12 @@ Profile:
1099. ActChgMnu Change menu 1099. ActChgMnu Change menu
1100. ActChgNtfPrf Change whether to notify by e-mail new messages 1100. ActChgNtfPrf Change whether to notify by e-mail new messages
1101. ActPrnUsrQR Show my QR code ready to print 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 1103. ActEdiTut Edit the timetable of tutorías
1104. ActChgTut Modify 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 1105. ActReqRemFilBrf Request removal of a file of the briefcase
1106. ActRemFilBrf Remove a file of the briefcase 1106. ActRemFilBrf Remove a file of the briefcase
1107. ActRemFolBrf Remove a folder empty 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}, {ActSeeAdmDocCrs ,false},
{ActAdmCom ,true }, {ActAdmCom ,true },
{ActSeeCrsTimTbl ,false}, {ActSeeCrsTT ,false},
{ActSeeBib ,false}, {ActSeeBib ,false},
{ActSeeFAQ ,false}, {ActSeeFAQ ,false},
{ActSeeCrsLnk ,true }, {ActSeeCrsLnk ,true },
@ -1446,7 +1450,7 @@ const struct Act_Menu Act_Menu[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
{ActFrmLogIn ,true }, {ActFrmLogIn ,true },
{ActMyCrs ,false}, {ActMyCrs ,false},
{ActSeeMyTimTbl ,true }, {ActSeeMyTT ,true },
{ActFrmUsrAcc ,false}, {ActFrmUsrAcc ,false},
{ActReqEdiRecCom ,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" }, /* 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" }, /* 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" }, /* 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" }, /* 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" }, /* 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" }, /* 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}, /* 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}, /* 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}, /* 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}, /* ActPrnCrsTT */{ 152,-1,TabCrs,ActSeeCrsTT ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,TT_ShowClassTimeTable ,NULL},
/* ActChgCrsTimTbl */{ 53,-1,TabCrs,ActSeeCrsTimTbl ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_EditCrsTimeTable ,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}, /* 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}, /* 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}, /* 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: // Actions in menu:
/* ActFrmLogIn */{ 843, 0,TabPrf,ActFrmLogIn ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_WriteFormLoginLogout ,"keyuser" }, /* 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" }, /* 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" }, /* 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" }, /* 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" }, /* 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}, /* 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}, /* ActPrnMyTT */{ 409,-1,TabPrf,ActSeeMyTT ,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}, /* ActEdiTut */{ 65,-1,TabPrf,ActSeeMyTT ,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}, /* 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}, /* 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}, /* 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 ActSeeRecSevTch, // #22
ActAdmBrf, // #23 ActAdmBrf, // #23
-1, // #24 (obsolete action) -1, // #24 (obsolete action)
ActSeeCrsTimTbl, // #25 ActSeeCrsTT, // #25
ActReqMsgUsr, // #26 ActReqMsgUsr, // #26
ActRcvMsgUsr, // #27 ActRcvMsgUsr, // #27
ActSeeSylLec, // #28 ActSeeSylLec, // #28
@ -2838,7 +2846,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActLstStdAll, // #42 ActLstStdAll, // #42
-1, // #43 (obsolete action) -1, // #43 (obsolete action)
ActEdiSylLec, // #44 ActEdiSylLec, // #44
ActEdiCrsTimTbl, // #45 ActEdiCrsTT, // #45
-1, // #46 (obsolete action) -1, // #46 (obsolete action)
-1, // #47 (obsolete action) -1, // #47 (obsolete action)
ActChgTut, // #48 ActChgTut, // #48
@ -2846,7 +2854,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
-1, // #50 (obsolete action) -1, // #50 (obsolete action)
ActSeeChtRms, // #51 ActSeeChtRms, // #51
ActCht, // #52 ActCht, // #52
ActChgCrsTimTbl, // #53 ActChgCrsTT, // #53
ActSeeFAQ, // #54 ActSeeFAQ, // #54
-1, // #55 (obsolete action) -1, // #55 (obsolete action)
-1, // #56 (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) -1, // #149 (obsolete action)
ActFrmCreWrkUsr, // #150 ActFrmCreWrkUsr, // #150
-1, // #151 (obsolete action) -1, // #151 (obsolete action)
ActPrnCrsTimTbl, // #152 ActPrnCrsTT, // #152
ActRcvFilBrfCla, // #153 ActRcvFilBrfCla, // #153
-1, // #154 (obsolete action) -1, // #154 (obsolete action)
ActRemFilBrf, // #155 ActRemFilBrf, // #155
@ -3201,8 +3209,8 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActPlaTxtEdiFAQ, // #405 ActPlaTxtEdiFAQ, // #405
ActRcvPlaTxtFAQ, // #406 ActRcvPlaTxtFAQ, // #406
-1, // #407 (obsolete action) -1, // #407 (obsolete action)
ActSeeMyTimTbl, // #408 ActSeeMyTT, // #408
ActPrnMyTimTbl, // #409 ActPrnMyTT, // #409
ActExpBrf, // #410 ActExpBrf, // #410
ActConBrf, // #411 ActConBrf, // #411
-1, // #412 (obsolete action) -1, // #412 (obsolete action)
@ -4282,6 +4290,8 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActNewMaiTch, // #1483 ActNewMaiTch, // #1483
ActChg1stDay, // #1484 ActChg1stDay, // #1484
ActChgCal1stDay, // #1485 ActChgCal1stDay, // #1485
ActChgCrsTT1stDay, // #1486
ActChgMyTT1stDay, // #1487
}; };
/*****************************************************************************/ /*****************************************************************************/
@ -4717,10 +4727,12 @@ void Act_AdjustCurrentAction (void)
case ActReqEdiMyIns: case ActReqEdiMyIns:
case ActReqSelGrp: case ActReqSelGrp:
case ActReqMdfOneStd: // A student use this action to remove him/herself from current course case ActReqMdfOneStd: // A student use this action to remove him/herself from current course
case ActSeeCrsTimTbl: case ActSeeCrsTT:
case ActPrnCrsTimTbl: case ActPrnCrsTT:
case ActSeeMyTimTbl: case ActChgCrsTT1stDay:
case ActPrnMyTimTbl: // 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 // These last actions are allowed in order to students could see/print timetable before register in groups
break; break;
default: 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 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 #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 ActSeeSyl (ActDowComDeg+ 4)
#define ActSeeAdmDocCrs (ActDowComDeg+ 5) #define ActSeeAdmDocCrs (ActDowComDeg+ 5)
#define ActAdmCom (ActDowComDeg+ 6) #define ActAdmCom (ActDowComDeg+ 6)
#define ActSeeCrsTimTbl (ActDowComDeg+ 7) #define ActSeeCrsTT (ActDowComDeg+ 7)
#define ActSeeBib (ActDowComDeg+ 8) #define ActSeeBib (ActDowComDeg+ 8)
#define ActSeeFAQ (ActDowComDeg+ 9) #define ActSeeFAQ (ActDowComDeg+ 9)
#define ActSeeCrsLnk (ActDowComDeg+ 10) #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 ActChgCrsLog (ActDowComDeg+ 13)
#define ActEdiCrsInf (ActDowComDeg+ 14) #define ActEdiCrsInf (ActDowComDeg+ 14)
#define ActEdiTchGui (ActDowComDeg+ 15) #define ActEdiTchGui (ActDowComDeg+ 15)
#define ActPrnCrsTimTbl (ActDowComDeg+ 16) #define ActPrnCrsTT (ActDowComDeg+ 16)
#define ActEdiCrsTimTbl (ActDowComDeg+ 17) #define ActEdiCrsTT (ActDowComDeg+ 17)
#define ActChgCrsTimTbl (ActDowComDeg+ 18) #define ActChgCrsTT (ActDowComDeg+ 18)
#define ActSeeSylLec (ActDowComDeg+ 19) #define ActChgCrsTT1stDay (ActDowComDeg+ 19)
#define ActSeeSylPra (ActDowComDeg+ 20) #define ActSeeSylLec (ActDowComDeg+ 20)
#define ActEdiSylLec (ActDowComDeg+ 21) #define ActSeeSylPra (ActDowComDeg+ 21)
#define ActEdiSylPra (ActDowComDeg+ 22) #define ActEdiSylLec (ActDowComDeg+ 22)
#define ActDelItmSylLec (ActDowComDeg+ 23) #define ActEdiSylPra (ActDowComDeg+ 23)
#define ActDelItmSylPra (ActDowComDeg+ 24) #define ActDelItmSylLec (ActDowComDeg+ 24)
#define ActUp_IteSylLec (ActDowComDeg+ 25) #define ActDelItmSylPra (ActDowComDeg+ 25)
#define ActUp_IteSylPra (ActDowComDeg+ 26) #define ActUp_IteSylLec (ActDowComDeg+ 26)
#define ActDwnIteSylLec (ActDowComDeg+ 27) #define ActUp_IteSylPra (ActDowComDeg+ 27)
#define ActDwnIteSylPra (ActDowComDeg+ 28) #define ActDwnIteSylLec (ActDowComDeg+ 28)
#define ActRgtIteSylLec (ActDowComDeg+ 29) #define ActDwnIteSylPra (ActDowComDeg+ 29)
#define ActRgtIteSylPra (ActDowComDeg+ 30) #define ActRgtIteSylLec (ActDowComDeg+ 30)
#define ActLftIteSylLec (ActDowComDeg+ 31) #define ActRgtIteSylPra (ActDowComDeg+ 31)
#define ActLftIteSylPra (ActDowComDeg+ 32) #define ActLftIteSylLec (ActDowComDeg+ 32)
#define ActInsIteSylLec (ActDowComDeg+ 33) #define ActLftIteSylPra (ActDowComDeg+ 33)
#define ActInsIteSylPra (ActDowComDeg+ 34) #define ActInsIteSylLec (ActDowComDeg+ 34)
#define ActModIteSylLec (ActDowComDeg+ 35) #define ActInsIteSylPra (ActDowComDeg+ 35)
#define ActModIteSylPra (ActDowComDeg+ 36) #define ActModIteSylLec (ActDowComDeg+ 36)
#define ActModIteSylPra (ActDowComDeg+ 37)
#define ActChgToSeeDocCrs (ActDowComDeg+ 37) #define ActChgToSeeDocCrs (ActDowComDeg+ 38)
#define ActSeeDocCrs (ActDowComDeg+ 38) #define ActSeeDocCrs (ActDowComDeg+ 39)
#define ActExpSeeDocCrs (ActDowComDeg+ 39) #define ActExpSeeDocCrs (ActDowComDeg+ 40)
#define ActConSeeDocCrs (ActDowComDeg+ 40) #define ActConSeeDocCrs (ActDowComDeg+ 41)
#define ActZIPSeeDocCrs (ActDowComDeg+ 41) #define ActZIPSeeDocCrs (ActDowComDeg+ 42)
#define ActReqDatSeeDocCrs (ActDowComDeg+ 42) #define ActReqDatSeeDocCrs (ActDowComDeg+ 43)
#define ActDowSeeDocCrs (ActDowComDeg+ 43) #define ActDowSeeDocCrs (ActDowComDeg+ 44)
#define ActSeeDocGrp (ActDowComDeg+ 44) #define ActSeeDocGrp (ActDowComDeg+ 45)
#define ActExpSeeDocGrp (ActDowComDeg+ 45) #define ActExpSeeDocGrp (ActDowComDeg+ 46)
#define ActConSeeDocGrp (ActDowComDeg+ 46) #define ActConSeeDocGrp (ActDowComDeg+ 47)
#define ActZIPSeeDocGrp (ActDowComDeg+ 47) #define ActZIPSeeDocGrp (ActDowComDeg+ 48)
#define ActReqDatSeeDocGrp (ActDowComDeg+ 48) #define ActReqDatSeeDocGrp (ActDowComDeg+ 49)
#define ActDowSeeDocGrp (ActDowComDeg+ 49) #define ActDowSeeDocGrp (ActDowComDeg+ 50)
#define ActChgToAdmDocCrs (ActDowComDeg+ 50) #define ActChgToAdmDocCrs (ActDowComDeg+ 51)
#define ActAdmDocCrs (ActDowComDeg+ 51) #define ActAdmDocCrs (ActDowComDeg+ 52)
#define ActReqRemFilDocCrs (ActDowComDeg+ 52) #define ActReqRemFilDocCrs (ActDowComDeg+ 53)
#define ActRemFilDocCrs (ActDowComDeg+ 53) #define ActRemFilDocCrs (ActDowComDeg+ 54)
#define ActRemFolDocCrs (ActDowComDeg+ 54) #define ActRemFolDocCrs (ActDowComDeg+ 55)
#define ActCopDocCrs (ActDowComDeg+ 55) #define ActCopDocCrs (ActDowComDeg+ 56)
#define ActPasDocCrs (ActDowComDeg+ 56) #define ActPasDocCrs (ActDowComDeg+ 57)
#define ActRemTreDocCrs (ActDowComDeg+ 57) #define ActRemTreDocCrs (ActDowComDeg+ 58)
#define ActFrmCreDocCrs (ActDowComDeg+ 58) #define ActFrmCreDocCrs (ActDowComDeg+ 59)
#define ActCreFolDocCrs (ActDowComDeg+ 59) #define ActCreFolDocCrs (ActDowComDeg+ 60)
#define ActCreLnkDocCrs (ActDowComDeg+ 60) #define ActCreLnkDocCrs (ActDowComDeg+ 61)
#define ActRenFolDocCrs (ActDowComDeg+ 61) #define ActRenFolDocCrs (ActDowComDeg+ 62)
#define ActRcvFilDocCrsDZ (ActDowComDeg+ 62) #define ActRcvFilDocCrsDZ (ActDowComDeg+ 63)
#define ActRcvFilDocCrsCla (ActDowComDeg+ 63) #define ActRcvFilDocCrsCla (ActDowComDeg+ 64)
#define ActExpAdmDocCrs (ActDowComDeg+ 64) #define ActExpAdmDocCrs (ActDowComDeg+ 65)
#define ActConAdmDocCrs (ActDowComDeg+ 65) #define ActConAdmDocCrs (ActDowComDeg+ 66)
#define ActZIPAdmDocCrs (ActDowComDeg+ 66) #define ActZIPAdmDocCrs (ActDowComDeg+ 67)
#define ActShoDocCrs (ActDowComDeg+ 67) #define ActShoDocCrs (ActDowComDeg+ 68)
#define ActHidDocCrs (ActDowComDeg+ 68) #define ActHidDocCrs (ActDowComDeg+ 69)
#define ActReqDatAdmDocCrs (ActDowComDeg+ 69) #define ActReqDatAdmDocCrs (ActDowComDeg+ 70)
#define ActChgDatAdmDocCrs (ActDowComDeg+ 70) #define ActChgDatAdmDocCrs (ActDowComDeg+ 71)
#define ActDowAdmDocCrs (ActDowComDeg+ 71) #define ActDowAdmDocCrs (ActDowComDeg+ 72)
#define ActAdmDocGrp (ActDowComDeg+ 72) #define ActAdmDocGrp (ActDowComDeg+ 73)
#define ActReqRemFilDocGrp (ActDowComDeg+ 73) #define ActReqRemFilDocGrp (ActDowComDeg+ 74)
#define ActRemFilDocGrp (ActDowComDeg+ 74) #define ActRemFilDocGrp (ActDowComDeg+ 75)
#define ActRemFolDocGrp (ActDowComDeg+ 75) #define ActRemFolDocGrp (ActDowComDeg+ 76)
#define ActCopDocGrp (ActDowComDeg+ 76) #define ActCopDocGrp (ActDowComDeg+ 77)
#define ActPasDocGrp (ActDowComDeg+ 77) #define ActPasDocGrp (ActDowComDeg+ 78)
#define ActRemTreDocGrp (ActDowComDeg+ 78) #define ActRemTreDocGrp (ActDowComDeg+ 79)
#define ActFrmCreDocGrp (ActDowComDeg+ 79) #define ActFrmCreDocGrp (ActDowComDeg+ 80)
#define ActCreFolDocGrp (ActDowComDeg+ 80) #define ActCreFolDocGrp (ActDowComDeg+ 81)
#define ActCreLnkDocGrp (ActDowComDeg+ 81) #define ActCreLnkDocGrp (ActDowComDeg+ 82)
#define ActRenFolDocGrp (ActDowComDeg+ 82) #define ActRenFolDocGrp (ActDowComDeg+ 83)
#define ActRcvFilDocGrpDZ (ActDowComDeg+ 83) #define ActRcvFilDocGrpDZ (ActDowComDeg+ 84)
#define ActRcvFilDocGrpCla (ActDowComDeg+ 84) #define ActRcvFilDocGrpCla (ActDowComDeg+ 85)
#define ActExpAdmDocGrp (ActDowComDeg+ 85) #define ActExpAdmDocGrp (ActDowComDeg+ 86)
#define ActConAdmDocGrp (ActDowComDeg+ 86) #define ActConAdmDocGrp (ActDowComDeg+ 87)
#define ActZIPAdmDocGrp (ActDowComDeg+ 87) #define ActZIPAdmDocGrp (ActDowComDeg+ 88)
#define ActShoDocGrp (ActDowComDeg+ 88) #define ActShoDocGrp (ActDowComDeg+ 89)
#define ActHidDocGrp (ActDowComDeg+ 89) #define ActHidDocGrp (ActDowComDeg+ 90)
#define ActReqDatAdmDocGrp (ActDowComDeg+ 90) #define ActReqDatAdmDocGrp (ActDowComDeg+ 91)
#define ActChgDatAdmDocGrp (ActDowComDeg+ 91) #define ActChgDatAdmDocGrp (ActDowComDeg+ 92)
#define ActDowAdmDocGrp (ActDowComDeg+ 92) #define ActDowAdmDocGrp (ActDowComDeg+ 93)
#define ActChgToAdmCom (ActDowComDeg+ 93) #define ActChgToAdmCom (ActDowComDeg+ 94)
#define ActAdmComCrs (ActDowComDeg+ 94) #define ActAdmComCrs (ActDowComDeg+ 95)
#define ActReqRemFilComCrs (ActDowComDeg+ 95) #define ActReqRemFilComCrs (ActDowComDeg+ 96)
#define ActRemFilComCrs (ActDowComDeg+ 96) #define ActRemFilComCrs (ActDowComDeg+ 97)
#define ActRemFolComCrs (ActDowComDeg+ 97) #define ActRemFolComCrs (ActDowComDeg+ 98)
#define ActCopComCrs (ActDowComDeg+ 98) #define ActCopComCrs (ActDowComDeg+ 99)
#define ActPasComCrs (ActDowComDeg+ 99) #define ActPasComCrs (ActDowComDeg+100)
#define ActRemTreComCrs (ActDowComDeg+100) #define ActRemTreComCrs (ActDowComDeg+101)
#define ActFrmCreComCrs (ActDowComDeg+101) #define ActFrmCreComCrs (ActDowComDeg+102)
#define ActCreFolComCrs (ActDowComDeg+102) #define ActCreFolComCrs (ActDowComDeg+103)
#define ActCreLnkComCrs (ActDowComDeg+103) #define ActCreLnkComCrs (ActDowComDeg+104)
#define ActRenFolComCrs (ActDowComDeg+104) #define ActRenFolComCrs (ActDowComDeg+105)
#define ActRcvFilComCrsDZ (ActDowComDeg+105) #define ActRcvFilComCrsDZ (ActDowComDeg+106)
#define ActRcvFilComCrsCla (ActDowComDeg+106) #define ActRcvFilComCrsCla (ActDowComDeg+107)
#define ActExpComCrs (ActDowComDeg+107) #define ActExpComCrs (ActDowComDeg+108)
#define ActConComCrs (ActDowComDeg+108) #define ActConComCrs (ActDowComDeg+109)
#define ActZIPComCrs (ActDowComDeg+109) #define ActZIPComCrs (ActDowComDeg+110)
#define ActReqDatComCrs (ActDowComDeg+110) #define ActReqDatComCrs (ActDowComDeg+111)
#define ActChgDatComCrs (ActDowComDeg+111) #define ActChgDatComCrs (ActDowComDeg+112)
#define ActDowComCrs (ActDowComDeg+112) #define ActDowComCrs (ActDowComDeg+113)
#define ActAdmComGrp (ActDowComDeg+113) #define ActAdmComGrp (ActDowComDeg+114)
#define ActReqRemFilComGrp (ActDowComDeg+114) #define ActReqRemFilComGrp (ActDowComDeg+115)
#define ActRemFilComGrp (ActDowComDeg+115) #define ActRemFilComGrp (ActDowComDeg+116)
#define ActRemFolComGrp (ActDowComDeg+116) #define ActRemFolComGrp (ActDowComDeg+117)
#define ActCopComGrp (ActDowComDeg+117) #define ActCopComGrp (ActDowComDeg+118)
#define ActPasComGrp (ActDowComDeg+118) #define ActPasComGrp (ActDowComDeg+119)
#define ActRemTreComGrp (ActDowComDeg+119) #define ActRemTreComGrp (ActDowComDeg+120)
#define ActFrmCreComGrp (ActDowComDeg+120) #define ActFrmCreComGrp (ActDowComDeg+121)
#define ActCreFolComGrp (ActDowComDeg+121) #define ActCreFolComGrp (ActDowComDeg+122)
#define ActCreLnkComGrp (ActDowComDeg+122) #define ActCreLnkComGrp (ActDowComDeg+123)
#define ActRenFolComGrp (ActDowComDeg+123) #define ActRenFolComGrp (ActDowComDeg+124)
#define ActRcvFilComGrpDZ (ActDowComDeg+124) #define ActRcvFilComGrpDZ (ActDowComDeg+125)
#define ActRcvFilComGrpCla (ActDowComDeg+125) #define ActRcvFilComGrpCla (ActDowComDeg+126)
#define ActExpComGrp (ActDowComDeg+126) #define ActExpComGrp (ActDowComDeg+127)
#define ActConComGrp (ActDowComDeg+127) #define ActConComGrp (ActDowComDeg+128)
#define ActZIPComGrp (ActDowComDeg+128) #define ActZIPComGrp (ActDowComDeg+129)
#define ActReqDatComGrp (ActDowComDeg+129) #define ActReqDatComGrp (ActDowComDeg+130)
#define ActChgDatComGrp (ActDowComDeg+130) #define ActChgDatComGrp (ActDowComDeg+131)
#define ActDowComGrp (ActDowComDeg+131) #define ActDowComGrp (ActDowComDeg+132)
#define ActEdiBib (ActDowComDeg+132) #define ActEdiBib (ActDowComDeg+133)
#define ActEdiFAQ (ActDowComDeg+133) #define ActEdiFAQ (ActDowComDeg+134)
#define ActEdiCrsLnk (ActDowComDeg+134) #define ActEdiCrsLnk (ActDowComDeg+135)
#define ActChgFrcReaCrsInf (ActDowComDeg+135) #define ActChgFrcReaCrsInf (ActDowComDeg+136)
#define ActChgFrcReaTchGui (ActDowComDeg+136) #define ActChgFrcReaTchGui (ActDowComDeg+137)
#define ActChgFrcReaSylLec (ActDowComDeg+137) #define ActChgFrcReaSylLec (ActDowComDeg+138)
#define ActChgFrcReaSylPra (ActDowComDeg+138) #define ActChgFrcReaSylPra (ActDowComDeg+139)
#define ActChgFrcReaBib (ActDowComDeg+139) #define ActChgFrcReaBib (ActDowComDeg+140)
#define ActChgFrcReaFAQ (ActDowComDeg+140) #define ActChgFrcReaFAQ (ActDowComDeg+141)
#define ActChgFrcReaCrsLnk (ActDowComDeg+141) #define ActChgFrcReaCrsLnk (ActDowComDeg+142)
#define ActChgHavReaCrsInf (ActDowComDeg+142) #define ActChgHavReaCrsInf (ActDowComDeg+143)
#define ActChgHavReaTchGui (ActDowComDeg+143) #define ActChgHavReaTchGui (ActDowComDeg+144)
#define ActChgHavReaSylLec (ActDowComDeg+144) #define ActChgHavReaSylLec (ActDowComDeg+145)
#define ActChgHavReaSylPra (ActDowComDeg+145) #define ActChgHavReaSylPra (ActDowComDeg+146)
#define ActChgHavReaBib (ActDowComDeg+146) #define ActChgHavReaBib (ActDowComDeg+147)
#define ActChgHavReaFAQ (ActDowComDeg+147) #define ActChgHavReaFAQ (ActDowComDeg+148)
#define ActChgHavReaCrsLnk (ActDowComDeg+148) #define ActChgHavReaCrsLnk (ActDowComDeg+149)
#define ActSelInfSrcCrsInf (ActDowComDeg+149) #define ActSelInfSrcCrsInf (ActDowComDeg+150)
#define ActSelInfSrcTchGui (ActDowComDeg+150) #define ActSelInfSrcTchGui (ActDowComDeg+151)
#define ActSelInfSrcSylLec (ActDowComDeg+151) #define ActSelInfSrcSylLec (ActDowComDeg+152)
#define ActSelInfSrcSylPra (ActDowComDeg+152) #define ActSelInfSrcSylPra (ActDowComDeg+153)
#define ActSelInfSrcBib (ActDowComDeg+153) #define ActSelInfSrcBib (ActDowComDeg+154)
#define ActSelInfSrcFAQ (ActDowComDeg+154) #define ActSelInfSrcFAQ (ActDowComDeg+155)
#define ActSelInfSrcCrsLnk (ActDowComDeg+155) #define ActSelInfSrcCrsLnk (ActDowComDeg+156)
#define ActRcvURLCrsInf (ActDowComDeg+156) #define ActRcvURLCrsInf (ActDowComDeg+157)
#define ActRcvURLTchGui (ActDowComDeg+157) #define ActRcvURLTchGui (ActDowComDeg+158)
#define ActRcvURLSylLec (ActDowComDeg+158) #define ActRcvURLSylLec (ActDowComDeg+159)
#define ActRcvURLSylPra (ActDowComDeg+159) #define ActRcvURLSylPra (ActDowComDeg+160)
#define ActRcvURLBib (ActDowComDeg+160) #define ActRcvURLBib (ActDowComDeg+161)
#define ActRcvURLFAQ (ActDowComDeg+161) #define ActRcvURLFAQ (ActDowComDeg+162)
#define ActRcvURLCrsLnk (ActDowComDeg+162) #define ActRcvURLCrsLnk (ActDowComDeg+163)
#define ActRcvPagCrsInf (ActDowComDeg+163) #define ActRcvPagCrsInf (ActDowComDeg+164)
#define ActRcvPagTchGui (ActDowComDeg+164) #define ActRcvPagTchGui (ActDowComDeg+165)
#define ActRcvPagSylLec (ActDowComDeg+165) #define ActRcvPagSylLec (ActDowComDeg+166)
#define ActRcvPagSylPra (ActDowComDeg+166) #define ActRcvPagSylPra (ActDowComDeg+167)
#define ActRcvPagBib (ActDowComDeg+167) #define ActRcvPagBib (ActDowComDeg+168)
#define ActRcvPagFAQ (ActDowComDeg+168) #define ActRcvPagFAQ (ActDowComDeg+169)
#define ActRcvPagCrsLnk (ActDowComDeg+169) #define ActRcvPagCrsLnk (ActDowComDeg+170)
#define ActEditorCrsInf (ActDowComDeg+170) #define ActEditorCrsInf (ActDowComDeg+171)
#define ActEditorTchGui (ActDowComDeg+171) #define ActEditorTchGui (ActDowComDeg+172)
#define ActEditorSylLec (ActDowComDeg+172) #define ActEditorSylLec (ActDowComDeg+173)
#define ActEditorSylPra (ActDowComDeg+173) #define ActEditorSylPra (ActDowComDeg+174)
#define ActEditorBib (ActDowComDeg+174) #define ActEditorBib (ActDowComDeg+175)
#define ActEditorFAQ (ActDowComDeg+175) #define ActEditorFAQ (ActDowComDeg+176)
#define ActEditorCrsLnk (ActDowComDeg+176) #define ActEditorCrsLnk (ActDowComDeg+177)
#define ActPlaTxtEdiCrsInf (ActDowComDeg+177) #define ActPlaTxtEdiCrsInf (ActDowComDeg+178)
#define ActPlaTxtEdiTchGui (ActDowComDeg+178) #define ActPlaTxtEdiTchGui (ActDowComDeg+179)
#define ActPlaTxtEdiSylLec (ActDowComDeg+179) #define ActPlaTxtEdiSylLec (ActDowComDeg+180)
#define ActPlaTxtEdiSylPra (ActDowComDeg+180) #define ActPlaTxtEdiSylPra (ActDowComDeg+181)
#define ActPlaTxtEdiBib (ActDowComDeg+181) #define ActPlaTxtEdiBib (ActDowComDeg+182)
#define ActPlaTxtEdiFAQ (ActDowComDeg+182) #define ActPlaTxtEdiFAQ (ActDowComDeg+183)
#define ActPlaTxtEdiCrsLnk (ActDowComDeg+183) #define ActPlaTxtEdiCrsLnk (ActDowComDeg+184)
#define ActRchTxtEdiCrsInf (ActDowComDeg+184) #define ActRchTxtEdiCrsInf (ActDowComDeg+185)
#define ActRchTxtEdiTchGui (ActDowComDeg+185) #define ActRchTxtEdiTchGui (ActDowComDeg+186)
#define ActRchTxtEdiSylLec (ActDowComDeg+186) #define ActRchTxtEdiSylLec (ActDowComDeg+187)
#define ActRchTxtEdiSylPra (ActDowComDeg+187) #define ActRchTxtEdiSylPra (ActDowComDeg+188)
#define ActRchTxtEdiBib (ActDowComDeg+188) #define ActRchTxtEdiBib (ActDowComDeg+189)
#define ActRchTxtEdiFAQ (ActDowComDeg+189) #define ActRchTxtEdiFAQ (ActDowComDeg+190)
#define ActRchTxtEdiCrsLnk (ActDowComDeg+190) #define ActRchTxtEdiCrsLnk (ActDowComDeg+191)
#define ActRcvPlaTxtCrsInf (ActDowComDeg+191) #define ActRcvPlaTxtCrsInf (ActDowComDeg+192)
#define ActRcvPlaTxtTchGui (ActDowComDeg+192) #define ActRcvPlaTxtTchGui (ActDowComDeg+193)
#define ActRcvPlaTxtSylLec (ActDowComDeg+193) #define ActRcvPlaTxtSylLec (ActDowComDeg+194)
#define ActRcvPlaTxtSylPra (ActDowComDeg+194) #define ActRcvPlaTxtSylPra (ActDowComDeg+195)
#define ActRcvPlaTxtBib (ActDowComDeg+195) #define ActRcvPlaTxtBib (ActDowComDeg+196)
#define ActRcvPlaTxtFAQ (ActDowComDeg+196) #define ActRcvPlaTxtFAQ (ActDowComDeg+197)
#define ActRcvPlaTxtCrsLnk (ActDowComDeg+197) #define ActRcvPlaTxtCrsLnk (ActDowComDeg+198)
#define ActRcvRchTxtCrsInf (ActDowComDeg+198) #define ActRcvRchTxtCrsInf (ActDowComDeg+199)
#define ActRcvRchTxtTchGui (ActDowComDeg+199) #define ActRcvRchTxtTchGui (ActDowComDeg+200)
#define ActRcvRchTxtSylLec (ActDowComDeg+200) #define ActRcvRchTxtSylLec (ActDowComDeg+201)
#define ActRcvRchTxtSylPra (ActDowComDeg+201) #define ActRcvRchTxtSylPra (ActDowComDeg+202)
#define ActRcvRchTxtBib (ActDowComDeg+202) #define ActRcvRchTxtBib (ActDowComDeg+203)
#define ActRcvRchTxtFAQ (ActDowComDeg+203) #define ActRcvRchTxtFAQ (ActDowComDeg+204)
#define ActRcvRchTxtCrsLnk (ActDowComDeg+204) #define ActRcvRchTxtCrsLnk (ActDowComDeg+205)
/*****************************************************************************/ /*****************************************************************************/
/***************************** Assessment tab ********************************/ /***************************** 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 // Actions in menu
#define ActFrmLogIn (ActSeeAllStaCrs+ 1) #define ActFrmLogIn (ActSeeAllStaCrs+ 1)
#define ActMyCrs (ActSeeAllStaCrs+ 2) #define ActMyCrs (ActSeeAllStaCrs+ 2)
#define ActSeeMyTimTbl (ActSeeAllStaCrs+ 3) #define ActSeeMyTT (ActSeeAllStaCrs+ 3)
#define ActFrmUsrAcc (ActSeeAllStaCrs+ 4) #define ActFrmUsrAcc (ActSeeAllStaCrs+ 4)
#define ActReqEdiRecCom (ActSeeAllStaCrs+ 5) #define ActReqEdiRecCom (ActSeeAllStaCrs+ 5)
#define ActEdiPrf (ActSeeAllStaCrs+ 6) #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 ActPrnUsrQR (ActSeeAllStaCrs+58)
#define ActPrnMyTimTbl (ActSeeAllStaCrs+59) #define ActPrnMyTT (ActSeeAllStaCrs+59)
#define ActEdiTut (ActSeeAllStaCrs+60) #define ActEdiTut (ActSeeAllStaCrs+60)
#define ActChgTut (ActSeeAllStaCrs+61) #define ActChgTut (ActSeeAllStaCrs+61)
#define ActReqRemFilBrf (ActSeeAllStaCrs+62) #define ActChgMyTT1stDay (ActSeeAllStaCrs+62)
#define ActRemFilBrf (ActSeeAllStaCrs+63)
#define ActRemFolBrf (ActSeeAllStaCrs+64) #define ActReqRemFilBrf (ActSeeAllStaCrs+63)
#define ActCopBrf (ActSeeAllStaCrs+65) #define ActRemFilBrf (ActSeeAllStaCrs+64)
#define ActPasBrf (ActSeeAllStaCrs+66) #define ActRemFolBrf (ActSeeAllStaCrs+65)
#define ActRemTreBrf (ActSeeAllStaCrs+67) #define ActCopBrf (ActSeeAllStaCrs+66)
#define ActFrmCreBrf (ActSeeAllStaCrs+68) #define ActPasBrf (ActSeeAllStaCrs+67)
#define ActCreFolBrf (ActSeeAllStaCrs+69) #define ActRemTreBrf (ActSeeAllStaCrs+68)
#define ActCreLnkBrf (ActSeeAllStaCrs+70) #define ActFrmCreBrf (ActSeeAllStaCrs+69)
#define ActRenFolBrf (ActSeeAllStaCrs+71) #define ActCreFolBrf (ActSeeAllStaCrs+70)
#define ActRcvFilBrfDZ (ActSeeAllStaCrs+72) #define ActCreLnkBrf (ActSeeAllStaCrs+71)
#define ActRcvFilBrfCla (ActSeeAllStaCrs+73) #define ActRenFolBrf (ActSeeAllStaCrs+72)
#define ActExpBrf (ActSeeAllStaCrs+74) #define ActRcvFilBrfDZ (ActSeeAllStaCrs+73)
#define ActConBrf (ActSeeAllStaCrs+75) #define ActRcvFilBrfCla (ActSeeAllStaCrs+74)
#define ActZIPBrf (ActSeeAllStaCrs+76) #define ActExpBrf (ActSeeAllStaCrs+75)
#define ActReqDatBrf (ActSeeAllStaCrs+77) #define ActConBrf (ActSeeAllStaCrs+76)
#define ActChgDatBrf (ActSeeAllStaCrs+78) #define ActZIPBrf (ActSeeAllStaCrs+77)
#define ActDowBrf (ActSeeAllStaCrs+79) #define ActReqDatBrf (ActSeeAllStaCrs+78)
#define ActChgDatBrf (ActSeeAllStaCrs+79)
#define ActDowBrf (ActSeeAllStaCrs+80)
/*****************************************************************************/ /*****************************************************************************/
/******************************** Public types *******************************/ /******************************** Public types *******************************/

View File

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

View File

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

View File

@ -115,12 +115,13 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 15.53 (2015/11/30)" #define Log_PLATFORM_VERSION "SWAD 15.54 (2015/12/01)"
#define CSS_FILE "swad15.53.css" #define CSS_FILE "swad15.54.css"
// 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 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.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. 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) Changes in layout of timetable. (186656 lines)

View File

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

View File

@ -82,8 +82,8 @@ void Mnu_WriteMenuThisTab (void)
bool IsTheSelectedAction; bool IsTheSelectedAction;
/***** Menu start *****/ /***** Menu start *****/
fprintf (Gbl.F.Out,"<div class=\"MENU_LIST\">" fprintf (Gbl.F.Out,"<div class=\"MENU_LIST_CONTAINER\">"
"<ul>"); "<ul class=\"MENU_LIST\">");
/***** Loop to write all options in menu. Each row holds an option *****/ /***** Loop to write all options in menu. Each row holds an option *****/
for (NumOptInMenu = 0; 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" "Compartilhados"
#endif #endif
, ,
// ActSeeCrsTimTbl // ActSeeCrsTT
#if L==0 #if L==0
"Horari" "Horari"
#elif L==1 #elif L==1
@ -18124,7 +18124,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Disciplinas" "Disciplinas"
#endif #endif
, ,
// ActSeeMyTimTbl // ActSeeMyTT
#if L==0 #if L==0
"Horari" "Horari"
#elif L==1 #elif L==1
@ -19168,7 +19168,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Arquivos compartilhados" "Arquivos compartilhados"
#endif #endif
, ,
// ActSeeCrsTimTbl // ActSeeCrsTT
#if L==0 #if L==0
"Horari de classes de l'assignatura" "Horari de classes de l'assignatura"
#elif L==1 #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" "Disciplinas a que perten&ccedil;o"
#endif #endif
, ,
// ActSeeMyTimTbl // ActSeeMyTT
#if L==0 #if L==0
"Horari conjunt de totes les meves assignatures a la plataforma" "Horari conjunt de totes les meves assignatures a la plataforma"
#elif L==1 #elif L==1

View File

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