mirror of https://github.com/acanas/swad-core.git
Version 22.31: Sep 28, 2022 New action to view one project.
This commit is contained in:
parent
0e760d7193
commit
051849f6e6
|
@ -180,7 +180,7 @@ void QR_ExamAnnnouncement (void)
|
||||||
if (asprintf (&URL,"https://chart.googleapis.com/chart?cht=qr&chs=%ux%u&chl=%s/?crs=%ld%%26act=%ld",
|
if (asprintf (&URL,"https://chart.googleapis.com/chart?cht=qr&chs=%ux%u&chl=%s/?crs=%ld%%26act=%ld",
|
||||||
300,300,
|
300,300,
|
||||||
Cfg_URL_SWAD_CGI,Gbl.Hierarchy.Crs.CrsCod,
|
Cfg_URL_SWAD_CGI,Gbl.Hierarchy.Crs.CrsCod,
|
||||||
Act_GetActCod (ActSeeAllExaAnn)) < 0)
|
Act_GetActCod (ActSeeAllCfe)) < 0)
|
||||||
Err_NotEnoughMemoryExit ();
|
Err_NotEnoughMemoryExit ();
|
||||||
HTM_IMG (URL,NULL,Txt_Link_to_call_for_exam,
|
HTM_IMG (URL,NULL,Txt_Link_to_call_for_exam,
|
||||||
"style=\"width:250px;height:250px;\"");
|
"style=\"width:250px;height:250px;\"");
|
||||||
|
|
|
@ -585,7 +585,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
[ActSeeAss ] = { 15, 0,TabAss,ActSeeAss ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_ShowInfo ,"info" },
|
[ActSeeAss ] = { 15, 0,TabAss,ActSeeAss ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_ShowInfo ,"info" },
|
||||||
[ActSeeAsg ] = { 801, 1,TabAss,ActSeeAsg ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_SeeAssignments ,"edit" },
|
[ActSeeAsg ] = { 801, 1,TabAss,ActSeeAsg ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_SeeAssignments ,"edit" },
|
||||||
[ActSeePrj ] = {1674, 2,TabAss,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_SeeProjects ,"file-invoice" },
|
[ActSeePrj ] = {1674, 2,TabAss,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_SeeProjects ,"file-invoice" },
|
||||||
[ActSeeAllExaAnn ] = { 85, 3,TabAss,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_ListCallsForExamsSee ,"bullhorn" },
|
[ActSeeAllCfe ] = { 85, 3,TabAss,ActSeeAllCfe ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_ListCallsForExamsSee ,"bullhorn" },
|
||||||
[ActEdiTstQst ] = { 104, 4,TabAss,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Dat_SetIniEndDates ,Qst_RequestEditQsts ,"tasks" },
|
[ActEdiTstQst ] = { 104, 4,TabAss,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Dat_SetIniEndDates ,Qst_RequestEditQsts ,"tasks" },
|
||||||
[ActReqTst ] = { 103, 5,TabAss,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_RequestTest ,"check" },
|
[ActReqTst ] = { 103, 5,TabAss,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_RequestTest ,"check" },
|
||||||
[ActSeeAllExa ] = {1848, 6,TabAss,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_SeeAllExams ,"file-signature" },
|
[ActSeeAllExa ] = {1848, 6,TabAss,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_SeeAllExams ,"file-signature" },
|
||||||
|
@ -627,6 +627,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
[ActUnlAllPrj ] = {1778,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_UnloSelectedPrjsEdition ,NULL},
|
[ActUnlAllPrj ] = {1778,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_UnloSelectedPrjsEdition ,NULL},
|
||||||
[ActFrmNewPrj ] = {1675,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestCreatePrj ,NULL},
|
[ActFrmNewPrj ] = {1675,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestCreatePrj ,NULL},
|
||||||
[ActEdiOnePrj ] = {1676,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestEditPrj ,NULL},
|
[ActEdiOnePrj ] = {1676,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestEditPrj ,NULL},
|
||||||
|
[ActSeeOnePrj ] = {1949,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ShowProjectWithFileBrowser ,NULL},
|
||||||
[ActPrnOnePrj ] = {1677,-1,TabUnk,ActSeePrj ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_PrintOneProject ,NULL},
|
[ActPrnOnePrj ] = {1677,-1,TabUnk,ActSeePrj ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_PrintOneProject ,NULL},
|
||||||
[ActNewPrj ] = {1678,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReceiveFormProject ,NULL},
|
[ActNewPrj ] = {1678,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReceiveFormProject ,NULL},
|
||||||
[ActChgPrj ] = {1679,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReceiveFormProject ,NULL},
|
[ActChgPrj ] = {1679,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReceiveFormProject ,NULL},
|
||||||
|
@ -690,16 +691,16 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
[ActChgDatAssPrj ] = {1733,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ChgFileMetadata ,NULL},
|
[ActChgDatAssPrj ] = {1733,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ChgFileMetadata ,NULL},
|
||||||
[ActDowAssPrj ] = {1734,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL},
|
[ActDowAssPrj ] = {1734,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL},
|
||||||
|
|
||||||
[ActSeeOneCfe ] = {1572,-1,TabUnk,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_ListCallsForExamsCod ,NULL},
|
[ActSeeOneCfe ] = {1572,-1,TabUnk,ActSeeAllCfe ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_ListCallsForExamsCod ,NULL},
|
||||||
[ActSeeDatCfe ] = {1571,-1,TabUnk,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_ListCallsForExamsDay ,NULL},
|
[ActSeeDatCfe ] = {1571,-1,TabUnk,ActSeeAllCfe ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_ListCallsForExamsDay ,NULL},
|
||||||
[ActEdiCfe ] = { 91,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_PutFrmEditACallForExam ,NULL},
|
[ActEdiCfe ] = { 91,-1,TabUnk,ActSeeAllCfe ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_PutFrmEditACallForExam ,NULL},
|
||||||
[ActRcvCfe ] = { 110,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cfe_ReceiveCallForExam1 ,Cfe_ReceiveCallForExam2 ,NULL},
|
[ActRcvCfe ] = { 110,-1,TabUnk,ActSeeAllCfe ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cfe_ReceiveCallForExam1 ,Cfe_ReceiveCallForExam2 ,NULL},
|
||||||
[ActPrnCfe ] = { 179,-1,TabUnk,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Cfe_PrintCallForExam ,NULL},
|
[ActPrnCfe ] = { 179,-1,TabUnk,ActSeeAllCfe ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Cfe_PrintCallForExam ,NULL},
|
||||||
[ActReqRemCfe ] = {1619,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_ReqRemoveCallForExam ,NULL},
|
[ActReqRemCfe ] = {1619,-1,TabUnk,ActSeeAllCfe ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_ReqRemoveCallForExam ,NULL},
|
||||||
[ActRemCfe ] = { 187,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cfe_RemoveCallForExam1 ,Cfe_RemoveCallForExam2 ,NULL},
|
[ActRemCfe ] = { 187,-1,TabUnk,ActSeeAllCfe ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cfe_RemoveCallForExam1 ,Cfe_RemoveCallForExam2 ,NULL},
|
||||||
[ActHidCfe ] = {1620,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cfe_HideCallForExam ,Cfe_ListCallsForExamsEdit ,NULL},
|
[ActHidCfe ] = {1620,-1,TabUnk,ActSeeAllCfe ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cfe_HideCallForExam ,Cfe_ListCallsForExamsEdit ,NULL},
|
||||||
[ActUnhCfe ] = {1621,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cfe_UnhideCallForExam ,Cfe_ListCallsForExamsEdit ,NULL},
|
[ActUnhCfe ] = {1621,-1,TabUnk,ActSeeAllCfe ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cfe_UnhideCallForExam ,Cfe_ListCallsForExamsEdit ,NULL},
|
||||||
[ActReqLnkCfe ] = {1934,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_GetLinkToCallForExam ,NULL},
|
[ActReqLnkCfe ] = {1934,-1,TabUnk,ActSeeAllCfe ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_GetLinkToCallForExam ,NULL},
|
||||||
|
|
||||||
[ActEdiOneTstQst ] = { 105,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Qst_ShowFormEditOneQst ,NULL},
|
[ActEdiOneTstQst ] = { 105,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Qst_ShowFormEditOneQst ,NULL},
|
||||||
[ActReqImpTstQst ] = {1007,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,QstImp_ShowFormImpQstsFromXML ,NULL},
|
[ActReqImpTstQst ] = {1007,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,QstImp_ShowFormImpQstsFromXML ,NULL},
|
||||||
|
@ -1953,7 +1954,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
||||||
-1, // #82 (obsolete action)
|
-1, // #82 (obsolete action)
|
||||||
-1, // #83 (obsolete action)
|
-1, // #83 (obsolete action)
|
||||||
ActSeeUseGbl, // #84
|
ActSeeUseGbl, // #84
|
||||||
ActSeeAllExaAnn, // #85
|
ActSeeAllCfe, // #85
|
||||||
-1, // #86 (obsolete action)
|
-1, // #86 (obsolete action)
|
||||||
ActRemAllStdCrs, // #87
|
ActRemAllStdCrs, // #87
|
||||||
ActReqRemAllStdCrs, // #88
|
ActReqRemAllStdCrs, // #88
|
||||||
|
@ -3817,6 +3818,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
||||||
ActExpEdiPrgItm, // #1946
|
ActExpEdiPrgItm, // #1946
|
||||||
ActConEdiPrgItm, // #1947
|
ActConEdiPrgItm, // #1947
|
||||||
ActReqLnkPrj, // #1948
|
ActReqLnkPrj, // #1948
|
||||||
|
ActSeeOnePrj, // #1949
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
415
swad_action.h
415
swad_action.h
|
@ -65,7 +65,7 @@ typedef enum
|
||||||
|
|
||||||
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
||||||
|
|
||||||
#define Act_MAX_ACTION_COD 1948
|
#define Act_MAX_ACTION_COD 1949
|
||||||
|
|
||||||
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
|
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
|
||||||
|
|
||||||
|
@ -535,7 +535,7 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
|
||||||
#define ActSeeAss (ActChgCrsTT1stDay + 1)
|
#define ActSeeAss (ActChgCrsTT1stDay + 1)
|
||||||
#define ActSeeAsg (ActChgCrsTT1stDay + 2)
|
#define ActSeeAsg (ActChgCrsTT1stDay + 2)
|
||||||
#define ActSeePrj (ActChgCrsTT1stDay + 3)
|
#define ActSeePrj (ActChgCrsTT1stDay + 3)
|
||||||
#define ActSeeAllExaAnn (ActChgCrsTT1stDay + 4)
|
#define ActSeeAllCfe (ActChgCrsTT1stDay + 4)
|
||||||
#define ActEdiTstQst (ActChgCrsTT1stDay + 5)
|
#define ActEdiTstQst (ActChgCrsTT1stDay + 5)
|
||||||
#define ActReqTst (ActChgCrsTT1stDay + 6)
|
#define ActReqTst (ActChgCrsTT1stDay + 6)
|
||||||
#define ActSeeAllExa (ActChgCrsTT1stDay + 7)
|
#define ActSeeAllExa (ActChgCrsTT1stDay + 7)
|
||||||
|
@ -577,234 +577,235 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
|
||||||
#define ActUnlAllPrj (ActChgCrsTT1stDay + 39)
|
#define ActUnlAllPrj (ActChgCrsTT1stDay + 39)
|
||||||
#define ActFrmNewPrj (ActChgCrsTT1stDay + 40)
|
#define ActFrmNewPrj (ActChgCrsTT1stDay + 40)
|
||||||
#define ActEdiOnePrj (ActChgCrsTT1stDay + 41)
|
#define ActEdiOnePrj (ActChgCrsTT1stDay + 41)
|
||||||
#define ActPrnOnePrj (ActChgCrsTT1stDay + 42)
|
#define ActSeeOnePrj (ActChgCrsTT1stDay + 42)
|
||||||
#define ActNewPrj (ActChgCrsTT1stDay + 43)
|
#define ActPrnOnePrj (ActChgCrsTT1stDay + 43)
|
||||||
#define ActChgPrj (ActChgCrsTT1stDay + 44)
|
#define ActNewPrj (ActChgCrsTT1stDay + 44)
|
||||||
#define ActReqRemPrj (ActChgCrsTT1stDay + 45)
|
#define ActChgPrj (ActChgCrsTT1stDay + 45)
|
||||||
#define ActRemPrj (ActChgCrsTT1stDay + 46)
|
#define ActReqRemPrj (ActChgCrsTT1stDay + 46)
|
||||||
#define ActHidPrj (ActChgCrsTT1stDay + 47)
|
#define ActRemPrj (ActChgCrsTT1stDay + 47)
|
||||||
#define ActUnhPrj (ActChgCrsTT1stDay + 48)
|
#define ActHidPrj (ActChgCrsTT1stDay + 48)
|
||||||
#define ActLckPrj (ActChgCrsTT1stDay + 49)
|
#define ActUnhPrj (ActChgCrsTT1stDay + 49)
|
||||||
#define ActUnlPrj (ActChgCrsTT1stDay + 50)
|
#define ActLckPrj (ActChgCrsTT1stDay + 50)
|
||||||
#define ActReqAddStdPrj (ActChgCrsTT1stDay + 51)
|
#define ActUnlPrj (ActChgCrsTT1stDay + 51)
|
||||||
#define ActReqAddTutPrj (ActChgCrsTT1stDay + 52)
|
#define ActReqAddStdPrj (ActChgCrsTT1stDay + 52)
|
||||||
#define ActReqAddEvlPrj (ActChgCrsTT1stDay + 53)
|
#define ActReqAddTutPrj (ActChgCrsTT1stDay + 53)
|
||||||
#define ActAddStdPrj (ActChgCrsTT1stDay + 54)
|
#define ActReqAddEvlPrj (ActChgCrsTT1stDay + 54)
|
||||||
#define ActAddTutPrj (ActChgCrsTT1stDay + 55)
|
#define ActAddStdPrj (ActChgCrsTT1stDay + 55)
|
||||||
#define ActAddEvlPrj (ActChgCrsTT1stDay + 56)
|
#define ActAddTutPrj (ActChgCrsTT1stDay + 56)
|
||||||
#define ActReqRemStdPrj (ActChgCrsTT1stDay + 57)
|
#define ActAddEvlPrj (ActChgCrsTT1stDay + 57)
|
||||||
#define ActReqRemTutPrj (ActChgCrsTT1stDay + 58)
|
#define ActReqRemStdPrj (ActChgCrsTT1stDay + 58)
|
||||||
#define ActReqRemEvlPrj (ActChgCrsTT1stDay + 59)
|
#define ActReqRemTutPrj (ActChgCrsTT1stDay + 59)
|
||||||
#define ActRemStdPrj (ActChgCrsTT1stDay + 60)
|
#define ActReqRemEvlPrj (ActChgCrsTT1stDay + 60)
|
||||||
#define ActRemTutPrj (ActChgCrsTT1stDay + 61)
|
#define ActRemStdPrj (ActChgCrsTT1stDay + 61)
|
||||||
#define ActRemEvlPrj (ActChgCrsTT1stDay + 62)
|
#define ActRemTutPrj (ActChgCrsTT1stDay + 62)
|
||||||
#define ActReqLnkPrj (ActChgCrsTT1stDay + 63)
|
#define ActRemEvlPrj (ActChgCrsTT1stDay + 63)
|
||||||
|
#define ActReqLnkPrj (ActChgCrsTT1stDay + 64)
|
||||||
|
|
||||||
#define ActAdmDocPrj (ActChgCrsTT1stDay + 64)
|
#define ActAdmDocPrj (ActChgCrsTT1stDay + 65)
|
||||||
#define ActReqRemFilDocPrj (ActChgCrsTT1stDay + 65)
|
#define ActReqRemFilDocPrj (ActChgCrsTT1stDay + 66)
|
||||||
#define ActRemFilDocPrj (ActChgCrsTT1stDay + 66)
|
#define ActRemFilDocPrj (ActChgCrsTT1stDay + 67)
|
||||||
#define ActRemFolDocPrj (ActChgCrsTT1stDay + 67)
|
#define ActRemFolDocPrj (ActChgCrsTT1stDay + 68)
|
||||||
#define ActCopDocPrj (ActChgCrsTT1stDay + 68)
|
#define ActCopDocPrj (ActChgCrsTT1stDay + 69)
|
||||||
#define ActPasDocPrj (ActChgCrsTT1stDay + 69)
|
#define ActPasDocPrj (ActChgCrsTT1stDay + 70)
|
||||||
#define ActRemTreDocPrj (ActChgCrsTT1stDay + 70)
|
#define ActRemTreDocPrj (ActChgCrsTT1stDay + 71)
|
||||||
#define ActFrmCreDocPrj (ActChgCrsTT1stDay + 71)
|
#define ActFrmCreDocPrj (ActChgCrsTT1stDay + 72)
|
||||||
#define ActCreFolDocPrj (ActChgCrsTT1stDay + 72)
|
#define ActCreFolDocPrj (ActChgCrsTT1stDay + 73)
|
||||||
#define ActCreLnkDocPrj (ActChgCrsTT1stDay + 73)
|
#define ActCreLnkDocPrj (ActChgCrsTT1stDay + 74)
|
||||||
#define ActRenFolDocPrj (ActChgCrsTT1stDay + 74)
|
#define ActRenFolDocPrj (ActChgCrsTT1stDay + 75)
|
||||||
#define ActRcvFilDocPrjDZ (ActChgCrsTT1stDay + 75)
|
#define ActRcvFilDocPrjDZ (ActChgCrsTT1stDay + 76)
|
||||||
#define ActRcvFilDocPrjCla (ActChgCrsTT1stDay + 76)
|
#define ActRcvFilDocPrjCla (ActChgCrsTT1stDay + 77)
|
||||||
#define ActExpDocPrj (ActChgCrsTT1stDay + 77)
|
#define ActExpDocPrj (ActChgCrsTT1stDay + 78)
|
||||||
#define ActConDocPrj (ActChgCrsTT1stDay + 78)
|
#define ActConDocPrj (ActChgCrsTT1stDay + 79)
|
||||||
#define ActZIPDocPrj (ActChgCrsTT1stDay + 79)
|
#define ActZIPDocPrj (ActChgCrsTT1stDay + 80)
|
||||||
#define ActReqDatDocPrj (ActChgCrsTT1stDay + 80)
|
#define ActReqDatDocPrj (ActChgCrsTT1stDay + 81)
|
||||||
#define ActChgDatDocPrj (ActChgCrsTT1stDay + 81)
|
#define ActChgDatDocPrj (ActChgCrsTT1stDay + 82)
|
||||||
#define ActDowDocPrj (ActChgCrsTT1stDay + 82)
|
#define ActDowDocPrj (ActChgCrsTT1stDay + 83)
|
||||||
|
|
||||||
#define ActAdmAssPrj (ActChgCrsTT1stDay + 83)
|
#define ActAdmAssPrj (ActChgCrsTT1stDay + 84)
|
||||||
#define ActReqRemFilAssPrj (ActChgCrsTT1stDay + 84)
|
#define ActReqRemFilAssPrj (ActChgCrsTT1stDay + 85)
|
||||||
#define ActRemFilAssPrj (ActChgCrsTT1stDay + 85)
|
#define ActRemFilAssPrj (ActChgCrsTT1stDay + 86)
|
||||||
#define ActRemFolAssPrj (ActChgCrsTT1stDay + 86)
|
#define ActRemFolAssPrj (ActChgCrsTT1stDay + 87)
|
||||||
#define ActCopAssPrj (ActChgCrsTT1stDay + 87)
|
#define ActCopAssPrj (ActChgCrsTT1stDay + 88)
|
||||||
#define ActPasAssPrj (ActChgCrsTT1stDay + 88)
|
#define ActPasAssPrj (ActChgCrsTT1stDay + 89)
|
||||||
#define ActRemTreAssPrj (ActChgCrsTT1stDay + 89)
|
#define ActRemTreAssPrj (ActChgCrsTT1stDay + 90)
|
||||||
#define ActFrmCreAssPrj (ActChgCrsTT1stDay + 90)
|
#define ActFrmCreAssPrj (ActChgCrsTT1stDay + 91)
|
||||||
#define ActCreFolAssPrj (ActChgCrsTT1stDay + 91)
|
#define ActCreFolAssPrj (ActChgCrsTT1stDay + 92)
|
||||||
#define ActCreLnkAssPrj (ActChgCrsTT1stDay + 92)
|
#define ActCreLnkAssPrj (ActChgCrsTT1stDay + 93)
|
||||||
#define ActRenFolAssPrj (ActChgCrsTT1stDay + 93)
|
#define ActRenFolAssPrj (ActChgCrsTT1stDay + 94)
|
||||||
#define ActRcvFilAssPrjDZ (ActChgCrsTT1stDay + 94)
|
#define ActRcvFilAssPrjDZ (ActChgCrsTT1stDay + 95)
|
||||||
#define ActRcvFilAssPrjCla (ActChgCrsTT1stDay + 95)
|
#define ActRcvFilAssPrjCla (ActChgCrsTT1stDay + 96)
|
||||||
#define ActExpAssPrj (ActChgCrsTT1stDay + 96)
|
#define ActExpAssPrj (ActChgCrsTT1stDay + 97)
|
||||||
#define ActConAssPrj (ActChgCrsTT1stDay + 97)
|
#define ActConAssPrj (ActChgCrsTT1stDay + 98)
|
||||||
#define ActZIPAssPrj (ActChgCrsTT1stDay + 98)
|
#define ActZIPAssPrj (ActChgCrsTT1stDay + 99)
|
||||||
#define ActReqDatAssPrj (ActChgCrsTT1stDay + 99)
|
#define ActReqDatAssPrj (ActChgCrsTT1stDay + 100)
|
||||||
#define ActChgDatAssPrj (ActChgCrsTT1stDay + 100)
|
#define ActChgDatAssPrj (ActChgCrsTT1stDay + 101)
|
||||||
#define ActDowAssPrj (ActChgCrsTT1stDay + 101)
|
#define ActDowAssPrj (ActChgCrsTT1stDay + 102)
|
||||||
|
|
||||||
#define ActSeeOneCfe (ActChgCrsTT1stDay + 102)
|
#define ActSeeOneCfe (ActChgCrsTT1stDay + 103)
|
||||||
#define ActSeeDatCfe (ActChgCrsTT1stDay + 103)
|
#define ActSeeDatCfe (ActChgCrsTT1stDay + 104)
|
||||||
#define ActEdiCfe (ActChgCrsTT1stDay + 104)
|
#define ActEdiCfe (ActChgCrsTT1stDay + 105)
|
||||||
#define ActRcvCfe (ActChgCrsTT1stDay + 105)
|
#define ActRcvCfe (ActChgCrsTT1stDay + 106)
|
||||||
#define ActPrnCfe (ActChgCrsTT1stDay + 106)
|
#define ActPrnCfe (ActChgCrsTT1stDay + 107)
|
||||||
#define ActReqRemCfe (ActChgCrsTT1stDay + 107)
|
#define ActReqRemCfe (ActChgCrsTT1stDay + 108)
|
||||||
#define ActRemCfe (ActChgCrsTT1stDay + 108)
|
#define ActRemCfe (ActChgCrsTT1stDay + 109)
|
||||||
#define ActHidCfe (ActChgCrsTT1stDay + 109)
|
#define ActHidCfe (ActChgCrsTT1stDay + 110)
|
||||||
#define ActUnhCfe (ActChgCrsTT1stDay + 110)
|
#define ActUnhCfe (ActChgCrsTT1stDay + 111)
|
||||||
#define ActReqLnkCfe (ActChgCrsTT1stDay + 111)
|
#define ActReqLnkCfe (ActChgCrsTT1stDay + 112)
|
||||||
|
|
||||||
#define ActEdiOneTstQst (ActChgCrsTT1stDay + 112)
|
#define ActEdiOneTstQst (ActChgCrsTT1stDay + 113)
|
||||||
#define ActReqImpTstQst (ActChgCrsTT1stDay + 113)
|
#define ActReqImpTstQst (ActChgCrsTT1stDay + 114)
|
||||||
#define ActImpTstQst (ActChgCrsTT1stDay + 114)
|
#define ActImpTstQst (ActChgCrsTT1stDay + 115)
|
||||||
#define ActLstTstQst (ActChgCrsTT1stDay + 115)
|
#define ActLstTstQst (ActChgCrsTT1stDay + 116)
|
||||||
#define ActRcvTstQst (ActChgCrsTT1stDay + 116)
|
#define ActRcvTstQst (ActChgCrsTT1stDay + 117)
|
||||||
#define ActReqRemSevTstQst (ActChgCrsTT1stDay + 117)
|
#define ActReqRemSevTstQst (ActChgCrsTT1stDay + 118)
|
||||||
#define ActRemSevTstQst (ActChgCrsTT1stDay + 118)
|
#define ActRemSevTstQst (ActChgCrsTT1stDay + 119)
|
||||||
#define ActReqRemOneTstQst (ActChgCrsTT1stDay + 119)
|
#define ActReqRemOneTstQst (ActChgCrsTT1stDay + 120)
|
||||||
#define ActRemOneTstQst (ActChgCrsTT1stDay + 120)
|
#define ActRemOneTstQst (ActChgCrsTT1stDay + 121)
|
||||||
#define ActChgShfTstQst (ActChgCrsTT1stDay + 121)
|
#define ActChgShfTstQst (ActChgCrsTT1stDay + 122)
|
||||||
|
|
||||||
#define ActEdiTag (ActChgCrsTT1stDay + 122)
|
#define ActEdiTag (ActChgCrsTT1stDay + 123)
|
||||||
#define ActEnaTag (ActChgCrsTT1stDay + 123)
|
#define ActEnaTag (ActChgCrsTT1stDay + 124)
|
||||||
#define ActDisTag (ActChgCrsTT1stDay + 124)
|
#define ActDisTag (ActChgCrsTT1stDay + 125)
|
||||||
#define ActRenTag (ActChgCrsTT1stDay + 125)
|
#define ActRenTag (ActChgCrsTT1stDay + 126)
|
||||||
|
|
||||||
#define ActSeeTst (ActChgCrsTT1stDay + 126)
|
#define ActSeeTst (ActChgCrsTT1stDay + 127)
|
||||||
#define ActReqAssTst (ActChgCrsTT1stDay + 127)
|
#define ActReqAssTst (ActChgCrsTT1stDay + 128)
|
||||||
#define ActAssTst (ActChgCrsTT1stDay + 128)
|
#define ActAssTst (ActChgCrsTT1stDay + 129)
|
||||||
#define ActCfgTst (ActChgCrsTT1stDay + 129)
|
#define ActCfgTst (ActChgCrsTT1stDay + 130)
|
||||||
#define ActRcvCfgTst (ActChgCrsTT1stDay + 130)
|
#define ActRcvCfgTst (ActChgCrsTT1stDay + 131)
|
||||||
|
|
||||||
#define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 131)
|
#define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 132)
|
||||||
#define ActSeeMyTstResCrs (ActChgCrsTT1stDay + 132)
|
#define ActSeeMyTstResCrs (ActChgCrsTT1stDay + 133)
|
||||||
#define ActSeeOneTstResMe (ActChgCrsTT1stDay + 133)
|
#define ActSeeOneTstResMe (ActChgCrsTT1stDay + 134)
|
||||||
#define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 134)
|
#define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 135)
|
||||||
#define ActSeeUsrTstResCrs (ActChgCrsTT1stDay + 135)
|
#define ActSeeUsrTstResCrs (ActChgCrsTT1stDay + 136)
|
||||||
#define ActSeeOneTstResOth (ActChgCrsTT1stDay + 136)
|
#define ActSeeOneTstResOth (ActChgCrsTT1stDay + 137)
|
||||||
|
|
||||||
#define ActSeeExa (ActChgCrsTT1stDay + 137)
|
#define ActSeeExa (ActChgCrsTT1stDay + 138)
|
||||||
|
|
||||||
#define ActFrmNewExa (ActChgCrsTT1stDay + 138)
|
#define ActFrmNewExa (ActChgCrsTT1stDay + 139)
|
||||||
#define ActEdiOneExa (ActChgCrsTT1stDay + 139)
|
#define ActEdiOneExa (ActChgCrsTT1stDay + 140)
|
||||||
#define ActNewExa (ActChgCrsTT1stDay + 140)
|
#define ActNewExa (ActChgCrsTT1stDay + 141)
|
||||||
#define ActChgExa (ActChgCrsTT1stDay + 141)
|
#define ActChgExa (ActChgCrsTT1stDay + 142)
|
||||||
#define ActReqRemExa (ActChgCrsTT1stDay + 142)
|
#define ActReqRemExa (ActChgCrsTT1stDay + 143)
|
||||||
#define ActRemExa (ActChgCrsTT1stDay + 143)
|
#define ActRemExa (ActChgCrsTT1stDay + 144)
|
||||||
#define ActHidExa (ActChgCrsTT1stDay + 144)
|
#define ActHidExa (ActChgCrsTT1stDay + 145)
|
||||||
#define ActUnhExa (ActChgCrsTT1stDay + 145)
|
#define ActUnhExa (ActChgCrsTT1stDay + 146)
|
||||||
#define ActReqLnkExa (ActChgCrsTT1stDay + 146)
|
#define ActReqLnkExa (ActChgCrsTT1stDay + 147)
|
||||||
|
|
||||||
#define ActFrmNewExaSet (ActChgCrsTT1stDay + 147)
|
#define ActFrmNewExaSet (ActChgCrsTT1stDay + 148)
|
||||||
#define ActNewExaSet (ActChgCrsTT1stDay + 148)
|
#define ActNewExaSet (ActChgCrsTT1stDay + 149)
|
||||||
#define ActReqRemExaSet (ActChgCrsTT1stDay + 149)
|
#define ActReqRemExaSet (ActChgCrsTT1stDay + 150)
|
||||||
#define ActRemExaSet (ActChgCrsTT1stDay + 150)
|
#define ActRemExaSet (ActChgCrsTT1stDay + 151)
|
||||||
#define ActUp_ExaSet (ActChgCrsTT1stDay + 151)
|
#define ActUp_ExaSet (ActChgCrsTT1stDay + 152)
|
||||||
#define ActDwnExaSet (ActChgCrsTT1stDay + 152)
|
#define ActDwnExaSet (ActChgCrsTT1stDay + 153)
|
||||||
#define ActChgTitExaSet (ActChgCrsTT1stDay + 153)
|
#define ActChgTitExaSet (ActChgCrsTT1stDay + 154)
|
||||||
#define ActChgNumQstExaSet (ActChgCrsTT1stDay + 154)
|
#define ActChgNumQstExaSet (ActChgCrsTT1stDay + 155)
|
||||||
|
|
||||||
#define ActReqAddQstExaSet (ActChgCrsTT1stDay + 155)
|
#define ActReqAddQstExaSet (ActChgCrsTT1stDay + 156)
|
||||||
#define ActLstTstQstForSet (ActChgCrsTT1stDay + 156)
|
#define ActLstTstQstForSet (ActChgCrsTT1stDay + 157)
|
||||||
#define ActAddQstToExa (ActChgCrsTT1stDay + 157)
|
#define ActAddQstToExa (ActChgCrsTT1stDay + 158)
|
||||||
#define ActReqRemSetQst (ActChgCrsTT1stDay + 158)
|
#define ActReqRemSetQst (ActChgCrsTT1stDay + 159)
|
||||||
#define ActRemExaQst (ActChgCrsTT1stDay + 159)
|
#define ActRemExaQst (ActChgCrsTT1stDay + 160)
|
||||||
#define ActValSetQst (ActChgCrsTT1stDay + 160)
|
#define ActValSetQst (ActChgCrsTT1stDay + 161)
|
||||||
#define ActInvSetQst (ActChgCrsTT1stDay + 161)
|
#define ActInvSetQst (ActChgCrsTT1stDay + 162)
|
||||||
|
|
||||||
#define ActReqNewExaSes (ActChgCrsTT1stDay + 162)
|
#define ActReqNewExaSes (ActChgCrsTT1stDay + 163)
|
||||||
#define ActEdiOneExaSes (ActChgCrsTT1stDay + 163)
|
#define ActEdiOneExaSes (ActChgCrsTT1stDay + 164)
|
||||||
#define ActNewExaSes (ActChgCrsTT1stDay + 164)
|
#define ActNewExaSes (ActChgCrsTT1stDay + 165)
|
||||||
#define ActChgExaSes (ActChgCrsTT1stDay + 165)
|
#define ActChgExaSes (ActChgCrsTT1stDay + 166)
|
||||||
#define ActReqRemExaSes (ActChgCrsTT1stDay + 166)
|
#define ActReqRemExaSes (ActChgCrsTT1stDay + 167)
|
||||||
#define ActRemExaSes (ActChgCrsTT1stDay + 167)
|
#define ActRemExaSes (ActChgCrsTT1stDay + 168)
|
||||||
#define ActHidExaSes (ActChgCrsTT1stDay + 168)
|
#define ActHidExaSes (ActChgCrsTT1stDay + 169)
|
||||||
#define ActUnhExaSes (ActChgCrsTT1stDay + 169)
|
#define ActUnhExaSes (ActChgCrsTT1stDay + 170)
|
||||||
|
|
||||||
#define ActSeeExaPrn (ActChgCrsTT1stDay + 170)
|
#define ActSeeExaPrn (ActChgCrsTT1stDay + 171)
|
||||||
#define ActAnsExaPrn (ActChgCrsTT1stDay + 171)
|
#define ActAnsExaPrn (ActChgCrsTT1stDay + 172)
|
||||||
#define ActEndExaPrn (ActChgCrsTT1stDay + 172)
|
#define ActEndExaPrn (ActChgCrsTT1stDay + 173)
|
||||||
|
|
||||||
#define ActSeeMyExaResCrs (ActChgCrsTT1stDay + 173)
|
#define ActSeeMyExaResCrs (ActChgCrsTT1stDay + 174)
|
||||||
#define ActSeeMyExaResExa (ActChgCrsTT1stDay + 174)
|
#define ActSeeMyExaResExa (ActChgCrsTT1stDay + 175)
|
||||||
#define ActSeeMyExaResSes (ActChgCrsTT1stDay + 175)
|
#define ActSeeMyExaResSes (ActChgCrsTT1stDay + 176)
|
||||||
#define ActSeeOneExaResMe (ActChgCrsTT1stDay + 176)
|
#define ActSeeOneExaResMe (ActChgCrsTT1stDay + 177)
|
||||||
#define ActReqSeeUsrExaRes (ActChgCrsTT1stDay + 177)
|
#define ActReqSeeUsrExaRes (ActChgCrsTT1stDay + 178)
|
||||||
#define ActSeeUsrExaResCrs (ActChgCrsTT1stDay + 178)
|
#define ActSeeUsrExaResCrs (ActChgCrsTT1stDay + 179)
|
||||||
#define ActSeeUsrExaResExa (ActChgCrsTT1stDay + 179)
|
#define ActSeeUsrExaResExa (ActChgCrsTT1stDay + 180)
|
||||||
#define ActSeeUsrExaResSes (ActChgCrsTT1stDay + 180)
|
#define ActSeeUsrExaResSes (ActChgCrsTT1stDay + 181)
|
||||||
#define ActSeeOneExaResOth (ActChgCrsTT1stDay + 181)
|
#define ActSeeOneExaResOth (ActChgCrsTT1stDay + 182)
|
||||||
#define ActChgVisExaRes (ActChgCrsTT1stDay + 182)
|
#define ActChgVisExaRes (ActChgCrsTT1stDay + 183)
|
||||||
|
|
||||||
#define ActSeeGam (ActChgCrsTT1stDay + 183)
|
#define ActSeeGam (ActChgCrsTT1stDay + 184)
|
||||||
#define ActReqRemMch (ActChgCrsTT1stDay + 184)
|
#define ActReqRemMch (ActChgCrsTT1stDay + 185)
|
||||||
#define ActRemMch (ActChgCrsTT1stDay + 185)
|
#define ActRemMch (ActChgCrsTT1stDay + 186)
|
||||||
#define ActEdiMch (ActChgCrsTT1stDay + 186)
|
#define ActEdiMch (ActChgCrsTT1stDay + 187)
|
||||||
#define ActChgMch (ActChgCrsTT1stDay + 187)
|
#define ActChgMch (ActChgCrsTT1stDay + 188)
|
||||||
#define ActReqNewMch (ActChgCrsTT1stDay + 188)
|
#define ActReqNewMch (ActChgCrsTT1stDay + 189)
|
||||||
#define ActNewMch (ActChgCrsTT1stDay + 189)
|
#define ActNewMch (ActChgCrsTT1stDay + 190)
|
||||||
#define ActResMch (ActChgCrsTT1stDay + 190)
|
#define ActResMch (ActChgCrsTT1stDay + 191)
|
||||||
#define ActBckMch (ActChgCrsTT1stDay + 191)
|
#define ActBckMch (ActChgCrsTT1stDay + 192)
|
||||||
#define ActPlyPauMch (ActChgCrsTT1stDay + 192)
|
#define ActPlyPauMch (ActChgCrsTT1stDay + 193)
|
||||||
#define ActFwdMch (ActChgCrsTT1stDay + 193)
|
#define ActFwdMch (ActChgCrsTT1stDay + 194)
|
||||||
#define ActChgNumColMch (ActChgCrsTT1stDay + 194)
|
#define ActChgNumColMch (ActChgCrsTT1stDay + 195)
|
||||||
#define ActChgVisResMchQst (ActChgCrsTT1stDay + 195)
|
#define ActChgVisResMchQst (ActChgCrsTT1stDay + 196)
|
||||||
#define ActMchCntDwn (ActChgCrsTT1stDay + 196)
|
#define ActMchCntDwn (ActChgCrsTT1stDay + 197)
|
||||||
#define ActRefMchTch (ActChgCrsTT1stDay + 197)
|
#define ActRefMchTch (ActChgCrsTT1stDay + 198)
|
||||||
|
|
||||||
#define ActJoiMch (ActChgCrsTT1stDay + 198)
|
#define ActJoiMch (ActChgCrsTT1stDay + 199)
|
||||||
#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 199)
|
#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 200)
|
||||||
#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 200)
|
#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 201)
|
||||||
#define ActAnsMchQstStd (ActChgCrsTT1stDay + 201)
|
#define ActAnsMchQstStd (ActChgCrsTT1stDay + 202)
|
||||||
#define ActRefMchStd (ActChgCrsTT1stDay + 202)
|
#define ActRefMchStd (ActChgCrsTT1stDay + 203)
|
||||||
|
|
||||||
#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 203)
|
#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 204)
|
||||||
#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 204)
|
#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 205)
|
||||||
#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 205)
|
#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 206)
|
||||||
#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 206)
|
#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 207)
|
||||||
|
|
||||||
#define ActReqSeeUsrMchRes (ActChgCrsTT1stDay + 207)
|
#define ActReqSeeUsrMchRes (ActChgCrsTT1stDay + 208)
|
||||||
#define ActSeeUsrMchResCrs (ActChgCrsTT1stDay + 208)
|
#define ActSeeUsrMchResCrs (ActChgCrsTT1stDay + 209)
|
||||||
#define ActSeeUsrMchResGam (ActChgCrsTT1stDay + 209)
|
#define ActSeeUsrMchResGam (ActChgCrsTT1stDay + 210)
|
||||||
#define ActSeeUsrMchResMch (ActChgCrsTT1stDay + 210)
|
#define ActSeeUsrMchResMch (ActChgCrsTT1stDay + 211)
|
||||||
#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 211)
|
#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 212)
|
||||||
|
|
||||||
#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 212)
|
#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 213)
|
||||||
|
|
||||||
#define ActLstOneGam (ActChgCrsTT1stDay + 213)
|
#define ActLstOneGam (ActChgCrsTT1stDay + 214)
|
||||||
|
|
||||||
#define ActFrmNewGam (ActChgCrsTT1stDay + 214)
|
#define ActFrmNewGam (ActChgCrsTT1stDay + 215)
|
||||||
#define ActEdiOneGam (ActChgCrsTT1stDay + 215)
|
#define ActEdiOneGam (ActChgCrsTT1stDay + 216)
|
||||||
#define ActNewGam (ActChgCrsTT1stDay + 216)
|
#define ActNewGam (ActChgCrsTT1stDay + 217)
|
||||||
#define ActChgGam (ActChgCrsTT1stDay + 217)
|
#define ActChgGam (ActChgCrsTT1stDay + 218)
|
||||||
#define ActReqRemGam (ActChgCrsTT1stDay + 218)
|
#define ActReqRemGam (ActChgCrsTT1stDay + 219)
|
||||||
#define ActRemGam (ActChgCrsTT1stDay + 219)
|
#define ActRemGam (ActChgCrsTT1stDay + 220)
|
||||||
#define ActHidGam (ActChgCrsTT1stDay + 220)
|
#define ActHidGam (ActChgCrsTT1stDay + 221)
|
||||||
#define ActUnhGam (ActChgCrsTT1stDay + 221)
|
#define ActUnhGam (ActChgCrsTT1stDay + 222)
|
||||||
#define ActAddOneGamQst (ActChgCrsTT1stDay + 222)
|
#define ActAddOneGamQst (ActChgCrsTT1stDay + 223)
|
||||||
#define ActGamLstTstQst (ActChgCrsTT1stDay + 223)
|
#define ActGamLstTstQst (ActChgCrsTT1stDay + 224)
|
||||||
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 224)
|
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 225)
|
||||||
#define ActReqRemGamQst (ActChgCrsTT1stDay + 225)
|
#define ActReqRemGamQst (ActChgCrsTT1stDay + 226)
|
||||||
#define ActRemGamQst (ActChgCrsTT1stDay + 226)
|
#define ActRemGamQst (ActChgCrsTT1stDay + 227)
|
||||||
#define ActUp_GamQst (ActChgCrsTT1stDay + 227)
|
#define ActUp_GamQst (ActChgCrsTT1stDay + 228)
|
||||||
#define ActDwnGamQst (ActChgCrsTT1stDay + 228)
|
#define ActDwnGamQst (ActChgCrsTT1stDay + 229)
|
||||||
#define ActReqLnkGam (ActChgCrsTT1stDay + 229)
|
#define ActReqLnkGam (ActChgCrsTT1stDay + 230)
|
||||||
|
|
||||||
#define ActSeeSvy (ActChgCrsTT1stDay + 230)
|
#define ActSeeSvy (ActChgCrsTT1stDay + 231)
|
||||||
#define ActAnsSvy (ActChgCrsTT1stDay + 231)
|
#define ActAnsSvy (ActChgCrsTT1stDay + 232)
|
||||||
#define ActFrmNewSvy (ActChgCrsTT1stDay + 232)
|
#define ActFrmNewSvy (ActChgCrsTT1stDay + 233)
|
||||||
#define ActEdiOneSvy (ActChgCrsTT1stDay + 233)
|
#define ActEdiOneSvy (ActChgCrsTT1stDay + 234)
|
||||||
#define ActNewSvy (ActChgCrsTT1stDay + 234)
|
#define ActNewSvy (ActChgCrsTT1stDay + 235)
|
||||||
#define ActChgSvy (ActChgCrsTT1stDay + 235)
|
#define ActChgSvy (ActChgCrsTT1stDay + 236)
|
||||||
#define ActReqRemSvy (ActChgCrsTT1stDay + 236)
|
#define ActReqRemSvy (ActChgCrsTT1stDay + 237)
|
||||||
#define ActRemSvy (ActChgCrsTT1stDay + 237)
|
#define ActRemSvy (ActChgCrsTT1stDay + 238)
|
||||||
#define ActReqRstSvy (ActChgCrsTT1stDay + 238)
|
#define ActReqRstSvy (ActChgCrsTT1stDay + 239)
|
||||||
#define ActRstSvy (ActChgCrsTT1stDay + 239)
|
#define ActRstSvy (ActChgCrsTT1stDay + 240)
|
||||||
#define ActHidSvy (ActChgCrsTT1stDay + 240)
|
#define ActHidSvy (ActChgCrsTT1stDay + 241)
|
||||||
#define ActUnhSvy (ActChgCrsTT1stDay + 241)
|
#define ActUnhSvy (ActChgCrsTT1stDay + 242)
|
||||||
#define ActReqLnkSvy (ActChgCrsTT1stDay + 242)
|
#define ActReqLnkSvy (ActChgCrsTT1stDay + 243)
|
||||||
|
|
||||||
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 243)
|
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 244)
|
||||||
#define ActRcvSvyQst (ActChgCrsTT1stDay + 244)
|
#define ActRcvSvyQst (ActChgCrsTT1stDay + 245)
|
||||||
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 245)
|
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 246)
|
||||||
#define ActRemSvyQst (ActChgCrsTT1stDay + 246)
|
#define ActRemSvyQst (ActChgCrsTT1stDay + 247)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************** Files tab **********************************/
|
/******************************** Files tab **********************************/
|
||||||
|
|
|
@ -981,7 +981,8 @@ void Asg_GetNotifAssignment (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
||||||
|
|
||||||
void Asg_PutParamAsgCod (long AsgCod)
|
void Asg_PutParamAsgCod (long AsgCod)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamLong (NULL,"AsgCod",AsgCod);
|
if (AsgCod > 0)
|
||||||
|
Par_PutHiddenParamLong (NULL,"AsgCod",AsgCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include "swad_alert.h"
|
#include "swad_alert.h"
|
||||||
#include "swad_assignment.h"
|
#include "swad_assignment.h"
|
||||||
#include "swad_assignment_database.h"
|
#include "swad_assignment_database.h"
|
||||||
|
#include "swad_assignment_resource.h"
|
||||||
#include "swad_error.h"
|
#include "swad_error.h"
|
||||||
#include "swad_form.h"
|
#include "swad_form.h"
|
||||||
#include "swad_pagination.h"
|
#include "swad_pagination.h"
|
||||||
|
@ -56,7 +57,7 @@ void AsgRsc_GetLinkToAssignment (void)
|
||||||
Err_WrongAssignmentExit ();
|
Err_WrongAssignmentExit ();
|
||||||
|
|
||||||
/***** Get assignment title *****/
|
/***** Get assignment title *****/
|
||||||
Asg_DB_GetAssignmentTitleByCod (Assignments.AsgCod,Title);
|
AsgRsc_GetTitleFromAsgCod (Assignments.AsgCod,Title,sizeof (Title) - 1);
|
||||||
|
|
||||||
/***** Copy link to assignment into resource clipboard *****/
|
/***** Copy link to assignment into resource clipboard *****/
|
||||||
Prg_DB_CopyToClipboard (PrgRsc_ASSIGNMENT,Assignments.AsgCod);
|
Prg_DB_CopyToClipboard (PrgRsc_ASSIGNMENT,Assignments.AsgCod);
|
||||||
|
@ -80,26 +81,29 @@ void AsgRsc_WriteAssignmentInCrsProgram (long AsgCod,bool PutFormToGo,
|
||||||
const char *Icon,const char *IconTitle)
|
const char *Icon,const char *IconTitle)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
||||||
|
Act_Action_t NextAction;
|
||||||
char Title[Asg_MAX_BYTES_ASSIGNMENT_TITLE + 1];
|
char Title[Asg_MAX_BYTES_ASSIGNMENT_TITLE + 1];
|
||||||
|
|
||||||
/***** Get assignment title *****/
|
/***** Get assignment title *****/
|
||||||
Asg_DB_GetAssignmentTitleByCod (AsgCod,Title);
|
AsgRsc_GetTitleFromAsgCod (AsgCod,Title,sizeof (Title) - 1);
|
||||||
|
|
||||||
/***** Begin form to go to assignment *****/
|
/***** Begin form to go to assignment *****/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
{
|
{
|
||||||
Frm_BeginForm (ActSeeOneAsg);
|
NextAction = (AsgCod > 0) ? ActSeeOneAsg : // Assignment specified
|
||||||
|
ActSeeAsg; // All assignments
|
||||||
|
Frm_BeginForm (NextAction);
|
||||||
Asg_PutParamAsgCod (AsgCod);
|
Asg_PutParamAsgCod (AsgCod);
|
||||||
// TODO: In the listing of assignments, the page is always the first.
|
// TODO: In the listing of assignments, the page is always the first.
|
||||||
// The page should be that corresponding to the selected assignment.
|
// The page should be that corresponding to the selected assignment.
|
||||||
HTM_BUTTON_Submit_Begin (Txt_Actions[ActSeeOneAsg],
|
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
|
||||||
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Icon depending on type ******/
|
/***** Icon depending on type ******/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
Ico_PutIconLink (Icon,Ico_BLACK,ActSeeOneAsg);
|
Ico_PutIconLink (Icon,Ico_BLACK,NextAction);
|
||||||
else
|
else
|
||||||
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
||||||
|
|
||||||
|
@ -124,7 +128,12 @@ void AsgRsc_GetTitleFromAsgCod (long AsgCod,char *Title,size_t TitleSize)
|
||||||
{
|
{
|
||||||
char TitleFromDB[Asg_MAX_BYTES_ASSIGNMENT_TITLE + 1];
|
char TitleFromDB[Asg_MAX_BYTES_ASSIGNMENT_TITLE + 1];
|
||||||
|
|
||||||
/***** Get assignment title *****/
|
if (AsgCod > 0)
|
||||||
Asg_DB_GetAssignmentTitleByCod (AsgCod,TitleFromDB);
|
{
|
||||||
Str_Copy (Title,TitleFromDB,TitleSize);
|
/***** Get assignment title *****/
|
||||||
|
Asg_DB_GetAssignmentTitleByCod (AsgCod,TitleFromDB);
|
||||||
|
Str_Copy (Title,TitleFromDB,TitleSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Str_Copy (Title,"?",TitleSize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -809,7 +809,8 @@ static void Att_PutParamSelectedAttCod (void *Events)
|
||||||
|
|
||||||
void Att_PutParamAttCod (long AttCod)
|
void Att_PutParamAttCod (long AttCod)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamLong (NULL,"AttCod",AttCod);
|
if (AttCod > 0)
|
||||||
|
Par_PutHiddenParamLong (NULL,"AttCod",AttCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include "swad_alert.h"
|
#include "swad_alert.h"
|
||||||
#include "swad_attendance.h"
|
#include "swad_attendance.h"
|
||||||
#include "swad_attendance_database.h"
|
#include "swad_attendance_database.h"
|
||||||
|
#include "swad_attendance_resource.h"
|
||||||
#include "swad_error.h"
|
#include "swad_error.h"
|
||||||
#include "swad_form.h"
|
#include "swad_form.h"
|
||||||
#include "swad_program_database.h"
|
#include "swad_program_database.h"
|
||||||
|
@ -46,7 +47,7 @@ void AttRsc_GetLinkToEvent (void)
|
||||||
Err_WrongEventExit ();
|
Err_WrongEventExit ();
|
||||||
|
|
||||||
/***** Get attendance event title *****/
|
/***** Get attendance event title *****/
|
||||||
Att_DB_GetAttEventTitle (AttCod,Title);
|
AttRsc_GetTitleFromAttCod (AttCod,Title,sizeof (Title) - 1);
|
||||||
|
|
||||||
/***** Copy link to attendance event into resource clipboard *****/
|
/***** Copy link to attendance event into resource clipboard *****/
|
||||||
Prg_DB_CopyToClipboard (PrgRsc_ATTENDANCE_EVENT,AttCod);
|
Prg_DB_CopyToClipboard (PrgRsc_ATTENDANCE_EVENT,AttCod);
|
||||||
|
@ -67,25 +68,28 @@ void AttRsc_WriteAttEventInCrsProgram (long AttCod,bool PutFormToGo,
|
||||||
const char *Icon,const char *IconTitle)
|
const char *Icon,const char *IconTitle)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
||||||
|
Act_Action_t NextAction;
|
||||||
char Title[Att_MAX_BYTES_ATTENDANCE_EVENT_TITLE + 1];
|
char Title[Att_MAX_BYTES_ATTENDANCE_EVENT_TITLE + 1];
|
||||||
|
|
||||||
/***** Get game title *****/
|
/***** Get game title *****/
|
||||||
Att_DB_GetAttEventTitle (AttCod,Title);
|
AttRsc_GetTitleFromAttCod (AttCod,Title,sizeof (Title) - 1);
|
||||||
|
|
||||||
/***** Begin form to go to game *****/
|
/***** Begin form to go to game *****/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
{
|
{
|
||||||
Frm_BeginForm (ActSeeOneAtt);
|
NextAction = (AttCod > 0) ? ActSeeOneAtt : // Attendance events specified
|
||||||
|
ActSeeAtt; // All attendance events
|
||||||
|
Frm_BeginForm (NextAction);
|
||||||
Att_PutParamAttCod (AttCod);
|
Att_PutParamAttCod (AttCod);
|
||||||
Att_PutParamsCodGrps (AttCod);
|
Att_PutParamsCodGrps (AttCod);
|
||||||
HTM_BUTTON_Submit_Begin (Txt_Actions[ActSeeOneAtt],
|
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
|
||||||
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Icon depending on type ******/
|
/***** Icon depending on type ******/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
Ico_PutIconLink (Icon,Ico_BLACK,ActSeeOneAtt);
|
Ico_PutIconLink (Icon,Ico_BLACK,NextAction);
|
||||||
else
|
else
|
||||||
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
||||||
|
|
||||||
|
@ -110,7 +114,12 @@ void AttRsc_GetTitleFromAttCod (long AttCod,char *Title,size_t TitleSize)
|
||||||
{
|
{
|
||||||
char TitleFromDB[Att_MAX_BYTES_ATTENDANCE_EVENT_TITLE + 1];
|
char TitleFromDB[Att_MAX_BYTES_ATTENDANCE_EVENT_TITLE + 1];
|
||||||
|
|
||||||
/***** Get attendance event title *****/
|
if (AttCod > 0)
|
||||||
Att_DB_GetAttEventTitle (AttCod,TitleFromDB);
|
{
|
||||||
Str_Copy (Title,TitleFromDB,TitleSize);
|
/***** Get attendance event title *****/
|
||||||
|
Att_DB_GetAttEventTitle (AttCod,TitleFromDB);
|
||||||
|
Str_Copy (Title,TitleFromDB,TitleSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Str_Copy (Title,"?",TitleSize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1316,8 +1316,8 @@ static bool Brw_CheckIfICanEditFileOrFolder (unsigned Level);
|
||||||
static bool Brw_CheckIfICanCreateIntoFolder (unsigned Level);
|
static bool Brw_CheckIfICanCreateIntoFolder (unsigned Level);
|
||||||
static bool Brw_CheckIfICanModifySharedFileOrFolder (void);
|
static bool Brw_CheckIfICanModifySharedFileOrFolder (void);
|
||||||
static bool Brw_CheckIfICanModifyPrivateFileOrFolder (void);
|
static bool Brw_CheckIfICanModifyPrivateFileOrFolder (void);
|
||||||
static bool Brw_CheckIfICanViewProjectDocuments (long PrjCod);
|
static bool Prj_CheckIfICanViewProjectDocuments (long PrjCod);
|
||||||
static bool Brw_CheckIfICanViewProjectAssessment (long PrjCod);
|
static bool Prj_CheckIfICanViewProjectAssessment (long PrjCod);
|
||||||
static bool Brw_CheckIfICanModifyPrjDocFileOrFolder (void);
|
static bool Brw_CheckIfICanModifyPrjDocFileOrFolder (void);
|
||||||
static bool Brw_CheckIfICanModifyPrjAssFileOrFolder (void);
|
static bool Brw_CheckIfICanModifyPrjAssFileOrFolder (void);
|
||||||
|
|
||||||
|
@ -1986,10 +1986,7 @@ void Brw_GetParAndInitFileBrowser (void)
|
||||||
Brw_SetFullPathInTree ();
|
Brw_SetFullPathInTree ();
|
||||||
|
|
||||||
/***** Get other parameters *****/
|
/***** Get other parameters *****/
|
||||||
if (Brw_GetIfProjectFileBrowser ())
|
if (Brw_GetIfCrsAssigWorksFileBrowser ())
|
||||||
/* Get project code */
|
|
||||||
Prj_SetPrjCod (Prj_GetParamPrjCod ());
|
|
||||||
else if (Brw_GetIfCrsAssigWorksFileBrowser ())
|
|
||||||
{
|
{
|
||||||
/* Get lists of the selected users if not already got */
|
/* Get lists of the selected users if not already got */
|
||||||
Usr_GetListsSelectedEncryptedUsrsCods (&Gbl.Usrs.Selected);
|
Usr_GetListsSelectedEncryptedUsrsCods (&Gbl.Usrs.Selected);
|
||||||
|
@ -2204,7 +2201,8 @@ static void Brw_GetDataCurrentGrp (void)
|
||||||
|
|
||||||
void Brw_PutHiddenParamFilCod (long FilCod)
|
void Brw_PutHiddenParamFilCod (long FilCod)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamLong (NULL,"FilCod",FilCod);
|
if (FilCod > 0)
|
||||||
|
Par_PutHiddenParamLong (NULL,"FilCod",FilCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2254,8 +2252,7 @@ void Brw_PutParamsFileBrowser (const char *PathInTree,const char *FilFolLnkName,
|
||||||
Par_PutHiddenParamString (NULL,"Path",PathInTree);
|
Par_PutHiddenParamString (NULL,"Path",PathInTree);
|
||||||
if (FilFolLnkName)
|
if (FilFolLnkName)
|
||||||
Par_PutHiddenParamString (NULL,Brw_FileTypeParamName[FileType],FilFolLnkName);
|
Par_PutHiddenParamString (NULL,Brw_FileTypeParamName[FileType],FilFolLnkName);
|
||||||
if (FilCod > 0)
|
Brw_PutHiddenParamFilCod (FilCod);
|
||||||
Brw_PutHiddenParamFilCod (FilCod);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2989,55 +2986,25 @@ static void Brw_ShowFileBrowserNormal (void)
|
||||||
/************* Show file browser with the documents of a project *************/
|
/************* Show file browser with the documents of a project *************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Brw_ShowFileBrowserProject (void)
|
void Brw_ShowFileBrowserProject (long PrjCod)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_ASSESSMENT_Projects;
|
Brw_WriteTopBeforeShowingFileBrowser ();
|
||||||
struct Prj_Project Prj;
|
|
||||||
|
|
||||||
/***** Allocate memory for the project *****/
|
if (Prj_CheckIfICanViewProjectDocuments (PrjCod))
|
||||||
Prj_AllocMemProject (&Prj);
|
{
|
||||||
|
/***** Show the tree with the project documents *****/
|
||||||
|
Gbl.FileBrowser.Type = Brw_ADMI_DOC_PRJ;
|
||||||
|
Brw_InitializeFileBrowser ();
|
||||||
|
Brw_ShowFileBrowser ();
|
||||||
|
}
|
||||||
|
|
||||||
/***** Get project data *****/
|
if (Prj_CheckIfICanViewProjectAssessment (PrjCod))
|
||||||
Prj.PrjCod = Prj_GetPrjCod ();
|
{
|
||||||
Prj_GetDataOfProjectByCod (&Prj);
|
/***** Show the tree with the project assessment *****/
|
||||||
|
Gbl.FileBrowser.Type = Brw_ADMI_ASS_PRJ;
|
||||||
/***** Begin box *****/
|
Brw_InitializeFileBrowser ();
|
||||||
Box_BoxBegin (NULL,Prj.Title,
|
Brw_ShowFileBrowser ();
|
||||||
NULL,NULL,
|
}
|
||||||
Hlp_ASSESSMENT_Projects,Box_NOT_CLOSABLE);
|
|
||||||
|
|
||||||
/***** Show the project *****/
|
|
||||||
Prj_ShowOneUniqueProject (&Prj);
|
|
||||||
|
|
||||||
/***** Show project file browsers *****/
|
|
||||||
if (Brw_CheckIfICanViewProjectFiles (Prj.PrjCod))
|
|
||||||
{
|
|
||||||
Brw_WriteTopBeforeShowingFileBrowser ();
|
|
||||||
|
|
||||||
if (Brw_CheckIfICanViewProjectDocuments (Prj.PrjCod))
|
|
||||||
{
|
|
||||||
/***** Show the tree with the project documents *****/
|
|
||||||
Gbl.FileBrowser.Type = Brw_ADMI_DOC_PRJ;
|
|
||||||
Brw_InitializeFileBrowser ();
|
|
||||||
Brw_ShowFileBrowser ();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Brw_CheckIfICanViewProjectAssessment (Prj.PrjCod))
|
|
||||||
{
|
|
||||||
/***** Show the tree with the project assessment *****/
|
|
||||||
Gbl.FileBrowser.Type = Brw_ADMI_ASS_PRJ;
|
|
||||||
Brw_InitializeFileBrowser ();
|
|
||||||
Brw_ShowFileBrowser ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
Ale_ShowAlert (Ale_WARNING,"You have no access to project files.");
|
|
||||||
|
|
||||||
/***** End box *****/
|
|
||||||
Box_BoxEnd ();
|
|
||||||
|
|
||||||
/***** Free memory of the project *****/
|
|
||||||
Prj_FreeMemProject (&Prj);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -3353,7 +3320,7 @@ void Brw_ShowAgainFileBrowserOrWorks (void)
|
||||||
else if (Brw_GetIfCrsAssigWorksFileBrowser ())
|
else if (Brw_GetIfCrsAssigWorksFileBrowser ())
|
||||||
Brw_ShowFileBrowsersAsgWrkCrs ();
|
Brw_ShowFileBrowsersAsgWrkCrs ();
|
||||||
else if (Brw_GetIfProjectFileBrowser ())
|
else if (Brw_GetIfProjectFileBrowser ())
|
||||||
Brw_ShowFileBrowserProject ();
|
Prj_ShowProjectWithFileBrowser ();
|
||||||
else
|
else
|
||||||
Brw_ShowFileBrowserNormal ();
|
Brw_ShowFileBrowserNormal ();
|
||||||
|
|
||||||
|
@ -9605,7 +9572,7 @@ static bool Brw_CheckIfICanModifyPrivateFileOrFolder (void)
|
||||||
/******************** Can I view files of a given project? *******************/
|
/******************** Can I view files of a given project? *******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
bool Brw_CheckIfICanViewProjectFiles (long PrjCod)
|
bool Prj_CheckIfICanViewProjectFiles (long PrjCod)
|
||||||
{
|
{
|
||||||
switch (Gbl.Usrs.Me.Role.Logged)
|
switch (Gbl.Usrs.Me.Role.Logged)
|
||||||
{
|
{
|
||||||
|
@ -9624,7 +9591,7 @@ bool Brw_CheckIfICanViewProjectFiles (long PrjCod)
|
||||||
/******** Check if I have permission to view project documents zone **********/
|
/******** Check if I have permission to view project documents zone **********/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static bool Brw_CheckIfICanViewProjectDocuments (long PrjCod)
|
static bool Prj_CheckIfICanViewProjectDocuments (long PrjCod)
|
||||||
{
|
{
|
||||||
switch (Gbl.Usrs.Me.Role.Logged)
|
switch (Gbl.Usrs.Me.Role.Logged)
|
||||||
{
|
{
|
||||||
|
@ -9644,7 +9611,7 @@ static bool Brw_CheckIfICanViewProjectDocuments (long PrjCod)
|
||||||
/******** Check if I have permission to view project assessment zone *********/
|
/******** Check if I have permission to view project assessment zone *********/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static bool Brw_CheckIfICanViewProjectAssessment (long PrjCod)
|
static bool Prj_CheckIfICanViewProjectAssessment (long PrjCod)
|
||||||
{
|
{
|
||||||
switch (Gbl.Usrs.Me.Role.Logged)
|
switch (Gbl.Usrs.Me.Role.Logged)
|
||||||
{
|
{
|
||||||
|
|
|
@ -207,6 +207,9 @@ void Brw_PutHiddenParamFullTreeIfSelected (void *FullTree);
|
||||||
void Brw_CreateDirDownloadTmp (void);
|
void Brw_CreateDirDownloadTmp (void);
|
||||||
|
|
||||||
void Brw_AskEditWorksCrs (void);
|
void Brw_AskEditWorksCrs (void);
|
||||||
|
|
||||||
|
void Brw_ShowFileBrowserProject (long PrjCod);
|
||||||
|
|
||||||
void Brw_AskRemFileFromTree (void);
|
void Brw_AskRemFileFromTree (void);
|
||||||
void Brw_RemFileFromTree (void);
|
void Brw_RemFileFromTree (void);
|
||||||
void Brw_RemFolderFromTree (void);
|
void Brw_RemFolderFromTree (void);
|
||||||
|
@ -244,7 +247,7 @@ void Brw_GetCrsGrpFromFileMetadata (Brw_FileBrowser_t FileBrowser,long Cod,
|
||||||
long *CrsCod,
|
long *CrsCod,
|
||||||
long *GrpCod);
|
long *GrpCod);
|
||||||
|
|
||||||
bool Brw_CheckIfICanViewProjectFiles (long PrjCod);
|
bool Prj_CheckIfICanViewProjectFiles (long PrjCod);
|
||||||
|
|
||||||
long Brw_GetCodForFileBrowser (void);
|
long Brw_GetCodForFileBrowser (void);
|
||||||
long Brw_GetZoneUsrCodForFileBrowser (void);
|
long Brw_GetZoneUsrCodForFileBrowser (void);
|
||||||
|
|
|
@ -95,6 +95,7 @@ void BrwRsc_WriteDocFileNameInCrsProgram (long FilCod,bool PutFormToGo,
|
||||||
const char *Icon,const char *IconTitle)
|
const char *Icon,const char *IconTitle)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
||||||
|
Act_Action_t NextAction;
|
||||||
struct Brw_FileMetadata FileMetadata;
|
struct Brw_FileMetadata FileMetadata;
|
||||||
|
|
||||||
/***** Get file metadata *****/
|
/***** Get file metadata *****/
|
||||||
|
@ -104,12 +105,14 @@ void BrwRsc_WriteDocFileNameInCrsProgram (long FilCod,bool PutFormToGo,
|
||||||
/***** Begin form to go to file data *****/
|
/***** Begin form to go to file data *****/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
{
|
{
|
||||||
Frm_BeginForm (ActReqDatSeeDocCrs);
|
NextAction = (FileMetadata.FilCod > 0) ? ActReqDatSeeDocCrs : // Document specified
|
||||||
|
ActSeeAdmDocCrsGrp; // All documents
|
||||||
|
Frm_BeginForm (NextAction);
|
||||||
Brw_PutParamsFileBrowser (NULL, // Not used
|
Brw_PutParamsFileBrowser (NULL, // Not used
|
||||||
NULL, // Not used
|
NULL, // Not used
|
||||||
Brw_IS_UNKNOWN, // Not used
|
Brw_IS_UNKNOWN, // Not used
|
||||||
FileMetadata.FilCod);
|
FileMetadata.FilCod);
|
||||||
HTM_BUTTON_Submit_Begin (Txt_Actions[ActReqDatSeeDocCrs],
|
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
|
||||||
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
}
|
}
|
||||||
|
@ -124,7 +127,7 @@ void BrwRsc_WriteDocFileNameInCrsProgram (long FilCod,bool PutFormToGo,
|
||||||
break;
|
break;
|
||||||
case Brw_IS_LINK:
|
case Brw_IS_LINK:
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
Ico_PutIconLink (Icon,Ico_BLACK,ActReqDatSeeDocCrs);
|
Ico_PutIconLink (Icon,Ico_BLACK,NextAction);
|
||||||
else
|
else
|
||||||
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
||||||
break;
|
break;
|
||||||
|
@ -152,6 +155,7 @@ void BrwRsc_WriteMrkFileNameInCrsProgram (long FilCod,bool PutFormToGo,
|
||||||
const char *Icon,const char *IconTitle)
|
const char *Icon,const char *IconTitle)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
||||||
|
Act_Action_t NextAction;
|
||||||
struct Brw_FileMetadata FileMetadata;
|
struct Brw_FileMetadata FileMetadata;
|
||||||
|
|
||||||
/***** Get file metadata *****/
|
/***** Get file metadata *****/
|
||||||
|
@ -161,19 +165,21 @@ void BrwRsc_WriteMrkFileNameInCrsProgram (long FilCod,bool PutFormToGo,
|
||||||
/***** Begin form to go to file data *****/
|
/***** Begin form to go to file data *****/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
{
|
{
|
||||||
Frm_BeginForm (ActReqDatSeeMrkCrs);
|
NextAction = (FileMetadata.FilCod > 0) ? ActReqDatSeeMrkCrs : // Marks file specified
|
||||||
|
ActSeeAdmMrk; // All marks files
|
||||||
|
Frm_BeginForm (NextAction);
|
||||||
Brw_PutParamsFileBrowser (NULL, // Not used
|
Brw_PutParamsFileBrowser (NULL, // Not used
|
||||||
NULL, // Not used
|
NULL, // Not used
|
||||||
Brw_IS_UNKNOWN, // Not used
|
Brw_IS_UNKNOWN, // Not used
|
||||||
FileMetadata.FilCod);
|
FileMetadata.FilCod);
|
||||||
HTM_BUTTON_Submit_Begin (Txt_Actions[ActReqDatSeeMrkCrs],
|
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
|
||||||
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Icon depending on type ******/
|
/***** Icon depending on type ******/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
Ico_PutIconLink (Icon,Ico_BLACK,ActReqDatSeeMrkCrs);
|
Ico_PutIconLink (Icon,Ico_BLACK,NextAction);
|
||||||
else
|
else
|
||||||
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
||||||
|
|
||||||
|
@ -197,13 +203,18 @@ void BrwRsc_GetFileNameFromFilCod (long FilCod,char *FileName,size_t FileNameSiz
|
||||||
{
|
{
|
||||||
struct Brw_FileMetadata FileMetadata;
|
struct Brw_FileMetadata FileMetadata;
|
||||||
|
|
||||||
/***** Return nothing on error *****/
|
if (FilCod > 0)
|
||||||
FileName[0] = '\0'; // Return nothing on error
|
{
|
||||||
|
/***** Return nothing on error *****/
|
||||||
|
FileName[0] = '\0'; // Return nothing on error
|
||||||
|
|
||||||
/***** Get file metadata *****/
|
/***** Get file metadata *****/
|
||||||
FileMetadata.FilCod = FilCod;
|
FileMetadata.FilCod = FilCod;
|
||||||
Brw_GetFileMetadataByCod (&FileMetadata);
|
Brw_GetFileMetadataByCod (&FileMetadata);
|
||||||
|
|
||||||
/***** Copy file name into summary string *****/
|
/***** Copy file name into summary string *****/
|
||||||
Str_Copy (FileName,FileMetadata.FilFolLnk.Name,FileNameSize);
|
Str_Copy (FileName,FileMetadata.FilFolLnk.Name,FileNameSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Str_Copy (FileName,"?",FileNameSize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1541,7 +1541,8 @@ static void Cfe_PutParamExaCodToEdit (void *ExaCod)
|
||||||
|
|
||||||
void Cfe_PutHiddenParamExaCod (long ExaCod)
|
void Cfe_PutHiddenParamExaCod (long ExaCod)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamLong (NULL,"ExaCod",ExaCod);
|
if (ExaCod > 0)
|
||||||
|
Par_PutHiddenParamLong (NULL,"ExaCod",ExaCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -1676,7 +1677,7 @@ static void Cfe_GetNotifContentCallForExam (const struct Cfe_CallsForExams *Call
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Cfe_BuildSessionAndDate (const struct Cfe_CallsForExams *CallsForExams,
|
void Cfe_BuildSessionAndDate (const struct Cfe_CallsForExams *CallsForExams,
|
||||||
char SessionAndDate[Cfe_MAX_BYTES_SESSION_AND_DATE])
|
char SessionAndDate[Cfe_MAX_BYTES_SESSION_AND_DATE])
|
||||||
{
|
{
|
||||||
char StrExamDate[Cns_MAX_BYTES_DATE + 1];
|
char StrExamDate[Cns_MAX_BYTES_DATE + 1];
|
||||||
|
|
||||||
|
|
|
@ -41,33 +41,24 @@ void Cfe_GetLinkToCallForExam (void)
|
||||||
extern const char *Txt_Link_to_resource_X_copied_into_clipboard;
|
extern const char *Txt_Link_to_resource_X_copied_into_clipboard;
|
||||||
struct Cfe_CallsForExams *CallsForExams = Cfe_GetGlobalCallsForExams ();
|
struct Cfe_CallsForExams *CallsForExams = Cfe_GetGlobalCallsForExams ();
|
||||||
long ExaCod;
|
long ExaCod;
|
||||||
char SessionAndDate[Cfe_MAX_BYTES_SESSION_AND_DATE];
|
char Title[Cfe_MAX_BYTES_SESSION_AND_DATE];
|
||||||
|
|
||||||
/***** Reset calls for exams context *****/
|
|
||||||
Cfe_ResetCallsForExams (CallsForExams);
|
|
||||||
|
|
||||||
/***** Get the code of the call for exam *****/
|
/***** Get the code of the call for exam *****/
|
||||||
if ((ExaCod = Cfe_GetParamExaCod ()) <= 0)
|
if ((ExaCod = Cfe_GetParamExaCod ()) <= 0)
|
||||||
Err_WrongCallForExamExit ();
|
Err_WrongCallForExamExit ();
|
||||||
|
|
||||||
/***** Get data of call for exam *****/
|
/***** Get session and date of the exam *****/
|
||||||
Cfe_AllocMemCallForExam (CallsForExams);
|
CfeRsc_GetTitleFromExaCod (ExaCod,Title,sizeof (Title) - 1);
|
||||||
Cfe_GetDataCallForExamFromDB (CallsForExams,ExaCod);
|
|
||||||
|
|
||||||
/***** Session and date of the exam *****/
|
|
||||||
Cfe_BuildSessionAndDate (CallsForExams,SessionAndDate);
|
|
||||||
|
|
||||||
/***** Copy link to call for exam into resource clipboard *****/
|
/***** Copy link to call for exam into resource clipboard *****/
|
||||||
Prg_DB_CopyToClipboard (PrgRsc_CALL_FOR_EXAM,ExaCod);
|
Prg_DB_CopyToClipboard (PrgRsc_CALL_FOR_EXAM,ExaCod);
|
||||||
|
|
||||||
/***** Write sucess message *****/
|
/***** Write sucess message *****/
|
||||||
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,
|
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,
|
||||||
SessionAndDate);
|
Title);
|
||||||
|
|
||||||
/***** Free memory of the call for exam *****/
|
|
||||||
Cfe_FreeMemCallForExam (CallsForExams);
|
|
||||||
|
|
||||||
/***** Set exam to be highlighted *****/
|
/***** Set exam to be highlighted *****/
|
||||||
|
Cfe_ResetCallsForExams (CallsForExams);
|
||||||
CallsForExams->HighlightExaCod = ExaCod;
|
CallsForExams->HighlightExaCod = ExaCod;
|
||||||
|
|
||||||
/***** Show again the list of calls for exams *****/
|
/***** Show again the list of calls for exams *****/
|
||||||
|
@ -82,16 +73,12 @@ void CfeRsc_WriteCallForExamInCrsProgram (long ExaCod,bool PutFormToGo,
|
||||||
const char *Icon,const char *IconTitle)
|
const char *Icon,const char *IconTitle)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
||||||
struct Cfe_CallsForExams CallsForExams;
|
Act_Action_t NextAction;
|
||||||
char SessionAndDate[Cfe_MAX_BYTES_SESSION_AND_DATE];
|
char Title[Cfe_MAX_BYTES_SESSION_AND_DATE];
|
||||||
char *Anchor = NULL;
|
char *Anchor = NULL;
|
||||||
|
|
||||||
/***** Get session and date of the exam *****/
|
/***** Get session and date of the exam *****/
|
||||||
Cfe_ResetCallsForExams (&CallsForExams);
|
CfeRsc_GetTitleFromExaCod (ExaCod,Title,sizeof (Title) - 1);
|
||||||
Cfe_AllocMemCallForExam (&CallsForExams);
|
|
||||||
Cfe_GetDataCallForExamFromDB (&CallsForExams,ExaCod);
|
|
||||||
Cfe_BuildSessionAndDate (&CallsForExams,SessionAndDate);
|
|
||||||
Cfe_FreeMemCallForExam (&CallsForExams);
|
|
||||||
|
|
||||||
/***** Begin form to download file *****/
|
/***** Begin form to download file *****/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
|
@ -100,9 +87,11 @@ void CfeRsc_WriteCallForExamInCrsProgram (long ExaCod,bool PutFormToGo,
|
||||||
Frm_SetAnchorStr (ExaCod,&Anchor);
|
Frm_SetAnchorStr (ExaCod,&Anchor);
|
||||||
|
|
||||||
/* Begin form */
|
/* Begin form */
|
||||||
Frm_BeginFormAnchor (ActSeeOneCfe,Anchor);
|
NextAction = (ExaCod > 0) ? ActSeeOneCfe : // Call for exam specified
|
||||||
|
ActSeeAllCfe; // All calls for exams
|
||||||
|
Frm_BeginFormAnchor (NextAction,Anchor);
|
||||||
Cfe_PutHiddenParamExaCod (ExaCod);
|
Cfe_PutHiddenParamExaCod (ExaCod);
|
||||||
HTM_BUTTON_Submit_Begin (Txt_Actions[ActSeeOneCfe],
|
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
|
||||||
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
|
|
||||||
|
@ -112,12 +101,12 @@ void CfeRsc_WriteCallForExamInCrsProgram (long ExaCod,bool PutFormToGo,
|
||||||
|
|
||||||
/***** Icon depending on type ******/
|
/***** Icon depending on type ******/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
Ico_PutIconLink (Icon,Ico_BLACK,ActSeeOneCfe);
|
Ico_PutIconLink (Icon,Ico_BLACK,NextAction);
|
||||||
else
|
else
|
||||||
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
||||||
|
|
||||||
/***** Write Name of the course and date of exam *****/
|
/***** Write Name of the course and date of exam *****/
|
||||||
HTM_Txt (SessionAndDate);
|
HTM_Txt (Title);
|
||||||
|
|
||||||
/***** End form to download file *****/
|
/***** End form to download file *****/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
|
@ -139,17 +128,22 @@ void CfeRsc_GetTitleFromExaCod (long ExaCod,char *Title,size_t TitleSize)
|
||||||
struct Cfe_CallsForExams CallsForExams;
|
struct Cfe_CallsForExams CallsForExams;
|
||||||
char SessionAndDate[Cfe_MAX_BYTES_SESSION_AND_DATE];
|
char SessionAndDate[Cfe_MAX_BYTES_SESSION_AND_DATE];
|
||||||
|
|
||||||
/***** Reset calls for exams context *****/
|
if (ExaCod > 0)
|
||||||
Cfe_ResetCallsForExams (&CallsForExams);
|
{
|
||||||
|
/***** Reset calls for exams context *****/
|
||||||
|
Cfe_ResetCallsForExams (&CallsForExams);
|
||||||
|
|
||||||
/***** Get data of call for exam *****/
|
/***** Get data of call for exam *****/
|
||||||
Cfe_AllocMemCallForExam (&CallsForExams);
|
Cfe_AllocMemCallForExam (&CallsForExams);
|
||||||
Cfe_GetDataCallForExamFromDB (&CallsForExams,ExaCod);
|
Cfe_GetDataCallForExamFromDB (&CallsForExams,ExaCod);
|
||||||
|
|
||||||
/***** Session and date of the exam *****/
|
/***** Session and date of the exam *****/
|
||||||
Cfe_BuildSessionAndDate (&CallsForExams,SessionAndDate);
|
Cfe_BuildSessionAndDate (&CallsForExams,SessionAndDate);
|
||||||
snprintf (Title,TitleSize,"%s: %s",Txt_Call_for_exam,SessionAndDate);
|
snprintf (Title,TitleSize,"%s: %s",Txt_Call_for_exam,SessionAndDate);
|
||||||
|
|
||||||
/***** Free memory of the call for exam *****/
|
/***** Free memory of the call for exam *****/
|
||||||
Cfe_FreeMemCallForExam (&CallsForExams);
|
Cfe_FreeMemCallForExam (&CallsForExams);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Str_Copy (Title,"?",TitleSize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -606,11 +606,12 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
|
||||||
|
|
||||||
TODO: Attach pdf files in multimedia.
|
TODO: Attach pdf files in multimedia.
|
||||||
*/
|
*/
|
||||||
#define Log_PLATFORM_VERSION "SWAD 22.30 (2022-09-28)"
|
#define Log_PLATFORM_VERSION "SWAD 22.31 (2022-09-28)"
|
||||||
#define CSS_FILE "swad22.22.1.css"
|
#define CSS_FILE "swad22.22.1.css"
|
||||||
#define JS_FILE "swad21.100.js"
|
#define JS_FILE "swad21.100.js"
|
||||||
/*
|
/*
|
||||||
Version 22.31: Sep 28, 2022 TODO: New action to view one project (similar to view project files, but accesible to students). (? lines)
|
Version 22.31: Sep 28, 2022 New action to view one project.
|
||||||
|
Code refactoring in program resources. (332570 lines)
|
||||||
Version 22.30: Sep 28, 2022 New module swad_project_resource. (332490 lines)
|
Version 22.30: Sep 28, 2022 New module swad_project_resource. (332490 lines)
|
||||||
2 changes necessary in database:
|
2 changes necessary in database:
|
||||||
ALTER TABLE prg_clipboards CHANGE COLUMN Type Type ENUM('non','asg','prj','cfe','exa','gam','svy','doc','mrk','att','for') NOT NULL DEFAULT 'non';
|
ALTER TABLE prg_clipboards CHANGE COLUMN Type Type ENUM('non','asg','prj','cfe','exa','gam','svy','doc','mrk','att','for') NOT NULL DEFAULT 'non';
|
||||||
|
|
|
@ -739,7 +739,8 @@ void Exa_PutParams (void *Exams)
|
||||||
|
|
||||||
void Exa_PutParamExamCod (long ExaCod)
|
void Exa_PutParamExamCod (long ExaCod)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamLong (NULL,"ExaCod",ExaCod);
|
if (ExaCod > 0)
|
||||||
|
Par_PutHiddenParamLong (NULL,"ExaCod",ExaCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "swad_error.h"
|
#include "swad_error.h"
|
||||||
#include "swad_exam.h"
|
#include "swad_exam.h"
|
||||||
#include "swad_exam_database.h"
|
#include "swad_exam_database.h"
|
||||||
|
#include "swad_exam_resource.h"
|
||||||
#include "swad_form.h"
|
#include "swad_form.h"
|
||||||
#include "swad_program_database.h"
|
#include "swad_program_database.h"
|
||||||
|
|
||||||
|
@ -53,7 +54,7 @@ void ExaRsc_GetLinkToExam (void)
|
||||||
ExaCod = Exams.ExaCod;
|
ExaCod = Exams.ExaCod;
|
||||||
|
|
||||||
/***** Get exam title *****/
|
/***** Get exam title *****/
|
||||||
Exa_DB_GetExamTitle (ExaCod,Title);
|
ExaRsc_GetTitleFromExaCod (ExaCod,Title,sizeof (Title) - 1);
|
||||||
|
|
||||||
/***** Copy link to exam into resource clipboard *****/
|
/***** Copy link to exam into resource clipboard *****/
|
||||||
Prg_DB_CopyToClipboard (PrgRsc_EXAM,ExaCod);
|
Prg_DB_CopyToClipboard (PrgRsc_EXAM,ExaCod);
|
||||||
|
@ -74,24 +75,27 @@ void ExaRsc_WriteExamInCrsProgram (long ExaCod,bool PutFormToGo,
|
||||||
const char *Icon,const char *IconTitle)
|
const char *Icon,const char *IconTitle)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
||||||
|
Act_Action_t NextAction;
|
||||||
char Title[Exa_MAX_BYTES_TITLE + 1];
|
char Title[Exa_MAX_BYTES_TITLE + 1];
|
||||||
|
|
||||||
/***** Get exam title *****/
|
/***** Get exam title *****/
|
||||||
Exa_DB_GetExamTitle (ExaCod,Title);
|
ExaRsc_GetTitleFromExaCod (ExaCod,Title,sizeof (Title) - 1);
|
||||||
|
|
||||||
/***** Begin form to go to exam *****/
|
/***** Begin form to go to exam *****/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
{
|
{
|
||||||
Frm_BeginForm (ActSeeExa);
|
NextAction = (ExaCod > 0) ? ActSeeExa : // Exam specified
|
||||||
|
ActSeeAllExa; // All exams
|
||||||
|
Frm_BeginForm (NextAction);
|
||||||
Exa_PutParamExamCod (ExaCod);
|
Exa_PutParamExamCod (ExaCod);
|
||||||
HTM_BUTTON_Submit_Begin (Txt_Actions[ActSeeExa],
|
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
|
||||||
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Icon depending on type ******/
|
/***** Icon depending on type ******/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
Ico_PutIconLink (Icon,Ico_BLACK,ActSeeExa);
|
Ico_PutIconLink (Icon,Ico_BLACK,NextAction);
|
||||||
else
|
else
|
||||||
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
||||||
|
|
||||||
|
@ -116,7 +120,12 @@ void ExaRsc_GetTitleFromExaCod (long ExaCod,char *Title,size_t TitleSize)
|
||||||
{
|
{
|
||||||
char TitleFromDB[Exa_MAX_BYTES_TITLE + 1];
|
char TitleFromDB[Exa_MAX_BYTES_TITLE + 1];
|
||||||
|
|
||||||
/***** Get exam title *****/
|
if (ExaCod > 0)
|
||||||
Exa_DB_GetExamTitle (ExaCod,TitleFromDB);
|
{
|
||||||
Str_Copy (Title,TitleFromDB,TitleSize);
|
/***** Get exam title *****/
|
||||||
|
Exa_DB_GetExamTitle (ExaCod,TitleFromDB);
|
||||||
|
Str_Copy (Title,TitleFromDB,TitleSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Str_Copy (Title,"?",TitleSize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include "swad_form.h"
|
#include "swad_form.h"
|
||||||
#include "swad_forum.h"
|
#include "swad_forum.h"
|
||||||
#include "swad_forum_database.h"
|
#include "swad_forum_database.h"
|
||||||
|
#include "swad_forum_resource.h"
|
||||||
#include "swad_global.h"
|
#include "swad_global.h"
|
||||||
#include "swad_program_database.h"
|
#include "swad_program_database.h"
|
||||||
|
|
||||||
|
@ -54,7 +55,7 @@ void ForRsc_GetLinkToThread (void)
|
||||||
For_GetParamsForums (&Forums);
|
For_GetParamsForums (&Forums);
|
||||||
|
|
||||||
/***** Get thread subject *****/
|
/***** Get thread subject *****/
|
||||||
For_DB_GetThreadSubject (Forums.Thread.Current,Subject);
|
ForRsc_GetTitleFromThrCod (Forums.Thread.Current,Subject,sizeof (Subject) - 1);
|
||||||
|
|
||||||
/***** Copy link to thread into resource clipboard *****/
|
/***** Copy link to thread into resource clipboard *****/
|
||||||
Prg_DB_CopyToClipboard (PrgRsc_FORUM_THREAD,Forums.Thread.Current);
|
Prg_DB_CopyToClipboard (PrgRsc_FORUM_THREAD,Forums.Thread.Current);
|
||||||
|
@ -81,11 +82,12 @@ void ForRsc_WriteThreadInCrsProgram (long ThrCod,bool PutFormToGo,
|
||||||
const char *Icon,const char *IconTitle)
|
const char *Icon,const char *IconTitle)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
||||||
|
Act_Action_t NextAction;
|
||||||
struct For_Forums Forums;
|
struct For_Forums Forums;
|
||||||
char Subject[Cns_MAX_BYTES_SUBJECT + 1];
|
char Subject[Cns_MAX_BYTES_SUBJECT + 1];
|
||||||
|
|
||||||
/***** Get thread subject *****/
|
/***** Get thread subject *****/
|
||||||
For_DB_GetThreadSubject (ThrCod,Subject);
|
ForRsc_GetTitleFromThrCod (ThrCod,Subject,sizeof (Subject) - 1);
|
||||||
|
|
||||||
/***** Begin form to go to survey *****/
|
/***** Begin form to go to survey *****/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
|
@ -98,17 +100,18 @@ void ForRsc_WriteThreadInCrsProgram (long ThrCod,bool PutFormToGo,
|
||||||
Forums.Thread.Selected = ThrCod;
|
Forums.Thread.Selected = ThrCod;
|
||||||
// TODO: In the listing of threads, the page is always the first.
|
// TODO: In the listing of threads, the page is always the first.
|
||||||
// The page should be that corresponding to the selected thread.
|
// The page should be that corresponding to the selected thread.
|
||||||
|
NextAction = (ThrCod > 0) ? ActSeePstForCrsUsr : // Thread specified
|
||||||
Frm_BeginFormAnchor (ActSeePstForCrsUsr,For_FORUM_POSTS_SECTION_ID);
|
ActSeeForCrsUsr; // All threads
|
||||||
|
Frm_BeginFormAnchor (NextAction,For_FORUM_POSTS_SECTION_ID);
|
||||||
For_PutAllHiddenParamsNewPost (&Forums);
|
For_PutAllHiddenParamsNewPost (&Forums);
|
||||||
HTM_BUTTON_Submit_Begin (Txt_Actions[ActSeePstForCrsUsr],
|
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
|
||||||
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Icon depending on type ******/
|
/***** Icon depending on type ******/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
Ico_PutIconLink (Icon,Ico_BLACK,ActSeePstForCrsUsr);
|
Ico_PutIconLink (Icon,Ico_BLACK,NextAction);
|
||||||
else
|
else
|
||||||
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
||||||
|
|
||||||
|
@ -133,8 +136,12 @@ void ForRsc_GetTitleFromThrCod (long ThrCod,char *Title,size_t TitleSize)
|
||||||
{
|
{
|
||||||
char Subject[Cns_MAX_BYTES_SUBJECT + 1];
|
char Subject[Cns_MAX_BYTES_SUBJECT + 1];
|
||||||
|
|
||||||
/***** Get thread subject *****/
|
if (ThrCod > 0)
|
||||||
For_DB_GetThreadSubject (ThrCod,Subject);
|
{
|
||||||
|
/***** Get thread subject *****/
|
||||||
Str_Copy (Title,Subject,TitleSize);
|
For_DB_GetThreadSubject (ThrCod,Subject);
|
||||||
|
Str_Copy (Title,Subject,TitleSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Str_Copy (Title,"?",TitleSize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -800,7 +800,8 @@ void Gam_PutParams (void *Games)
|
||||||
|
|
||||||
void Gam_PutParamGameCod (long GamCod)
|
void Gam_PutParamGameCod (long GamCod)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamLong (NULL,"GamCod",GamCod);
|
if (GamCod > 0)
|
||||||
|
Par_PutHiddenParamLong (NULL,"GamCod",GamCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -51,7 +51,7 @@ void GamRsc_GetLinkToGame (void)
|
||||||
Err_WrongGameExit ();
|
Err_WrongGameExit ();
|
||||||
|
|
||||||
/***** Get game title *****/
|
/***** Get game title *****/
|
||||||
Gam_DB_GetGameTitle (GamCod,Title);
|
GamRsc_GetTitleFromGamCod (GamCod,Title,sizeof (Title) - 1);
|
||||||
|
|
||||||
/***** Copy link to game into resource clipboard *****/
|
/***** Copy link to game into resource clipboard *****/
|
||||||
Prg_DB_CopyToClipboard (PrgRsc_GAME,GamCod);
|
Prg_DB_CopyToClipboard (PrgRsc_GAME,GamCod);
|
||||||
|
@ -72,24 +72,27 @@ void GamRsc_WriteGameInCrsProgram (long GamCod,bool PutFormToGo,
|
||||||
const char *Icon,const char *IconTitle)
|
const char *Icon,const char *IconTitle)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
||||||
|
Act_Action_t NextAction;
|
||||||
char Title[Gam_MAX_BYTES_TITLE + 1];
|
char Title[Gam_MAX_BYTES_TITLE + 1];
|
||||||
|
|
||||||
/***** Get game title *****/
|
/***** Get game title *****/
|
||||||
Gam_DB_GetGameTitle (GamCod,Title);
|
GamRsc_GetTitleFromGamCod (GamCod,Title,sizeof (Title) - 1);
|
||||||
|
|
||||||
/***** Begin form to go to game *****/
|
/***** Begin form to go to game *****/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
{
|
{
|
||||||
Frm_BeginForm (ActSeeGam);
|
NextAction = (GamCod > 0) ? ActSeeGam : // Game specified
|
||||||
|
ActSeeAllGam; // All games
|
||||||
|
Frm_BeginForm (NextAction);
|
||||||
Gam_PutParamGameCod (GamCod);
|
Gam_PutParamGameCod (GamCod);
|
||||||
HTM_BUTTON_Submit_Begin (Txt_Actions[ActSeeGam],
|
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
|
||||||
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Icon depending on type ******/
|
/***** Icon depending on type ******/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
Ico_PutIconLink (Icon,Ico_BLACK,ActSeeGam);
|
Ico_PutIconLink (Icon,Ico_BLACK,NextAction);
|
||||||
else
|
else
|
||||||
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
||||||
|
|
||||||
|
@ -114,7 +117,12 @@ void GamRsc_GetTitleFromGamCod (long GamCod,char *Title,size_t TitleSize)
|
||||||
{
|
{
|
||||||
char TitleFromDB[Gam_MAX_BYTES_TITLE + 1];
|
char TitleFromDB[Gam_MAX_BYTES_TITLE + 1];
|
||||||
|
|
||||||
/***** Get game title *****/
|
if (GamCod > 0)
|
||||||
Gam_DB_GetGameTitle (GamCod,TitleFromDB);
|
{
|
||||||
Str_Copy (Title,TitleFromDB,TitleSize);
|
/***** Get game title *****/
|
||||||
|
Gam_DB_GetGameTitle (GamCod,TitleFromDB);
|
||||||
|
Str_Copy (Title,TitleFromDB,TitleSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Str_Copy (Title,"?",TitleSize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -122,7 +122,7 @@ static const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_
|
||||||
[ 0] = ActSeeAss,
|
[ 0] = ActSeeAss,
|
||||||
[ 1] = ActSeeAsg,
|
[ 1] = ActSeeAsg,
|
||||||
[ 2] = ActSeePrj,
|
[ 2] = ActSeePrj,
|
||||||
[ 3] = ActSeeAllExaAnn,
|
[ 3] = ActSeeAllCfe,
|
||||||
[ 4] = ActEdiTstQst,
|
[ 4] = ActEdiTstQst,
|
||||||
[ 5] = ActReqTst,
|
[ 5] = ActReqTst,
|
||||||
[ 6] = ActSeeAllExa,
|
[ 6] = ActSeeAllExa,
|
||||||
|
|
|
@ -140,7 +140,7 @@ static const Act_Action_t Ntf_DefaultActions[Ntf_NUM_NOTIFY_EVENTS] =
|
||||||
/* Assessment tab */
|
/* Assessment tab */
|
||||||
[Ntf_EVENT_ASSIGNMENT ] = ActSeeAsg,
|
[Ntf_EVENT_ASSIGNMENT ] = ActSeeAsg,
|
||||||
[Ntf_EVENT_SURVEY ] = ActSeeAllSvy,
|
[Ntf_EVENT_SURVEY ] = ActSeeAllSvy,
|
||||||
[Ntf_EVENT_CALL_FOR_EXAM ] = ActSeeAllExaAnn,
|
[Ntf_EVENT_CALL_FOR_EXAM ] = ActSeeAllCfe,
|
||||||
/* Files tab */
|
/* Files tab */
|
||||||
[Ntf_EVENT_DOCUMENT_FILE ] = ActSeeAdmDocCrsGrp,
|
[Ntf_EVENT_DOCUMENT_FILE ] = ActSeeAdmDocCrsGrp,
|
||||||
[Ntf_EVENT_TEACHERS_FILE ] = ActAdmTchCrsGrp,
|
[Ntf_EVENT_TEACHERS_FILE ] = ActAdmTchCrsGrp,
|
||||||
|
|
|
@ -126,6 +126,7 @@ static void PrgRsc_WriteLinkName (const struct Prg_Link *Link,bool PutFormToGo,
|
||||||
static void PrgRsc_WriteEmptyLinkInCrsProgram (__attribute__((unused)) long Cod,
|
static void PrgRsc_WriteEmptyLinkInCrsProgram (__attribute__((unused)) long Cod,
|
||||||
__attribute__((unused)) bool PutFormToGo,
|
__attribute__((unused)) bool PutFormToGo,
|
||||||
const char *Icon,const char *IconTitle);
|
const char *Icon,const char *IconTitle);
|
||||||
|
static void PrgRsc_GetResourceTitleFromLink (struct Prg_Item *Item);
|
||||||
static void PrgRsc_GetDataOfLinkFromClipboard (struct Prg_Link *Link,
|
static void PrgRsc_GetDataOfLinkFromClipboard (struct Prg_Link *Link,
|
||||||
MYSQL_RES **mysql_res);
|
MYSQL_RES **mysql_res);
|
||||||
|
|
||||||
|
@ -996,11 +997,6 @@ static void PrgRsc_WriteLinkName (const struct Prg_Link *Link,bool PutFormToGo,
|
||||||
[PrgRsc_FORUM_THREAD ] = ForRsc_WriteThreadInCrsProgram,
|
[PrgRsc_FORUM_THREAD ] = ForRsc_WriteThreadInCrsProgram,
|
||||||
};
|
};
|
||||||
|
|
||||||
/***** Trivial check: code should be > 0 *****/
|
|
||||||
if (Link->Type != PrgRsc_NONE &&
|
|
||||||
Link->Cod <= 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/***** Write link name *****/
|
/***** Write link name *****/
|
||||||
if (WriteLinkName[Link->Type])
|
if (WriteLinkName[Link->Type])
|
||||||
WriteLinkName[Link->Type] (Link->Cod,PutFormToGo,Icon,IconTitle);
|
WriteLinkName[Link->Type] (Link->Cod,PutFormToGo,Icon,IconTitle);
|
||||||
|
@ -1049,10 +1045,6 @@ static void PrgRsc_GetResourceTitleFromLink (struct Prg_Item *Item)
|
||||||
/***** Reset title *****/
|
/***** Reset title *****/
|
||||||
Item->Resource.Title[0] = '\0';
|
Item->Resource.Title[0] = '\0';
|
||||||
|
|
||||||
/***** Trivial check: code should be > 0 *****/
|
|
||||||
if (Item->Resource.Link.Cod <= 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/***** Get title *****/
|
/***** Get title *****/
|
||||||
if (GetTitle[Item->Resource.Link.Type])
|
if (GetTitle[Item->Resource.Link.Type])
|
||||||
GetTitle[Item->Resource.Link.Type] (Item->Resource.Link.Cod,
|
GetTitle[Item->Resource.Link.Type] (Item->Resource.Link.Cod,
|
||||||
|
|
|
@ -150,6 +150,8 @@ static long Prj_PrjCod = -1L;
|
||||||
/***************************** Private prototypes ****************************/
|
/***************************** Private prototypes ****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Prj_SetPrjCod (long PrjCod);
|
||||||
|
|
||||||
static void Prj_ReqUsrsToSelect (void *Projects);
|
static void Prj_ReqUsrsToSelect (void *Projects);
|
||||||
static void Prj_GetSelectedUsrsAndShowTheirPrjs (struct Prj_Projects *Projects);
|
static void Prj_GetSelectedUsrsAndShowTheirPrjs (struct Prj_Projects *Projects);
|
||||||
static void Prj_ShowPrjsInCurrentPage (void *Projects);
|
static void Prj_ShowPrjsInCurrentPage (void *Projects);
|
||||||
|
@ -265,7 +267,7 @@ static void Prj_PutIconOffLockedUnlocked (const struct Prj_Project *Prj);
|
||||||
/******* Set/get project code (used to pass parameter to file browser) *******/
|
/******* Set/get project code (used to pass parameter to file browser) *******/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Prj_SetPrjCod (long PrjCod)
|
static void Prj_SetPrjCod (long PrjCod)
|
||||||
{
|
{
|
||||||
Prj_PrjCod = PrjCod;
|
Prj_PrjCod = PrjCod;
|
||||||
}
|
}
|
||||||
|
@ -1093,6 +1095,12 @@ static void Prj_PutIconsListProjects (void *Projects)
|
||||||
Ico_PutContextualIconToConfigure (ActCfgPrj,
|
Ico_PutContextualIconToConfigure (ActCfgPrj,
|
||||||
NULL,NULL);
|
NULL,NULL);
|
||||||
|
|
||||||
|
/***** Link to get resource link *****/
|
||||||
|
if (Gbl.Usrs.Me.Role.Logged == Rol_TCH || // Only if I am a teacher
|
||||||
|
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) // or a superuser
|
||||||
|
Ico_PutContextualIconToGetLink (ActReqLnkPrj,NULL,
|
||||||
|
Prj_PutCurrentParams,Projects);
|
||||||
|
|
||||||
/***** Put icon to show a figure *****/
|
/***** Put icon to show a figure *****/
|
||||||
Fig_PutIconToShowFigure (Fig_PROJECTS);
|
Fig_PutIconToShowFigure (Fig_PROJECTS);
|
||||||
}
|
}
|
||||||
|
@ -1134,6 +1142,41 @@ static void Prj_PutIconToShowAllData (struct Prj_Projects *Projects)
|
||||||
"table.svg",Ico_BLACK);
|
"table.svg",Ico_BLACK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/***** Show a project and (if possible) a file browser with its documents ****/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Prj_ShowProjectWithFileBrowser (void)
|
||||||
|
{
|
||||||
|
extern const char *Hlp_ASSESSMENT_Projects;
|
||||||
|
struct Prj_Project Prj;
|
||||||
|
|
||||||
|
/***** Allocate memory for the project *****/
|
||||||
|
Prj_AllocMemProject (&Prj);
|
||||||
|
|
||||||
|
/***** Get project data *****/
|
||||||
|
Prj_SetPrjCod (Prj.PrjCod = Prj_GetParamPrjCod ());
|
||||||
|
Prj_GetDataOfProjectByCod (&Prj);
|
||||||
|
|
||||||
|
/***** Begin box *****/
|
||||||
|
Box_BoxBegin (NULL,Prj.Title,
|
||||||
|
NULL,NULL,
|
||||||
|
Hlp_ASSESSMENT_Projects,Box_NOT_CLOSABLE);
|
||||||
|
|
||||||
|
/***** Show the project *****/
|
||||||
|
Prj_ShowOneUniqueProject (&Prj);
|
||||||
|
|
||||||
|
/***** Show project file browsers *****/
|
||||||
|
if (Prj_CheckIfICanViewProjectFiles (Prj.PrjCod))
|
||||||
|
Brw_ShowFileBrowserProject (Prj.PrjCod);
|
||||||
|
|
||||||
|
/***** End box *****/
|
||||||
|
Box_BoxEnd ();
|
||||||
|
|
||||||
|
/***** Free memory of the project *****/
|
||||||
|
Prj_FreeMemProject (&Prj);
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************** View / edit file browser of one project *******************/
|
/***************** View / edit file browser of one project *******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -1208,7 +1251,7 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
|
||||||
struct Prj_Project *Prj,
|
struct Prj_Project *Prj,
|
||||||
Prj_ProjectView_t ProjectView)
|
Prj_ProjectView_t ProjectView)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Project_files;
|
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
||||||
extern const char *Txt_Assigned_QUESTION;
|
extern const char *Txt_Assigned_QUESTION;
|
||||||
extern const char *Txt_Yes;
|
extern const char *Txt_Yes;
|
||||||
extern const char *Txt_No;
|
extern const char *Txt_No;
|
||||||
|
@ -1221,8 +1264,9 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
|
||||||
extern const char *Txt_Description;
|
extern const char *Txt_Description;
|
||||||
extern const char *Txt_Required_knowledge;
|
extern const char *Txt_Required_knowledge;
|
||||||
extern const char *Txt_Required_materials;
|
extern const char *Txt_Required_materials;
|
||||||
|
Act_Action_t NextAction;
|
||||||
char *Anchor = NULL;
|
char *Anchor = NULL;
|
||||||
bool ICanViewProjectFiles = Brw_CheckIfICanViewProjectFiles (Prj->PrjCod);
|
bool ICanViewProjectFiles = Prj_CheckIfICanViewProjectFiles (Prj->PrjCod);
|
||||||
const char *ClassLabel;
|
const char *ClassLabel;
|
||||||
const char *ClassDate;
|
const char *ClassDate;
|
||||||
const char *ClassData;
|
const char *ClassData;
|
||||||
|
@ -1352,21 +1396,18 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
|
||||||
HTM_ARTICLE_Begin (Anchor);
|
HTM_ARTICLE_Begin (Anchor);
|
||||||
if (Prj->Title[0])
|
if (Prj->Title[0])
|
||||||
{
|
{
|
||||||
if (ICanViewProjectFiles)
|
NextAction = ICanViewProjectFiles ? ActAdmDocPrj :
|
||||||
{
|
ActSeeOnePrj;
|
||||||
Frm_BeginForm (ActAdmDocPrj);
|
Frm_BeginForm (NextAction);
|
||||||
Prj_PutCurrentParams (Projects);
|
Prj_PutCurrentParams (Projects);
|
||||||
HTM_BUTTON_Submit_Begin (Txt_Project_files,
|
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
|
||||||
"class=\"LT BT_LINK %s_%s\"",
|
"class=\"LT BT_LINK %s_%s\"",
|
||||||
Prj->Hidden == Prj_HIDDEN ? "ASG_TITLE_LIGHT" :
|
Prj->Hidden == Prj_HIDDEN ? "ASG_TITLE_LIGHT" :
|
||||||
"ASG_TITLE",
|
"ASG_TITLE",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
HTM_Txt (Prj->Title);
|
HTM_Txt (Prj->Title);
|
||||||
HTM_BUTTON_End ();
|
HTM_BUTTON_End ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
}
|
|
||||||
else
|
|
||||||
HTM_Txt (Prj->Title);
|
|
||||||
}
|
}
|
||||||
if (Faults.WrongTitle)
|
if (Faults.WrongTitle)
|
||||||
Prj_PutWarningIcon ();
|
Prj_PutWarningIcon ();
|
||||||
|
@ -3004,7 +3045,8 @@ void Prj_FreeListProjects (struct Prj_Projects *Projects)
|
||||||
|
|
||||||
void Prj_PutParamPrjCod (long PrjCod)
|
void Prj_PutParamPrjCod (long PrjCod)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamLong (NULL,"PrjCod",PrjCod);
|
if (PrjCod > 0)
|
||||||
|
Par_PutHiddenParamLong (NULL,"PrjCod",PrjCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -172,7 +172,6 @@ struct Prj_Project
|
||||||
/***************************** Public prototypes *****************************/
|
/***************************** Public prototypes *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Prj_SetPrjCod (long PrjCod);
|
|
||||||
long Prj_GetPrjCod (void);
|
long Prj_GetPrjCod (void);
|
||||||
|
|
||||||
void Prj_ResetProjects (struct Prj_Projects *Projects);
|
void Prj_ResetProjects (struct Prj_Projects *Projects);
|
||||||
|
@ -188,6 +187,7 @@ void Prj_PutParams (struct Prj_Filter *Filter,
|
||||||
long PrjCod);
|
long PrjCod);
|
||||||
void Prj_GetParams (struct Prj_Projects *Projects);
|
void Prj_GetParams (struct Prj_Projects *Projects);
|
||||||
|
|
||||||
|
void Prj_ShowProjectWithFileBrowser (void);
|
||||||
void Prj_ShowOneUniqueProject (struct Prj_Project *Prj);
|
void Prj_ShowOneUniqueProject (struct Prj_Project *Prj);
|
||||||
|
|
||||||
void Prj_PrintOneProject (void);
|
void Prj_PrintOneProject (void);
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "swad_program_database.h"
|
#include "swad_program_database.h"
|
||||||
#include "swad_project.h"
|
#include "swad_project.h"
|
||||||
#include "swad_project_database.h"
|
#include "swad_project_database.h"
|
||||||
|
#include "swad_project_resource.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************************** Get link to game ******************************/
|
/***************************** Get link to game ******************************/
|
||||||
|
@ -38,7 +39,6 @@
|
||||||
|
|
||||||
void PrjRsc_GetLinkToProject (void)
|
void PrjRsc_GetLinkToProject (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Projects;
|
|
||||||
extern const char *Txt_Link_to_resource_X_copied_into_clipboard;
|
extern const char *Txt_Link_to_resource_X_copied_into_clipboard;
|
||||||
struct Prj_Projects Projects;
|
struct Prj_Projects Projects;
|
||||||
char Title[Prj_MAX_BYTES_TITLE + 1];
|
char Title[Prj_MAX_BYTES_TITLE + 1];
|
||||||
|
@ -51,10 +51,7 @@ void PrjRsc_GetLinkToProject (void)
|
||||||
Projects.PrjCod = Prj_GetParamPrjCod ();
|
Projects.PrjCod = Prj_GetParamPrjCod ();
|
||||||
|
|
||||||
/***** Get project title *****/
|
/***** Get project title *****/
|
||||||
if (Projects.PrjCod > 0)
|
PrjRsc_GetTitleFromPrjCod (Projects.PrjCod,Title,sizeof (Title) - 1);
|
||||||
Prj_DB_GetProjectTitle (Projects.PrjCod,Title);
|
|
||||||
else
|
|
||||||
Str_Copy (Title,Txt_Projects,sizeof (Title) - 1);
|
|
||||||
|
|
||||||
/***** Copy link to PROJECT into resource clipboard *****/
|
/***** Copy link to PROJECT into resource clipboard *****/
|
||||||
Prg_DB_CopyToClipboard (PrgRsc_PROJECT,Projects.PrjCod);
|
Prg_DB_CopyToClipboard (PrgRsc_PROJECT,Projects.PrjCod);
|
||||||
|
@ -75,24 +72,27 @@ void PrjRsc_WriteProjectInCrsProgram (long PrjCod,bool PutFormToGo,
|
||||||
const char *Icon,const char *IconTitle)
|
const char *Icon,const char *IconTitle)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
||||||
|
Act_Action_t NextAction;
|
||||||
char Title[Prj_MAX_BYTES_TITLE + 1];
|
char Title[Prj_MAX_BYTES_TITLE + 1];
|
||||||
|
|
||||||
/***** Get project title *****/
|
/***** Get project title *****/
|
||||||
Prj_DB_GetProjectTitle (PrjCod,Title);
|
PrjRsc_GetTitleFromPrjCod (PrjCod,Title,sizeof (Title) - 1);
|
||||||
|
|
||||||
/***** Begin form to go to project *****/
|
/***** Begin form to go to project *****/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
{
|
{
|
||||||
Frm_BeginForm (ActPrnOnePrj);
|
NextAction = (PrjCod > 0) ? ActSeeOnePrj : // Project specified
|
||||||
Prj_PutParamPrjCod (PrjCod);
|
ActSeePrj; // All projects
|
||||||
HTM_BUTTON_Submit_Begin (Txt_Actions[ActPrnOnePrj],
|
Frm_BeginForm (NextAction);
|
||||||
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
Prj_PutParamPrjCod (PrjCod);
|
||||||
The_GetSuffix ());
|
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
|
||||||
|
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
||||||
|
The_GetSuffix ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Icon depending on type ******/
|
/***** Icon depending on type ******/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
Ico_PutIconLink (Icon,Ico_BLACK,ActSeePrj);
|
Ico_PutIconLink (Icon,Ico_BLACK,NextAction);
|
||||||
else
|
else
|
||||||
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
||||||
|
|
||||||
|
@ -115,9 +115,16 @@ void PrjRsc_WriteProjectInCrsProgram (long PrjCod,bool PutFormToGo,
|
||||||
|
|
||||||
void PrjRsc_GetTitleFromPrjCod (long PrjCod,char *Title,size_t TitleSize)
|
void PrjRsc_GetTitleFromPrjCod (long PrjCod,char *Title,size_t TitleSize)
|
||||||
{
|
{
|
||||||
|
extern const char *Txt_Projects;
|
||||||
char TitleFromDB[Prj_MAX_BYTES_TITLE + 1];
|
char TitleFromDB[Prj_MAX_BYTES_TITLE + 1];
|
||||||
|
|
||||||
/***** Get project title *****/
|
if (PrjCod > 0)
|
||||||
Prj_DB_GetProjectTitle (PrjCod,TitleFromDB);
|
{
|
||||||
Str_Copy (Title,TitleFromDB,TitleSize);
|
/***** Get project title *****/
|
||||||
|
Prj_DB_GetProjectTitle (PrjCod,TitleFromDB);
|
||||||
|
Str_Copy (Title,TitleFromDB,TitleSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
/***** Generic title for all projects *****/
|
||||||
|
Str_Copy (Title,Txt_Projects,TitleSize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1396,7 +1396,8 @@ void Svy_GetNotifSurvey (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
||||||
|
|
||||||
void Svy_PutParamSvyCod (long SvyCod)
|
void Svy_PutParamSvyCod (long SvyCod)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamLong (NULL,"SvyCod",SvyCod);
|
if (SvyCod > 0)
|
||||||
|
Par_PutHiddenParamLong (NULL,"SvyCod",SvyCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "swad_program_database.h"
|
#include "swad_program_database.h"
|
||||||
#include "swad_survey.h"
|
#include "swad_survey.h"
|
||||||
#include "swad_survey_database.h"
|
#include "swad_survey_database.h"
|
||||||
|
#include "swad_survey_resource.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/**************************** Get link to survey *****************************/
|
/**************************** Get link to survey *****************************/
|
||||||
|
@ -51,7 +52,7 @@ void SvyRsc_GetLinkToSurvey (void)
|
||||||
Err_WrongSurveyExit ();
|
Err_WrongSurveyExit ();
|
||||||
|
|
||||||
/***** Get survey title *****/
|
/***** Get survey title *****/
|
||||||
Svy_DB_GetSurveyTitle (SvyCod,Title);
|
SvyRsc_GetTitleFromSvyCod (SvyCod,Title,sizeof (Title) - 1);
|
||||||
|
|
||||||
/***** Copy link to survey into resource clipboard *****/
|
/***** Copy link to survey into resource clipboard *****/
|
||||||
Prg_DB_CopyToClipboard (PrgRsc_SURVEY,SvyCod);
|
Prg_DB_CopyToClipboard (PrgRsc_SURVEY,SvyCod);
|
||||||
|
@ -72,24 +73,27 @@ void SvyRsc_WriteSurveyInCrsProgram (long SvyCod,bool PutFormToGo,
|
||||||
const char *Icon,const char *IconTitle)
|
const char *Icon,const char *IconTitle)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
extern const char *Txt_Actions[Act_NUM_ACTIONS];
|
||||||
|
Act_Action_t NextAction;
|
||||||
char Title[Svy_MAX_BYTES_SURVEY_TITLE + 1];
|
char Title[Svy_MAX_BYTES_SURVEY_TITLE + 1];
|
||||||
|
|
||||||
/***** Get survey title *****/
|
/***** Get survey title *****/
|
||||||
Svy_DB_GetSurveyTitle (SvyCod,Title);
|
SvyRsc_GetTitleFromSvyCod (SvyCod,Title,sizeof (Title) - 1);
|
||||||
|
|
||||||
/***** Begin form to go to survey *****/
|
/***** Begin form to go to survey *****/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
{
|
{
|
||||||
Frm_BeginForm (ActSeeSvy);
|
NextAction = (SvyCod > 0) ? ActSeeSvy : // Survey specified
|
||||||
|
ActSeeAllSvy; // All surveys
|
||||||
|
Frm_BeginForm (NextAction);
|
||||||
Svy_PutParamSvyCod (SvyCod);
|
Svy_PutParamSvyCod (SvyCod);
|
||||||
HTM_BUTTON_Submit_Begin (Txt_Actions[ActSeeSvy],
|
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
|
||||||
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
"class=\"LM BT_LINK PRG_LNK_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Icon depending on type ******/
|
/***** Icon depending on type ******/
|
||||||
if (PutFormToGo)
|
if (PutFormToGo)
|
||||||
Ico_PutIconLink (Icon,Ico_BLACK,ActSeeSvy);
|
Ico_PutIconLink (Icon,Ico_BLACK,NextAction);
|
||||||
else
|
else
|
||||||
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
|
||||||
|
|
||||||
|
@ -114,7 +118,12 @@ void SvyRsc_GetTitleFromSvyCod (long SvyCod,char *Title,size_t TitleSize)
|
||||||
{
|
{
|
||||||
char TitleFromDB[Svy_MAX_BYTES_SURVEY_TITLE + 1];
|
char TitleFromDB[Svy_MAX_BYTES_SURVEY_TITLE + 1];
|
||||||
|
|
||||||
/***** Get survey title *****/
|
if (SvyCod > 0)
|
||||||
Svy_DB_GetSurveyTitle (SvyCod,TitleFromDB);
|
{
|
||||||
Str_Copy (Title,TitleFromDB,TitleSize);
|
/***** Get survey title *****/
|
||||||
|
Svy_DB_GetSurveyTitle (SvyCod,TitleFromDB);
|
||||||
|
Str_Copy (Title,TitleFromDB,TitleSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Str_Copy (Title,"?",TitleSize);
|
||||||
}
|
}
|
||||||
|
|
23
swad_text.c
23
swad_text.c
|
@ -31981,29 +31981,6 @@ const char *Txt_project_documents =
|
||||||
"project documents"; // Çeviri lazim!
|
"project documents"; // Çeviri lazim!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Project_files =
|
|
||||||
#if L==1 // ca
|
|
||||||
"Fitxers del projecte";
|
|
||||||
#elif L==2 // de
|
|
||||||
"Projektdateien";
|
|
||||||
#elif L==3 // en
|
|
||||||
"Project files";
|
|
||||||
#elif L==4 // es
|
|
||||||
"Archivos del proyecto";
|
|
||||||
#elif L==5 // fr
|
|
||||||
"Fichiers du project";
|
|
||||||
#elif L==6 // gn
|
|
||||||
"Archivos del proyecto"; // Okoteve traducción
|
|
||||||
#elif L==7 // it
|
|
||||||
"File di progetto";
|
|
||||||
#elif L==8 // pl
|
|
||||||
"Pliki projektowe";
|
|
||||||
#elif L==9 // pt
|
|
||||||
"Arquivos do projeto";
|
|
||||||
#elif L==10 // tr
|
|
||||||
"Project files"; // Çeviri lazim!
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const char *Txt_PROJECT_ORDER[Prj_NUM_ORDERS] =
|
const char *Txt_PROJECT_ORDER[Prj_NUM_ORDERS] =
|
||||||
{
|
{
|
||||||
[Prj_ORDER_START_TIME] =
|
[Prj_ORDER_START_TIME] =
|
||||||
|
|
|
@ -8687,7 +8687,7 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
||||||
"See projects" // Çeviri lazim!
|
"See projects" // Çeviri lazim!
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
[ActSeeAllExaAnn] =
|
[ActSeeAllCfe] =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"See exam announcements" // Necessita traducció
|
"See exam announcements" // Necessita traducció
|
||||||
#elif L==2 // de
|
#elif L==2 // de
|
||||||
|
@ -9559,29 +9559,52 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
||||||
"Edit a project" // Precisa de tradução
|
"Edit a project" // Precisa de tradução
|
||||||
#elif L==10 // tr
|
#elif L==10 // tr
|
||||||
"Edit a project" // Çeviri lazim!
|
"Edit a project" // Çeviri lazim!
|
||||||
|
#endif
|
||||||
|
,
|
||||||
|
[ActSeeOnePrj] =
|
||||||
|
#if L==1 // ca
|
||||||
|
"Ver projecte"
|
||||||
|
#elif L==2 // de
|
||||||
|
"Projekt anzeigen"
|
||||||
|
#elif L==3 // en
|
||||||
|
"Show project"
|
||||||
|
#elif L==4 // es
|
||||||
|
"Ver proyecto"
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Voir projet"
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Ver proyecto" // Okoteve traducción
|
||||||
|
#elif L==7 // it
|
||||||
|
"Ver progetto"
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Pokaż projekt"
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Mostrar projeto"
|
||||||
|
#elif L==10 // tr
|
||||||
|
"Projeyi göster"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
[ActPrnOnePrj] =
|
[ActPrnOnePrj] =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Show primt view of a project" // Necessita traducció
|
"Show print view of a project" // Necessita traducció
|
||||||
#elif L==2 // de
|
#elif L==2 // de
|
||||||
"Show primt view of a project" // Need Übersetzung
|
"Show print view of a project" // Need Übersetzung
|
||||||
#elif L==3 // en
|
#elif L==3 // en
|
||||||
"Show primt view of a project"
|
"Show print view of a project"
|
||||||
#elif L==4 // es
|
#elif L==4 // es
|
||||||
"Mostrar vista de impresión de un proyecto"
|
"Mostrar vista de impresión de un proyecto"
|
||||||
#elif L==5 // fr
|
#elif L==5 // fr
|
||||||
"Show primt view of a project" // Besoin de traduction
|
"Show print view of a project" // Besoin de traduction
|
||||||
#elif L==6 // gn
|
#elif L==6 // gn
|
||||||
"Mostrar vista de impresión de un proyecto" // Okoteve traducción
|
"Mostrar vista de impresión de un proyecto" // Okoteve traducción
|
||||||
#elif L==7 // it
|
#elif L==7 // it
|
||||||
"Show primt view of a project" // Bisogno di traduzione
|
"Show print view of a project" // Bisogno di traduzione
|
||||||
#elif L==8 // pl
|
#elif L==8 // pl
|
||||||
"Show primt view of a project" // Potrzebujesz tlumaczenie
|
"Show print view of a project" // Potrzebujesz tlumaczenie
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"Show primt view of a project" // Precisa de tradução
|
"Show print view of a project" // Precisa de tradução
|
||||||
#elif L==10 // tr
|
#elif L==10 // tr
|
||||||
"Show primt view of a project" // Çeviri lazim!
|
"Show print view of a project" // Çeviri lazim!
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
[ActNewPrj] =
|
[ActNewPrj] =
|
||||||
|
@ -10069,25 +10092,25 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
||||||
,
|
,
|
||||||
[ActAdmDocPrj] =
|
[ActAdmDocPrj] =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Manage the documents of a project" // Necessita traducció
|
"Administrar zona de documents de projecte"
|
||||||
#elif L==2 // de
|
#elif L==2 // de
|
||||||
"Manage the documents of a project" // Need Übersetzung
|
"Bereich Projektdokumente verwalten"
|
||||||
#elif L==3 // en
|
#elif L==3 // en
|
||||||
"Manage the documents of a project"
|
"Manage project documents zone"
|
||||||
#elif L==4 // es
|
#elif L==4 // es
|
||||||
"Administrar zona de documentos de un proyecto"
|
"Administrar zona de documentos de proyecto"
|
||||||
#elif L==5 // fr
|
#elif L==5 // fr
|
||||||
"Manage the documents of a project" // Besoin de traduction
|
"Gérer la zone des documents du projet"
|
||||||
#elif L==6 // gn
|
#elif L==6 // gn
|
||||||
"Administrar zona de documentos de un proyecto" // Okoteve traducción
|
"Administrar zona de documentos de proyecto" // Okoteve traducción
|
||||||
#elif L==7 // it
|
#elif L==7 // it
|
||||||
"Manage the documents of a project" // Bisogno di traduzione
|
"Gestisci la zona dei documenti di progetto"
|
||||||
#elif L==8 // pl
|
#elif L==8 // pl
|
||||||
"Manage the documents of a project" // Potrzebujesz tlumaczenie
|
"Zarz&oaogon;dzaj strefą dokumentów projektu"
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"Manage the documents of a project" // Precisa de tradução
|
"Gerenciar zona de documentos do projeto"
|
||||||
#elif L==10 // tr
|
#elif L==10 // tr
|
||||||
"Manage the documents of a project" // Çeviri lazim!
|
"Proje belgeleri bölgesini yönet"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
[ActReqRemFilDocPrj] =
|
[ActReqRemFilDocPrj] =
|
||||||
|
|
Loading…
Reference in New Issue