mirror of https://github.com/acanas/swad-core.git
Version 21.110: Jul 19, 2022 Changes in edition of program items.
This commit is contained in:
parent
eb330da7f2
commit
84487984b0
|
@ -429,6 +429,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
[ActChgCrsYeaCfg ] = {1573,-1,TabUnk,ActSeeCrsInf ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,CrsCfg_ChangeCrsYear ,CrsCfg_ContEditAfterChgCrs ,NULL},
|
||||
[ActEdiCrsInf ] = { 848,-1,TabUnk,ActSeeCrsInf ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_FormsToSelSendInfo ,NULL},
|
||||
|
||||
[ActEdiPrg ] = {1926, 1,TabCrs,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_EditCourseProgram ,NULL},
|
||||
[ActFrmNewPrgItm ] = {1822,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_RequestCreateItem ,NULL},
|
||||
[ActFrmChgPrgItm ] = {1823,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_RequestChangeItem ,NULL},
|
||||
[ActNewPrgItm ] = {1825,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_ReceiveFormNewItem ,NULL},
|
||||
|
@ -3761,6 +3762,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
ActUp_PrgRsc, // #1923
|
||||
ActDwnPrgRsc, // #1924
|
||||
ActFrmSeePrgRsc, // #1925
|
||||
ActEdiPrg, // #1926
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
235
swad_action.h
235
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
|
||||
|
||||
#define Act_MAX_ACTION_COD 1925
|
||||
#define Act_MAX_ACTION_COD 1926
|
||||
|
||||
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
|
||||
|
||||
|
@ -396,127 +396,128 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
|
|||
#define ActChgInsCrsCodCfg (ActChgCrsSta + 13)
|
||||
#define ActChgCrsYeaCfg (ActChgCrsSta + 14)
|
||||
#define ActEdiCrsInf (ActChgCrsSta + 15)
|
||||
#define ActFrmNewPrgItm (ActChgCrsSta + 16)
|
||||
#define ActFrmChgPrgItm (ActChgCrsSta + 17)
|
||||
#define ActNewPrgItm (ActChgCrsSta + 18)
|
||||
#define ActChgPrgItm (ActChgCrsSta + 19)
|
||||
#define ActReqRemPrgItm (ActChgCrsSta + 20)
|
||||
#define ActRemPrgItm (ActChgCrsSta + 21)
|
||||
#define ActHidPrgItm (ActChgCrsSta + 22)
|
||||
#define ActUnhPrgItm (ActChgCrsSta + 23)
|
||||
#define ActUp_PrgItm (ActChgCrsSta + 24)
|
||||
#define ActDwnPrgItm (ActChgCrsSta + 25)
|
||||
#define ActLftPrgItm (ActChgCrsSta + 26)
|
||||
#define ActRgtPrgItm (ActChgCrsSta + 27)
|
||||
#define ActFrmSeePrgRsc (ActChgCrsSta + 28)
|
||||
#define ActFrmEdiPrgRsc (ActChgCrsSta + 29)
|
||||
#define ActReqRemPrgRsc (ActChgCrsSta + 30)
|
||||
#define ActRemPrgRsc (ActChgCrsSta + 31)
|
||||
#define ActHidPrgRsc (ActChgCrsSta + 32)
|
||||
#define ActUnhPrgRsc (ActChgCrsSta + 33)
|
||||
#define ActUp_PrgRsc (ActChgCrsSta + 34)
|
||||
#define ActDwnPrgRsc (ActChgCrsSta + 35)
|
||||
#define ActEdiTchGui (ActChgCrsSta + 36)
|
||||
#define ActSeeSylLec (ActChgCrsSta + 37)
|
||||
#define ActSeeSylPra (ActChgCrsSta + 38)
|
||||
#define ActEdiSylLec (ActChgCrsSta + 39)
|
||||
#define ActEdiSylPra (ActChgCrsSta + 40)
|
||||
#define ActDelItmSylLec (ActChgCrsSta + 41)
|
||||
#define ActDelItmSylPra (ActChgCrsSta + 42)
|
||||
#define ActUp_IteSylLec (ActChgCrsSta + 43)
|
||||
#define ActUp_IteSylPra (ActChgCrsSta + 44)
|
||||
#define ActDwnIteSylLec (ActChgCrsSta + 45)
|
||||
#define ActDwnIteSylPra (ActChgCrsSta + 46)
|
||||
#define ActRgtIteSylLec (ActChgCrsSta + 47)
|
||||
#define ActRgtIteSylPra (ActChgCrsSta + 48)
|
||||
#define ActLftIteSylLec (ActChgCrsSta + 49)
|
||||
#define ActLftIteSylPra (ActChgCrsSta + 50)
|
||||
#define ActInsIteSylLec (ActChgCrsSta + 51)
|
||||
#define ActInsIteSylPra (ActChgCrsSta + 52)
|
||||
#define ActModIteSylLec (ActChgCrsSta + 53)
|
||||
#define ActModIteSylPra (ActChgCrsSta + 54)
|
||||
#define ActEdiPrg (ActChgCrsSta + 16)
|
||||
#define ActFrmNewPrgItm (ActChgCrsSta + 17)
|
||||
#define ActFrmChgPrgItm (ActChgCrsSta + 18)
|
||||
#define ActNewPrgItm (ActChgCrsSta + 19)
|
||||
#define ActChgPrgItm (ActChgCrsSta + 20)
|
||||
#define ActReqRemPrgItm (ActChgCrsSta + 21)
|
||||
#define ActRemPrgItm (ActChgCrsSta + 22)
|
||||
#define ActHidPrgItm (ActChgCrsSta + 23)
|
||||
#define ActUnhPrgItm (ActChgCrsSta + 24)
|
||||
#define ActUp_PrgItm (ActChgCrsSta + 25)
|
||||
#define ActDwnPrgItm (ActChgCrsSta + 26)
|
||||
#define ActLftPrgItm (ActChgCrsSta + 27)
|
||||
#define ActRgtPrgItm (ActChgCrsSta + 28)
|
||||
#define ActFrmSeePrgRsc (ActChgCrsSta + 29)
|
||||
#define ActFrmEdiPrgRsc (ActChgCrsSta + 30)
|
||||
#define ActReqRemPrgRsc (ActChgCrsSta + 31)
|
||||
#define ActRemPrgRsc (ActChgCrsSta + 32)
|
||||
#define ActHidPrgRsc (ActChgCrsSta + 33)
|
||||
#define ActUnhPrgRsc (ActChgCrsSta + 34)
|
||||
#define ActUp_PrgRsc (ActChgCrsSta + 35)
|
||||
#define ActDwnPrgRsc (ActChgCrsSta + 36)
|
||||
#define ActEdiTchGui (ActChgCrsSta + 37)
|
||||
#define ActSeeSylLec (ActChgCrsSta + 38)
|
||||
#define ActSeeSylPra (ActChgCrsSta + 39)
|
||||
#define ActEdiSylLec (ActChgCrsSta + 40)
|
||||
#define ActEdiSylPra (ActChgCrsSta + 41)
|
||||
#define ActDelItmSylLec (ActChgCrsSta + 42)
|
||||
#define ActDelItmSylPra (ActChgCrsSta + 43)
|
||||
#define ActUp_IteSylLec (ActChgCrsSta + 44)
|
||||
#define ActUp_IteSylPra (ActChgCrsSta + 45)
|
||||
#define ActDwnIteSylLec (ActChgCrsSta + 46)
|
||||
#define ActDwnIteSylPra (ActChgCrsSta + 47)
|
||||
#define ActRgtIteSylLec (ActChgCrsSta + 48)
|
||||
#define ActRgtIteSylPra (ActChgCrsSta + 49)
|
||||
#define ActLftIteSylLec (ActChgCrsSta + 50)
|
||||
#define ActLftIteSylPra (ActChgCrsSta + 51)
|
||||
#define ActInsIteSylLec (ActChgCrsSta + 52)
|
||||
#define ActInsIteSylPra (ActChgCrsSta + 53)
|
||||
#define ActModIteSylLec (ActChgCrsSta + 54)
|
||||
#define ActModIteSylPra (ActChgCrsSta + 55)
|
||||
|
||||
#define ActEdiBib (ActChgCrsSta + 55)
|
||||
#define ActEdiFAQ (ActChgCrsSta + 56)
|
||||
#define ActEdiCrsLnk (ActChgCrsSta + 57)
|
||||
#define ActEdiBib (ActChgCrsSta + 56)
|
||||
#define ActEdiFAQ (ActChgCrsSta + 57)
|
||||
#define ActEdiCrsLnk (ActChgCrsSta + 58)
|
||||
|
||||
#define ActChgFrcReaCrsInf (ActChgCrsSta + 58)
|
||||
#define ActChgFrcReaTchGui (ActChgCrsSta + 59)
|
||||
#define ActChgFrcReaSylLec (ActChgCrsSta + 60)
|
||||
#define ActChgFrcReaSylPra (ActChgCrsSta + 61)
|
||||
#define ActChgFrcReaBib (ActChgCrsSta + 62)
|
||||
#define ActChgFrcReaFAQ (ActChgCrsSta + 63)
|
||||
#define ActChgFrcReaCrsLnk (ActChgCrsSta + 64)
|
||||
#define ActChgFrcReaCrsInf (ActChgCrsSta + 59)
|
||||
#define ActChgFrcReaTchGui (ActChgCrsSta + 60)
|
||||
#define ActChgFrcReaSylLec (ActChgCrsSta + 61)
|
||||
#define ActChgFrcReaSylPra (ActChgCrsSta + 62)
|
||||
#define ActChgFrcReaBib (ActChgCrsSta + 63)
|
||||
#define ActChgFrcReaFAQ (ActChgCrsSta + 64)
|
||||
#define ActChgFrcReaCrsLnk (ActChgCrsSta + 65)
|
||||
|
||||
#define ActChgHavReaCrsInf (ActChgCrsSta + 65)
|
||||
#define ActChgHavReaTchGui (ActChgCrsSta + 66)
|
||||
#define ActChgHavReaSylLec (ActChgCrsSta + 67)
|
||||
#define ActChgHavReaSylPra (ActChgCrsSta + 68)
|
||||
#define ActChgHavReaBib (ActChgCrsSta + 69)
|
||||
#define ActChgHavReaFAQ (ActChgCrsSta + 70)
|
||||
#define ActChgHavReaCrsLnk (ActChgCrsSta + 71)
|
||||
#define ActChgHavReaCrsInf (ActChgCrsSta + 66)
|
||||
#define ActChgHavReaTchGui (ActChgCrsSta + 67)
|
||||
#define ActChgHavReaSylLec (ActChgCrsSta + 68)
|
||||
#define ActChgHavReaSylPra (ActChgCrsSta + 69)
|
||||
#define ActChgHavReaBib (ActChgCrsSta + 70)
|
||||
#define ActChgHavReaFAQ (ActChgCrsSta + 71)
|
||||
#define ActChgHavReaCrsLnk (ActChgCrsSta + 72)
|
||||
|
||||
#define ActSelInfSrcCrsInf (ActChgCrsSta + 72)
|
||||
#define ActSelInfSrcTchGui (ActChgCrsSta + 73)
|
||||
#define ActSelInfSrcSylLec (ActChgCrsSta + 74)
|
||||
#define ActSelInfSrcSylPra (ActChgCrsSta + 75)
|
||||
#define ActSelInfSrcBib (ActChgCrsSta + 76)
|
||||
#define ActSelInfSrcFAQ (ActChgCrsSta + 77)
|
||||
#define ActSelInfSrcCrsLnk (ActChgCrsSta + 78)
|
||||
#define ActRcvURLCrsInf (ActChgCrsSta + 79)
|
||||
#define ActRcvURLTchGui (ActChgCrsSta + 80)
|
||||
#define ActRcvURLSylLec (ActChgCrsSta + 81)
|
||||
#define ActRcvURLSylPra (ActChgCrsSta + 82)
|
||||
#define ActRcvURLBib (ActChgCrsSta + 83)
|
||||
#define ActRcvURLFAQ (ActChgCrsSta + 84)
|
||||
#define ActRcvURLCrsLnk (ActChgCrsSta + 85)
|
||||
#define ActRcvPagCrsInf (ActChgCrsSta + 86)
|
||||
#define ActRcvPagTchGui (ActChgCrsSta + 87)
|
||||
#define ActRcvPagSylLec (ActChgCrsSta + 88)
|
||||
#define ActRcvPagSylPra (ActChgCrsSta + 89)
|
||||
#define ActRcvPagBib (ActChgCrsSta + 90)
|
||||
#define ActRcvPagFAQ (ActChgCrsSta + 91)
|
||||
#define ActRcvPagCrsLnk (ActChgCrsSta + 92)
|
||||
#define ActEditorCrsInf (ActChgCrsSta + 93)
|
||||
#define ActEditorTchGui (ActChgCrsSta + 94)
|
||||
#define ActEditorSylLec (ActChgCrsSta + 95)
|
||||
#define ActEditorSylPra (ActChgCrsSta + 96)
|
||||
#define ActEditorBib (ActChgCrsSta + 97)
|
||||
#define ActEditorFAQ (ActChgCrsSta + 98)
|
||||
#define ActEditorCrsLnk (ActChgCrsSta + 99)
|
||||
#define ActPlaTxtEdiCrsInf (ActChgCrsSta + 100)
|
||||
#define ActPlaTxtEdiTchGui (ActChgCrsSta + 101)
|
||||
#define ActPlaTxtEdiSylLec (ActChgCrsSta + 102)
|
||||
#define ActPlaTxtEdiSylPra (ActChgCrsSta + 103)
|
||||
#define ActPlaTxtEdiBib (ActChgCrsSta + 104)
|
||||
#define ActPlaTxtEdiFAQ (ActChgCrsSta + 105)
|
||||
#define ActPlaTxtEdiCrsLnk (ActChgCrsSta + 106)
|
||||
#define ActRchTxtEdiCrsInf (ActChgCrsSta + 107)
|
||||
#define ActRchTxtEdiTchGui (ActChgCrsSta + 108)
|
||||
#define ActRchTxtEdiSylLec (ActChgCrsSta + 109)
|
||||
#define ActRchTxtEdiSylPra (ActChgCrsSta + 110)
|
||||
#define ActRchTxtEdiBib (ActChgCrsSta + 111)
|
||||
#define ActRchTxtEdiFAQ (ActChgCrsSta + 112)
|
||||
#define ActRchTxtEdiCrsLnk (ActChgCrsSta + 113)
|
||||
#define ActRcvPlaTxtCrsInf (ActChgCrsSta + 114)
|
||||
#define ActRcvPlaTxtTchGui (ActChgCrsSta + 115)
|
||||
#define ActRcvPlaTxtSylLec (ActChgCrsSta + 116)
|
||||
#define ActRcvPlaTxtSylPra (ActChgCrsSta + 117)
|
||||
#define ActRcvPlaTxtBib (ActChgCrsSta + 118)
|
||||
#define ActRcvPlaTxtFAQ (ActChgCrsSta + 119)
|
||||
#define ActRcvPlaTxtCrsLnk (ActChgCrsSta + 120)
|
||||
#define ActRcvRchTxtCrsInf (ActChgCrsSta + 121)
|
||||
#define ActRcvRchTxtTchGui (ActChgCrsSta + 122)
|
||||
#define ActRcvRchTxtSylLec (ActChgCrsSta + 123)
|
||||
#define ActRcvRchTxtSylPra (ActChgCrsSta + 124)
|
||||
#define ActRcvRchTxtBib (ActChgCrsSta + 125)
|
||||
#define ActRcvRchTxtFAQ (ActChgCrsSta + 126)
|
||||
#define ActRcvRchTxtCrsLnk (ActChgCrsSta + 127)
|
||||
#define ActSelInfSrcCrsInf (ActChgCrsSta + 73)
|
||||
#define ActSelInfSrcTchGui (ActChgCrsSta + 74)
|
||||
#define ActSelInfSrcSylLec (ActChgCrsSta + 75)
|
||||
#define ActSelInfSrcSylPra (ActChgCrsSta + 76)
|
||||
#define ActSelInfSrcBib (ActChgCrsSta + 77)
|
||||
#define ActSelInfSrcFAQ (ActChgCrsSta + 78)
|
||||
#define ActSelInfSrcCrsLnk (ActChgCrsSta + 79)
|
||||
#define ActRcvURLCrsInf (ActChgCrsSta + 80)
|
||||
#define ActRcvURLTchGui (ActChgCrsSta + 81)
|
||||
#define ActRcvURLSylLec (ActChgCrsSta + 82)
|
||||
#define ActRcvURLSylPra (ActChgCrsSta + 83)
|
||||
#define ActRcvURLBib (ActChgCrsSta + 84)
|
||||
#define ActRcvURLFAQ (ActChgCrsSta + 85)
|
||||
#define ActRcvURLCrsLnk (ActChgCrsSta + 86)
|
||||
#define ActRcvPagCrsInf (ActChgCrsSta + 87)
|
||||
#define ActRcvPagTchGui (ActChgCrsSta + 88)
|
||||
#define ActRcvPagSylLec (ActChgCrsSta + 89)
|
||||
#define ActRcvPagSylPra (ActChgCrsSta + 90)
|
||||
#define ActRcvPagBib (ActChgCrsSta + 91)
|
||||
#define ActRcvPagFAQ (ActChgCrsSta + 92)
|
||||
#define ActRcvPagCrsLnk (ActChgCrsSta + 93)
|
||||
#define ActEditorCrsInf (ActChgCrsSta + 94)
|
||||
#define ActEditorTchGui (ActChgCrsSta + 95)
|
||||
#define ActEditorSylLec (ActChgCrsSta + 96)
|
||||
#define ActEditorSylPra (ActChgCrsSta + 97)
|
||||
#define ActEditorBib (ActChgCrsSta + 98)
|
||||
#define ActEditorFAQ (ActChgCrsSta + 99)
|
||||
#define ActEditorCrsLnk (ActChgCrsSta + 100)
|
||||
#define ActPlaTxtEdiCrsInf (ActChgCrsSta + 101)
|
||||
#define ActPlaTxtEdiTchGui (ActChgCrsSta + 102)
|
||||
#define ActPlaTxtEdiSylLec (ActChgCrsSta + 103)
|
||||
#define ActPlaTxtEdiSylPra (ActChgCrsSta + 104)
|
||||
#define ActPlaTxtEdiBib (ActChgCrsSta + 105)
|
||||
#define ActPlaTxtEdiFAQ (ActChgCrsSta + 106)
|
||||
#define ActPlaTxtEdiCrsLnk (ActChgCrsSta + 107)
|
||||
#define ActRchTxtEdiCrsInf (ActChgCrsSta + 108)
|
||||
#define ActRchTxtEdiTchGui (ActChgCrsSta + 109)
|
||||
#define ActRchTxtEdiSylLec (ActChgCrsSta + 110)
|
||||
#define ActRchTxtEdiSylPra (ActChgCrsSta + 111)
|
||||
#define ActRchTxtEdiBib (ActChgCrsSta + 112)
|
||||
#define ActRchTxtEdiFAQ (ActChgCrsSta + 113)
|
||||
#define ActRchTxtEdiCrsLnk (ActChgCrsSta + 114)
|
||||
#define ActRcvPlaTxtCrsInf (ActChgCrsSta + 115)
|
||||
#define ActRcvPlaTxtTchGui (ActChgCrsSta + 116)
|
||||
#define ActRcvPlaTxtSylLec (ActChgCrsSta + 117)
|
||||
#define ActRcvPlaTxtSylPra (ActChgCrsSta + 118)
|
||||
#define ActRcvPlaTxtBib (ActChgCrsSta + 119)
|
||||
#define ActRcvPlaTxtFAQ (ActChgCrsSta + 120)
|
||||
#define ActRcvPlaTxtCrsLnk (ActChgCrsSta + 121)
|
||||
#define ActRcvRchTxtCrsInf (ActChgCrsSta + 122)
|
||||
#define ActRcvRchTxtTchGui (ActChgCrsSta + 123)
|
||||
#define ActRcvRchTxtSylLec (ActChgCrsSta + 124)
|
||||
#define ActRcvRchTxtSylPra (ActChgCrsSta + 125)
|
||||
#define ActRcvRchTxtBib (ActChgCrsSta + 126)
|
||||
#define ActRcvRchTxtFAQ (ActChgCrsSta + 127)
|
||||
#define ActRcvRchTxtCrsLnk (ActChgCrsSta + 128)
|
||||
|
||||
#define ActPrnCrsTT (ActChgCrsSta + 128)
|
||||
#define ActEdiCrsTT (ActChgCrsSta + 129)
|
||||
#define ActChgCrsTT (ActChgCrsSta + 130)
|
||||
#define ActChgCrsTT1stDay (ActChgCrsSta + 131)
|
||||
#define ActPrnCrsTT (ActChgCrsSta + 129)
|
||||
#define ActEdiCrsTT (ActChgCrsSta + 130)
|
||||
#define ActChgCrsTT (ActChgCrsSta + 131)
|
||||
#define ActChgCrsTT1stDay (ActChgCrsSta + 132)
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Assessment tab ********************************/
|
||||
|
|
|
@ -606,10 +606,11 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
|
|||
|
||||
TODO: Attach pdf files in multimedia.
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 21.109 (2022-07-19)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 21.110 (2022-07-19)"
|
||||
#define CSS_FILE "swad21.107.1.css"
|
||||
#define JS_FILE "swad21.100.js"
|
||||
/*
|
||||
Version 21.110: Jul 19, 2022 Changes in edition of program items. (329031 lines)
|
||||
Version 21.109: Jul 19, 2022 Changes in edition of program items. (328975 lines)
|
||||
Version 21.108: Jul 18, 2022 Changes in edition of program items. (328908 lines)
|
||||
Version 21.107.1: Jul 17, 2022 Changes in layout of resources of program item. (? lines)
|
||||
|
|
186
swad_program.c
186
swad_program.c
|
@ -106,10 +106,13 @@ static struct
|
|||
/*****************************************************************************/
|
||||
|
||||
static void Prg_PutIconsListItems (__attribute__((unused)) void *Args);
|
||||
static void Prg_PutIconsEditItems (__attribute__((unused)) void *Args);
|
||||
static void Prg_PutIconToEditProgram (void);
|
||||
static void Prg_PutIconToViewProgram (void);
|
||||
static void Prg_PutIconToCreateNewItem (void);
|
||||
static void Prg_PutButtonToCreateNewItem (void);
|
||||
|
||||
static void Prg_WriteRowItem (Prg_ListingItem_t ListingItem,
|
||||
static void Prg_WriteRowItem (Prg_ListingType_t ListingType,
|
||||
unsigned NumItem,struct Prg_Item *Item);
|
||||
static void Prg_WriteRowToCreateItem (long ItmCod,unsigned FormLevel);
|
||||
static void Prg_SetTitleClass (char **TitleClass,unsigned Level,bool LightStyle);
|
||||
|
@ -171,20 +174,29 @@ static void Prg_InsertItem (const struct Prg_Item *ParentItem,
|
|||
|
||||
void Prg_ShowCourseProgram (void)
|
||||
{
|
||||
struct Prg_ItemRange ToHighlight;
|
||||
|
||||
/***** Get list of program items *****/
|
||||
Prg_GetListItems ();
|
||||
|
||||
/***** Show course program without highlighting any item *****/
|
||||
Prg_SetItemRangeEmpty (&ToHighlight);
|
||||
Prg_ShowCourseProgramHighlightingItem (&ToHighlight);
|
||||
Prg_ShowAllItems (Prg_VIEW,NULL,-1L,-1L,0);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
}
|
||||
|
||||
void Prg_ShowCourseProgramHighlightingItem (const struct Prg_ItemRange *ToHighlight)
|
||||
void Prg_EditCourseProgram (void)
|
||||
{
|
||||
/***** Get list of program items *****/
|
||||
Prg_GetListItems ();
|
||||
|
||||
/***** Show course program without highlighting any item *****/
|
||||
Prg_EditCourseProgramHighlightingItem (NULL);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
}
|
||||
|
||||
void Prg_EditCourseProgramHighlightingItem (const struct Prg_ItemRange *ToHighlight)
|
||||
{
|
||||
/***** Show all program items *****/
|
||||
Prg_ShowAllItems (Prg_EDIT_LIST,ToHighlight,-1L,-1L,0);
|
||||
|
@ -194,7 +206,7 @@ void Prg_ShowCourseProgramHighlightingItem (const struct Prg_ItemRange *ToHighli
|
|||
/************************* Show all program items ****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
|
||||
void Prg_ShowAllItems (Prg_ListingType_t ListingType,
|
||||
const struct Prg_ItemRange *ToHighlight,
|
||||
long ParentItmCod,long ItmCod,unsigned FormLevel)
|
||||
{
|
||||
|
@ -203,6 +215,16 @@ void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
|
|||
unsigned NumItem;
|
||||
struct Prg_Item Item;
|
||||
static bool FirstTBodyOpen = false;
|
||||
static void (*FunctionToDrawContextualIcons[Prg_NUM_LISTING_TYPES]) (void *Args) =
|
||||
{
|
||||
[Prg_PRINT ] = NULL,
|
||||
[Prg_VIEW ] = Prg_PutIconsListItems,
|
||||
[Prg_EDIT_LIST ] = Prg_PutIconsEditItems,
|
||||
[Prg_NEW_ITEM ] = Prg_PutIconsEditItems,
|
||||
[Prg_EDIT_ITEM ] = Prg_PutIconsEditItems,
|
||||
[Prg_EDIT_RESOURCES] = Prg_PutIconsEditItems,
|
||||
[Prg_END_EDIT_RES ] = Prg_PutIconsEditItems,
|
||||
};
|
||||
|
||||
/***** Create numbers and hidden levels *****/
|
||||
Prg_SetMaxItemLevel (Prg_CalculateMaxItemLevel ());
|
||||
|
@ -210,7 +232,7 @@ void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
|
|||
|
||||
/***** Begin box *****/
|
||||
Box_BoxBegin ("100%",Txt_Course_program,
|
||||
Prg_PutIconsListItems,NULL,
|
||||
FunctionToDrawContextualIcons[ListingType],NULL,
|
||||
Hlp_COURSE_Program,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Table *****/
|
||||
|
@ -233,23 +255,24 @@ void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
|
|||
Prg_GetDataOfItemByCod (&Item);
|
||||
|
||||
/* Begin range to highlight? */
|
||||
if (Item.Hierarchy.Index == ToHighlight->Begin) // Begin of the highlighted range
|
||||
{
|
||||
if (FirstTBodyOpen)
|
||||
if (ToHighlight)
|
||||
if (Item.Hierarchy.Index == ToHighlight->Begin) // Begin of the highlighted range
|
||||
{
|
||||
HTM_TBODY_End (); // 1st tbody end
|
||||
FirstTBodyOpen = false;
|
||||
if (FirstTBodyOpen)
|
||||
{
|
||||
HTM_TBODY_End (); // 1st tbody end
|
||||
FirstTBodyOpen = false;
|
||||
}
|
||||
HTM_TBODY_Begin ("id=\"prg_highlighted\""); // Highlighted tbody start
|
||||
}
|
||||
HTM_TBODY_Begin ("id=\"prg_highlighted\""); // Highlighted tbody start
|
||||
}
|
||||
|
||||
/* Show form to create item */
|
||||
switch (ListingItem)
|
||||
switch (ListingType)
|
||||
{
|
||||
case Prg_PRINT:
|
||||
case Prg_VIEW:
|
||||
case Prg_EDIT_LIST:
|
||||
Prg_WriteRowItem (ListingItem,NumItem,&Item);
|
||||
Prg_WriteRowItem (ListingType,NumItem,&Item);
|
||||
break;
|
||||
case Prg_NEW_ITEM:
|
||||
Prg_WriteRowItem (Prg_EDIT_LIST,NumItem,&Item);
|
||||
|
@ -259,25 +282,26 @@ void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
|
|||
case Prg_EDIT_ITEM:
|
||||
case Prg_EDIT_RESOURCES:
|
||||
case Prg_END_EDIT_RES:
|
||||
Prg_WriteRowItem (Item.Hierarchy.ItmCod == ItmCod ? ListingItem :
|
||||
Prg_WriteRowItem (Item.Hierarchy.ItmCod == ItmCod ? ListingType :
|
||||
Prg_EDIT_LIST,
|
||||
NumItem,&Item);
|
||||
break;
|
||||
}
|
||||
|
||||
/* End range to highlight? */
|
||||
if (Item.Hierarchy.Index == ToHighlight->End) // End of the highlighted range
|
||||
{
|
||||
HTM_TBODY_End (); // Highlighted tbody end
|
||||
if (NumItem < Prg_Gbl.List.NumItems - 1) // Not the last item
|
||||
HTM_TBODY_Begin (NULL); // 3rd tbody begin
|
||||
}
|
||||
if (ToHighlight)
|
||||
if (Item.Hierarchy.Index == ToHighlight->End) // End of the highlighted range
|
||||
{
|
||||
HTM_TBODY_End (); // Highlighted tbody end
|
||||
if (NumItem < Prg_Gbl.List.NumItems - 1) // Not the last item
|
||||
HTM_TBODY_Begin (NULL); // 3rd tbody begin
|
||||
}
|
||||
|
||||
The_ChangeRowColor ();
|
||||
}
|
||||
|
||||
/***** Create item at the end? *****/
|
||||
if (ItmCod <= 0 && ListingItem == Prg_NEW_ITEM)
|
||||
if (ItmCod <= 0 && ListingType == Prg_NEW_ITEM)
|
||||
Prg_WriteRowToCreateItem (-1L,1);
|
||||
|
||||
/***** End table *****/
|
||||
|
@ -285,7 +309,7 @@ void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
|
|||
HTM_TABLE_End ();
|
||||
|
||||
/***** Button to create a new program item *****/
|
||||
if (Prg_CheckIfICanCreateItems ())
|
||||
if (Prg_CheckIfICanEditProgram ())
|
||||
Prg_PutButtonToCreateNewItem ();
|
||||
|
||||
/***** End box *****/
|
||||
|
@ -299,7 +323,7 @@ void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
|
|||
/******************* Check if I can create program items *********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
bool Prg_CheckIfICanCreateItems (void)
|
||||
bool Prg_CheckIfICanEditProgram (void)
|
||||
{
|
||||
return Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
|
||||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM;
|
||||
|
@ -311,14 +335,51 @@ bool Prg_CheckIfICanCreateItems (void)
|
|||
|
||||
static void Prg_PutIconsListItems (__attribute__((unused)) void *Args)
|
||||
{
|
||||
/***** Put icon to edit program *****/
|
||||
if (Prg_CheckIfICanEditProgram ())
|
||||
Prg_PutIconToEditProgram ();
|
||||
|
||||
/***** Put icon to show a figure *****/
|
||||
Fig_PutIconToShowFigure (Fig_COURSE_PROGRAMS);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** Put contextual icons in list of program items ****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prg_PutIconsEditItems (__attribute__((unused)) void *Args)
|
||||
{
|
||||
/***** Put icon to view program *****/
|
||||
Prg_PutIconToViewProgram ();
|
||||
|
||||
/***** Put icon to create a new program item *****/
|
||||
if (Prg_CheckIfICanCreateItems ())
|
||||
if (Prg_CheckIfICanEditProgram ())
|
||||
Prg_PutIconToCreateNewItem ();
|
||||
|
||||
/***** Put icon to show a figure *****/
|
||||
Fig_PutIconToShowFigure (Fig_COURSE_PROGRAMS);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************* Put icon to edit program **************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prg_PutIconToEditProgram (void)
|
||||
{
|
||||
Ico_PutContextualIconToEdit (ActEdiPrg,NULL,
|
||||
NULL,NULL);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************* Put icon to view program **************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prg_PutIconToViewProgram (void)
|
||||
{
|
||||
Ico_PutContextualIconToView (ActSeePrg,NULL,
|
||||
NULL,NULL);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************** Put icon to create a new program item ********************/
|
||||
/*****************************************************************************/
|
||||
|
@ -350,7 +411,7 @@ static void Prg_PutButtonToCreateNewItem (void)
|
|||
/************************** Show one program item ****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prg_WriteRowItem (Prg_ListingItem_t ListingItem,
|
||||
static void Prg_WriteRowItem (Prg_ListingType_t ListingType,
|
||||
unsigned NumItem,struct Prg_Item *Item)
|
||||
{
|
||||
static unsigned UniqueId = 0;
|
||||
|
@ -379,7 +440,7 @@ static void Prg_WriteRowItem (Prg_ListingItem_t ListingItem,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Forms to remove/edit this program item *****/
|
||||
switch (ListingItem)
|
||||
switch (ListingType)
|
||||
{
|
||||
case Prg_EDIT_LIST:
|
||||
case Prg_EDIT_ITEM:
|
||||
|
@ -411,7 +472,7 @@ static void Prg_WriteRowItem (Prg_ListingItem_t ListingItem,
|
|||
|
||||
/***** Title *****/
|
||||
ColSpan = (Prg_GetMaxItemLevel () + 2) - Item->Hierarchy.Level;
|
||||
switch (ListingItem)
|
||||
switch (ListingType)
|
||||
{
|
||||
case Prg_PRINT:
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN %s\"",
|
||||
|
@ -434,7 +495,7 @@ static void Prg_WriteRowItem (Prg_ListingItem_t ListingItem,
|
|||
{
|
||||
if (asprintf (&Id,"scd_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
switch (ListingItem)
|
||||
switch (ListingType)
|
||||
{
|
||||
case Prg_PRINT:
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"PRG_DATE LT %s_%s\"",
|
||||
|
@ -471,7 +532,7 @@ static void Prg_WriteRowItem (Prg_ListingItem_t ListingItem,
|
|||
|
||||
/* Begin text and resources */
|
||||
ColSpan += 2;
|
||||
switch (ListingItem)
|
||||
switch (ListingType)
|
||||
{
|
||||
case Prg_PRINT:
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN\"",ColSpan);
|
||||
|
@ -483,7 +544,7 @@ static void Prg_WriteRowItem (Prg_ListingItem_t ListingItem,
|
|||
}
|
||||
|
||||
/* Item text / form */
|
||||
switch (ListingItem)
|
||||
switch (ListingType)
|
||||
{
|
||||
case Prg_EDIT_ITEM:
|
||||
/* Form to change item title, dates and text */
|
||||
|
@ -507,7 +568,7 @@ static void Prg_WriteRowItem (Prg_ListingItem_t ListingItem,
|
|||
}
|
||||
|
||||
/* List of resources */
|
||||
PrgRsc_ListItemResources (ListingItem,Item->Hierarchy.ItmCod);
|
||||
PrgRsc_ListItemResources (ListingType,Item->Hierarchy.ItmCod);
|
||||
|
||||
/* End text and resources */
|
||||
HTM_TD_End ();
|
||||
|
@ -1151,7 +1212,7 @@ void Prg_ReqRemItem (void)
|
|||
/***** Show program items highlighting subtree *****/
|
||||
Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (Item.Hierarchy.ItmCod),
|
||||
&ToHighlight);
|
||||
Prg_ShowCourseProgramHighlightingItem (&ToHighlight);
|
||||
Prg_EditCourseProgramHighlightingItem (&ToHighlight);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
@ -1166,7 +1227,6 @@ void Prg_RemoveItem (void)
|
|||
extern const char *Txt_Item_X_removed;
|
||||
struct Prg_Item Item;
|
||||
struct Prg_ItemRange ToRemove;
|
||||
struct Prg_ItemRange ToHighlight;
|
||||
|
||||
/***** Get list of program items *****/
|
||||
Prg_GetListItems ();
|
||||
|
@ -1192,8 +1252,7 @@ void Prg_RemoveItem (void)
|
|||
Prg_GetListItems ();
|
||||
|
||||
/***** Show course program without highlighting any item *****/
|
||||
Prg_SetItemRangeEmpty (&ToHighlight);
|
||||
Prg_ShowCourseProgramHighlightingItem (&ToHighlight);
|
||||
Prg_EditCourseProgramHighlightingItem (NULL);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
@ -1233,7 +1292,7 @@ static void Prg_HideOrUnhideItem (bool Hide)
|
|||
/***** Show program items highlighting subtree *****/
|
||||
Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (Item.Hierarchy.ItmCod),
|
||||
&ToHighlight);
|
||||
Prg_ShowCourseProgramHighlightingItem (&ToHighlight);
|
||||
Prg_EditCourseProgramHighlightingItem (&ToHighlight);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
@ -1295,18 +1354,19 @@ static void Prg_MoveUpDownItem (Prg_MoveUpDown_t UpDown)
|
|||
/* Update list of program items */
|
||||
Prg_FreeListItems ();
|
||||
Prg_GetListItems ();
|
||||
|
||||
/* Show program items highlighting subtree */
|
||||
Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (Item.Hierarchy.ItmCod),
|
||||
&ToHighlight);
|
||||
Prg_EditCourseProgramHighlightingItem (&ToHighlight);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Show course program without highlighting any item */
|
||||
Ale_ShowAlert (Ale_WARNING,Txt_Movement_not_allowed);
|
||||
Prg_SetItemRangeEmpty (&ToHighlight);
|
||||
Prg_EditCourseProgramHighlightingItem (NULL);
|
||||
}
|
||||
|
||||
/***** Show program items highlighting subtree *****/
|
||||
Prg_ShowCourseProgramHighlightingItem (&ToHighlight);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
}
|
||||
|
@ -1492,18 +1552,19 @@ static void Prg_MoveLeftRightItem (Prg_MoveLeftRight_t LeftRight)
|
|||
/* Update list of program items */
|
||||
Prg_FreeListItems ();
|
||||
Prg_GetListItems ();
|
||||
|
||||
/* Show program items highlighting subtree */
|
||||
Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (Item.Hierarchy.ItmCod),
|
||||
&ToHighlight);
|
||||
Prg_EditCourseProgramHighlightingItem (&ToHighlight);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Show course program without highlighting any item */
|
||||
Ale_ShowAlert (Ale_WARNING,Txt_Movement_not_allowed);
|
||||
Prg_SetItemRangeEmpty (&ToHighlight);
|
||||
Prg_EditCourseProgramHighlightingItem (NULL);
|
||||
}
|
||||
|
||||
/***** Show program items highlighting subtree *****/
|
||||
Prg_ShowCourseProgramHighlightingItem (&ToHighlight);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
}
|
||||
|
@ -1512,21 +1573,6 @@ static void Prg_MoveLeftRightItem (Prg_MoveLeftRight_t LeftRight)
|
|||
/****** Set subtree begin and end from number of item in course program ******/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Prg_SetItemRangeEmpty (struct Prg_ItemRange *ItemRange)
|
||||
{
|
||||
/***** List of items must be filled *****/
|
||||
if (!Prg_Gbl.List.IsRead)
|
||||
Err_WrongItemsListExit ();
|
||||
|
||||
/***** Range is empty *****/
|
||||
if (Prg_Gbl.List.NumItems)
|
||||
ItemRange->Begin =
|
||||
ItemRange->End = Prg_Gbl.List.Items[Prg_Gbl.List.NumItems - 1].Index + 1;
|
||||
else
|
||||
ItemRange->Begin =
|
||||
ItemRange->End = 1;
|
||||
}
|
||||
|
||||
static void Prg_SetItemRangeOnlyItem (unsigned Index,struct Prg_ItemRange *ItemRange)
|
||||
{
|
||||
/***** List of items must be filled *****/
|
||||
|
@ -1590,7 +1636,6 @@ void Prg_RequestCreateItem (void)
|
|||
unsigned NumItem;
|
||||
long ItmCodBeforeForm;
|
||||
unsigned FormLevel;
|
||||
struct Prg_ItemRange ToHighlight;
|
||||
|
||||
/***** Get list of program items *****/
|
||||
Prg_GetListItems ();
|
||||
|
@ -1614,9 +1659,7 @@ void Prg_RequestCreateItem (void)
|
|||
}
|
||||
|
||||
/***** Show current program items, if any *****/
|
||||
Prg_SetItemRangeEmpty (&ToHighlight);
|
||||
Prg_ShowAllItems (Prg_NEW_ITEM,
|
||||
&ToHighlight,ParentItmCod,ItmCodBeforeForm,FormLevel);
|
||||
Prg_ShowAllItems (Prg_NEW_ITEM,NULL,ParentItmCod,ItmCodBeforeForm,FormLevel);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
@ -1626,7 +1669,6 @@ void Prg_RequestChangeItem (void)
|
|||
{
|
||||
long ItmCod;
|
||||
unsigned FormLevel;
|
||||
struct Prg_ItemRange ToHighlight;
|
||||
|
||||
/***** Get list of program items *****/
|
||||
Prg_GetListItems ();
|
||||
|
@ -1638,9 +1680,7 @@ void Prg_RequestChangeItem (void)
|
|||
FormLevel = 0;
|
||||
|
||||
/***** Show current program items, if any *****/
|
||||
Prg_SetItemRangeEmpty (&ToHighlight);
|
||||
Prg_ShowAllItems (Prg_EDIT_ITEM,
|
||||
&ToHighlight,-1L,ItmCod,FormLevel);
|
||||
Prg_ShowAllItems (Prg_EDIT_ITEM,NULL,-1L,ItmCod,FormLevel);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
@ -1843,7 +1883,7 @@ void Prg_ReceiveFormNewItem (void)
|
|||
|
||||
/***** Show program items highlighting subtree *****/
|
||||
Prg_SetItemRangeOnlyItem (NewItem.Hierarchy.Index,&ToHighlight);
|
||||
Prg_ShowCourseProgramHighlightingItem (&ToHighlight);
|
||||
Prg_EditCourseProgramHighlightingItem (&ToHighlight);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
@ -1894,7 +1934,7 @@ void Prg_ReceiveFormChgItem (void)
|
|||
|
||||
/***** Show program items highlighting subtree *****/
|
||||
Prg_SetItemRangeOnlyItem (NewItem.Hierarchy.Index,&ToHighlight);
|
||||
Prg_ShowCourseProgramHighlightingItem (&ToHighlight);
|
||||
Prg_EditCourseProgramHighlightingItem (&ToHighlight);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
|
|
@ -71,7 +71,7 @@ typedef enum
|
|||
Prg_MOVE_RIGHT,
|
||||
} Prg_MoveLeftRight_t;
|
||||
|
||||
#define Prg_NUM_LISTING_ITEM_TYPES 7
|
||||
#define Prg_NUM_LISTING_TYPES 7
|
||||
typedef enum
|
||||
{
|
||||
Prg_PRINT, // List items ready to be printed
|
||||
|
@ -81,20 +81,21 @@ typedef enum
|
|||
Prg_EDIT_ITEM, // Form to edit a selected item
|
||||
Prg_EDIT_RESOURCES, // List resources of a selected item for edition
|
||||
Prg_END_EDIT_RES, // List resources of a selected item after edition
|
||||
} Prg_ListingItem_t;
|
||||
} Prg_ListingType_t;
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Prg_ShowCourseProgram (void);
|
||||
void Prg_ShowCourseProgramHighlightingItem (const struct Prg_ItemRange *ToHighlight);
|
||||
void Prg_EditCourseProgram (void);
|
||||
void Prg_EditCourseProgramHighlightingItem (const struct Prg_ItemRange *ToHighlight);
|
||||
|
||||
void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
|
||||
void Prg_ShowAllItems (Prg_ListingType_t ListingType,
|
||||
const struct Prg_ItemRange *ToHighlight,
|
||||
long ParentItmCod,long ItmCod,unsigned FormLevel);
|
||||
|
||||
bool Prg_CheckIfICanCreateItems (void);
|
||||
bool Prg_CheckIfICanEditProgram (void);
|
||||
void Prg_PutParams (void *ItmCod);
|
||||
|
||||
void Prg_GetListItems (void);
|
||||
|
@ -118,8 +119,6 @@ void Prg_MoveDownItem (void);
|
|||
void Prg_MoveLeftItem (void);
|
||||
void Prg_MoveRightItem (void);
|
||||
|
||||
void Prg_SetItemRangeEmpty (struct Prg_ItemRange *ItemRange);
|
||||
|
||||
//-------------------------------- Figures ------------------------------------
|
||||
void Prg_GetAndShowCourseProgramStats (void); // TODO: Change function from assignments to schedule
|
||||
|
||||
|
|
|
@ -95,7 +95,6 @@ void PrgRsc_ViewResources (void)
|
|||
{
|
||||
long ItmCod;
|
||||
unsigned FormLevel;
|
||||
struct Prg_ItemRange ToHighlight;
|
||||
|
||||
/***** Get list of program items *****/
|
||||
Prg_GetListItems ();
|
||||
|
@ -107,9 +106,7 @@ void PrgRsc_ViewResources (void)
|
|||
FormLevel = 0;
|
||||
|
||||
/***** Show current program items, if any *****/
|
||||
Prg_SetItemRangeEmpty (&ToHighlight);
|
||||
Prg_ShowAllItems (Prg_END_EDIT_RES,
|
||||
&ToHighlight,-1L,ItmCod,FormLevel);
|
||||
Prg_ShowAllItems (Prg_END_EDIT_RES,NULL,-1L,ItmCod,FormLevel);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
@ -123,7 +120,6 @@ void PrgRsc_EditResources (void)
|
|||
{
|
||||
long ItmCod;
|
||||
unsigned FormLevel;
|
||||
struct Prg_ItemRange ToHighlight;
|
||||
|
||||
/***** Get list of program items *****/
|
||||
Prg_GetListItems ();
|
||||
|
@ -135,9 +131,7 @@ void PrgRsc_EditResources (void)
|
|||
FormLevel = 0;
|
||||
|
||||
/***** Show current program items, if any *****/
|
||||
Prg_SetItemRangeEmpty (&ToHighlight);
|
||||
Prg_ShowAllItems (Prg_EDIT_RESOURCES,
|
||||
&ToHighlight,-1L,ItmCod,FormLevel);
|
||||
Prg_ShowAllItems (Prg_EDIT_RESOURCES,NULL,-1L,ItmCod,FormLevel);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
@ -147,7 +141,7 @@ void PrgRsc_EditResources (void)
|
|||
/****************************** List resources *******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void PrgRsc_ListItemResources (Prg_ListingItem_t ListingItem,long ItmCod)
|
||||
void PrgRsc_ListItemResources (Prg_ListingType_t ListingType,long ItmCod)
|
||||
{
|
||||
extern const char *Hlp_COURSE_Program;
|
||||
extern const char *Txt_Remove_resource;
|
||||
|
@ -156,7 +150,7 @@ void PrgRsc_ListItemResources (Prg_ListingItem_t ListingItem,long ItmCod)
|
|||
unsigned NumRsc;
|
||||
unsigned NumResources;
|
||||
struct PrgRsc_Resource Resource;
|
||||
static bool GetHiddenResources[Prg_NUM_LISTING_ITEM_TYPES] =
|
||||
static bool GetHiddenResources[Prg_NUM_LISTING_TYPES] =
|
||||
{
|
||||
[Prg_PRINT ] = false,
|
||||
[Prg_VIEW ] = false,
|
||||
|
@ -166,7 +160,17 @@ void PrgRsc_ListItemResources (Prg_ListingItem_t ListingItem,long ItmCod)
|
|||
[Prg_EDIT_RESOURCES] = true,
|
||||
[Prg_END_EDIT_RES ] = false,
|
||||
};
|
||||
static bool FeaturedList[Prg_NUM_LISTING_ITEM_TYPES] =
|
||||
static bool ShowEmptyList[Prg_NUM_LISTING_TYPES] =
|
||||
{
|
||||
[Prg_PRINT ] = false,
|
||||
[Prg_VIEW ] = false,
|
||||
[Prg_EDIT_LIST ] = true,
|
||||
[Prg_NEW_ITEM ] = true,
|
||||
[Prg_EDIT_ITEM ] = true,
|
||||
[Prg_EDIT_RESOURCES] = true,
|
||||
[Prg_END_EDIT_RES ] = true,
|
||||
};
|
||||
static bool FeaturedList[Prg_NUM_LISTING_TYPES] =
|
||||
{
|
||||
[Prg_PRINT ] = false,
|
||||
[Prg_VIEW ] = false,
|
||||
|
@ -183,86 +187,92 @@ void PrgRsc_ListItemResources (Prg_ListingItem_t ListingItem,long ItmCod)
|
|||
|
||||
/***** Get list of item resources from database *****/
|
||||
NumResources = Prg_DB_GetListResources (&mysql_res,ItmCod,
|
||||
GetHiddenResources[ListingItem]);
|
||||
GetHiddenResources[ListingType]);
|
||||
|
||||
/***** Begin section *****/
|
||||
if (FeaturedList[ListingItem])
|
||||
HTM_SECTION_Begin (PrgRsc_RESOURCE_SECTION_ID);
|
||||
if (NumResources || ShowEmptyList[ListingType])
|
||||
{
|
||||
/***** Begin section *****/
|
||||
if (FeaturedList[ListingType])
|
||||
HTM_SECTION_Begin (PrgRsc_RESOURCE_SECTION_ID);
|
||||
|
||||
/***** Show possible alerts *****/
|
||||
if (FeaturedList[ListingItem])
|
||||
switch (Gbl.Action.Act)
|
||||
/***** Show possible alerts *****/
|
||||
if (FeaturedList[ListingType])
|
||||
switch (Gbl.Action.Act)
|
||||
{
|
||||
case ActReqRemPrgRsc:
|
||||
/* Alert with button to remove resource */
|
||||
Ale_ShowLastAlertAndButton (ActRemPrgRsc,PrgRsc_RESOURCE_SECTION_ID,NULL,
|
||||
PrgRsc_PutParams,&PrgSrc_RscCodToBeRemoved,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove_resource);
|
||||
break;
|
||||
default:
|
||||
Ale_ShowAlerts (PrgRsc_RESOURCE_SECTION_ID);
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Begin box *****/
|
||||
switch (ListingType)
|
||||
{
|
||||
case ActReqRemPrgRsc:
|
||||
/* Alert with button to remove resource */
|
||||
Ale_ShowLastAlertAndButton (ActRemPrgRsc,PrgRsc_RESOURCE_SECTION_ID,NULL,
|
||||
PrgRsc_PutParams,&PrgSrc_RscCodToBeRemoved,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove_resource);
|
||||
case Prg_EDIT_LIST:
|
||||
case Prg_NEW_ITEM:
|
||||
case Prg_EDIT_ITEM:
|
||||
case Prg_END_EDIT_RES:
|
||||
Box_BoxBegin ("100%",Txt_Resources,
|
||||
PrgRsc_PutIconsEditResources,&ItmCod,
|
||||
Hlp_COURSE_Program,Box_NOT_CLOSABLE);
|
||||
break;
|
||||
case Prg_EDIT_RESOURCES:
|
||||
Box_BoxBegin ("100%",Txt_Resources,
|
||||
PrgRsc_PutIconsViewResources,&ItmCod,
|
||||
Hlp_COURSE_Program,Box_NOT_CLOSABLE);
|
||||
break;
|
||||
default:
|
||||
Ale_ShowAlerts (PrgRsc_RESOURCE_SECTION_ID);
|
||||
Box_BoxBegin ("100%",Txt_Resources,
|
||||
NULL,NULL,
|
||||
Hlp_COURSE_Program,Box_NOT_CLOSABLE);
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Begin box *****/
|
||||
switch (ListingItem)
|
||||
{
|
||||
case Prg_EDIT_LIST:
|
||||
case Prg_NEW_ITEM:
|
||||
case Prg_EDIT_ITEM:
|
||||
case Prg_END_EDIT_RES:
|
||||
Box_BoxBegin ("100%",Txt_Resources,
|
||||
PrgRsc_PutIconsEditResources,&ItmCod,
|
||||
Hlp_COURSE_Program,Box_NOT_CLOSABLE);
|
||||
break;
|
||||
case Prg_EDIT_RESOURCES:
|
||||
Box_BoxBegin ("100%",Txt_Resources,
|
||||
PrgRsc_PutIconsViewResources,&ItmCod,
|
||||
Hlp_COURSE_Program,Box_NOT_CLOSABLE);
|
||||
break;
|
||||
default:
|
||||
Box_BoxBegin ("100%",Txt_Resources,
|
||||
NULL,NULL,
|
||||
Hlp_COURSE_Program,Box_NOT_CLOSABLE);
|
||||
break;
|
||||
/***** Table *****/
|
||||
HTM_TABLE_BeginWideMarginPadding (2);
|
||||
HTM_TBODY_Begin (NULL);
|
||||
|
||||
/***** Write all item resources *****/
|
||||
for (NumRsc = 0;
|
||||
NumRsc < NumResources;
|
||||
NumRsc++)
|
||||
{
|
||||
/* Get data of this item resource */
|
||||
PrgRsc_GetDataOfResource (&Resource,&mysql_res);
|
||||
|
||||
/* Show item */
|
||||
switch (ListingType)
|
||||
{
|
||||
case Prg_EDIT_RESOURCES:
|
||||
PrgRsc_WriteRowEditResource (NumRsc,NumResources,&Resource);
|
||||
break;
|
||||
default:
|
||||
PrgRsc_WriteRowViewResource (NumRsc,&Resource);
|
||||
break;
|
||||
}
|
||||
|
||||
The_ChangeRowColor ();
|
||||
}
|
||||
|
||||
/***** End table *****/
|
||||
HTM_TBODY_End ();
|
||||
HTM_TABLE_End ();
|
||||
|
||||
/***** End box *****/
|
||||
Box_BoxEnd ();
|
||||
|
||||
/***** End section *****/
|
||||
if (FeaturedList[ListingType])
|
||||
HTM_SECTION_End ();
|
||||
}
|
||||
|
||||
/***** Table *****/
|
||||
HTM_TABLE_BeginWideMarginPadding (2);
|
||||
HTM_TBODY_Begin (NULL);
|
||||
|
||||
/***** Write all item resources *****/
|
||||
for (NumRsc = 0;
|
||||
NumRsc < NumResources;
|
||||
NumRsc++)
|
||||
{
|
||||
/* Get data of this item resource */
|
||||
PrgRsc_GetDataOfResource (&Resource,&mysql_res);
|
||||
|
||||
/* Show item */
|
||||
switch (ListingItem)
|
||||
{
|
||||
case Prg_EDIT_RESOURCES:
|
||||
PrgRsc_WriteRowEditResource (NumRsc,NumResources,&Resource);
|
||||
break;
|
||||
default:
|
||||
PrgRsc_WriteRowViewResource (NumRsc,&Resource);
|
||||
break;
|
||||
}
|
||||
|
||||
The_ChangeRowColor ();
|
||||
}
|
||||
|
||||
/***** End table *****/
|
||||
HTM_TBODY_End ();
|
||||
HTM_TABLE_End ();
|
||||
|
||||
/***** End box *****/
|
||||
Box_BoxEnd ();
|
||||
|
||||
/***** End section *****/
|
||||
if (FeaturedList[ListingItem])
|
||||
HTM_SECTION_End ();
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -274,7 +284,7 @@ static void PrgRsc_PutIconsViewResources (void *ItmCod)
|
|||
/***** Put icon to create a new item resource *****/
|
||||
if (ItmCod)
|
||||
if (*((long *) ItmCod) > 0)
|
||||
if (Prg_CheckIfICanCreateItems ())
|
||||
if (Prg_CheckIfICanEditProgram ())
|
||||
PrgSrc_PutIconToViewResources (*((long *) ItmCod));
|
||||
}
|
||||
|
||||
|
@ -283,7 +293,7 @@ static void PrgRsc_PutIconsEditResources (void *ItmCod)
|
|||
/***** Put icon to create a new item resource *****/
|
||||
if (ItmCod)
|
||||
if (*((long *) ItmCod) > 0)
|
||||
if (Prg_CheckIfICanCreateItems ())
|
||||
if (Prg_CheckIfICanEditProgram ())
|
||||
PrgSrc_PutIconToEditResources (*((long *) ItmCod));
|
||||
}
|
||||
|
||||
|
@ -527,7 +537,6 @@ void PrgRsc_ReqRemResource (void)
|
|||
struct PrgRsc_Resource Resource;
|
||||
long ItmCod;
|
||||
unsigned FormLevel;
|
||||
struct Prg_ItemRange ToHighlight;
|
||||
|
||||
/***** Get list of program items *****/
|
||||
Prg_GetListItems ();
|
||||
|
@ -549,9 +558,7 @@ void PrgRsc_ReqRemResource (void)
|
|||
FormLevel = Prg_GetLevelFromNumItem (Prg_GetNumItemFromItmCod (Resource.ItmCod));
|
||||
|
||||
/***** Show current program items, if any *****/
|
||||
Prg_SetItemRangeEmpty (&ToHighlight);
|
||||
Prg_ShowAllItems (Prg_EDIT_RESOURCES,
|
||||
&ToHighlight,-1L,ItmCod,FormLevel);
|
||||
Prg_ShowAllItems (Prg_EDIT_RESOURCES,NULL,-1L,ItmCod,FormLevel);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
@ -567,7 +574,6 @@ void PrgRsc_RemoveResource (void)
|
|||
struct PrgRsc_Resource Resource;
|
||||
long ItmCod;
|
||||
unsigned FormLevel;
|
||||
struct Prg_ItemRange ToHighlight;
|
||||
|
||||
/***** Get list of program items *****/
|
||||
Prg_GetListItems ();
|
||||
|
@ -590,9 +596,7 @@ void PrgRsc_RemoveResource (void)
|
|||
FormLevel = Prg_GetLevelFromNumItem (Prg_GetNumItemFromItmCod (Resource.ItmCod));
|
||||
|
||||
/***** Show current program items, if any *****/
|
||||
Prg_SetItemRangeEmpty (&ToHighlight);
|
||||
Prg_ShowAllItems (Prg_EDIT_RESOURCES,
|
||||
&ToHighlight,-1L,ItmCod,FormLevel);
|
||||
Prg_ShowAllItems (Prg_EDIT_RESOURCES,NULL,-1L,ItmCod,FormLevel);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
@ -617,7 +621,6 @@ static void PrgRsc_HideOrUnhideResource (bool Hide)
|
|||
struct PrgRsc_Resource Resource;
|
||||
long ItmCod;
|
||||
unsigned FormLevel;
|
||||
struct Prg_ItemRange ToHighlight;
|
||||
|
||||
/***** Get list of program items *****/
|
||||
Prg_GetListItems ();
|
||||
|
@ -636,9 +639,7 @@ static void PrgRsc_HideOrUnhideResource (bool Hide)
|
|||
FormLevel = Prg_GetLevelFromNumItem (Prg_GetNumItemFromItmCod (Resource.ItmCod));
|
||||
|
||||
/***** Show current program items, if any *****/
|
||||
Prg_SetItemRangeEmpty (&ToHighlight);
|
||||
Prg_ShowAllItems (Prg_EDIT_RESOURCES,
|
||||
&ToHighlight,-1L,ItmCod,FormLevel);
|
||||
Prg_ShowAllItems (Prg_EDIT_RESOURCES,NULL,-1L,ItmCod,FormLevel);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
@ -665,7 +666,6 @@ static void PrgRsc_MoveUpDownResource (PrgRsc_MoveUpDown_t UpDown)
|
|||
struct PrgRsc_Rsc Rsc2;
|
||||
long ItmCod;
|
||||
unsigned FormLevel;
|
||||
struct Prg_ItemRange ToHighlight;
|
||||
bool Success = false;
|
||||
static unsigned (*GetOtherRscInd[PrgRsc_NUM_MOVEMENTS_UP_DOWN])(long ItmCod,unsigned RscInd) =
|
||||
{
|
||||
|
@ -699,9 +699,7 @@ static void PrgRsc_MoveUpDownResource (PrgRsc_MoveUpDown_t UpDown)
|
|||
FormLevel = Prg_GetLevelFromNumItem (Prg_GetNumItemFromItmCod (Resource.ItmCod));
|
||||
|
||||
/***** Show current program items, if any *****/
|
||||
Prg_SetItemRangeEmpty (&ToHighlight);
|
||||
Prg_ShowAllItems (Prg_EDIT_RESOURCES,
|
||||
&ToHighlight,-1L,ItmCod,FormLevel);
|
||||
Prg_ShowAllItems (Prg_EDIT_RESOURCES,NULL,-1L,ItmCod,FormLevel);
|
||||
|
||||
/***** Free list of program items *****/
|
||||
Prg_FreeListItems ();
|
||||
|
|
|
@ -55,7 +55,7 @@ struct PrgRsc_Resource
|
|||
void PrgRsc_ViewResources (void);
|
||||
void PrgRsc_EditResources (void);
|
||||
|
||||
void PrgRsc_ListItemResources (Prg_ListingItem_t ListingItem,long ItmCod);
|
||||
void PrgRsc_ListItemResources (Prg_ListingType_t ListingType,long ItmCod);
|
||||
|
||||
void PrgRsc_RequestCreateResource (void);
|
||||
|
||||
|
|
|
@ -5419,6 +5419,328 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"See educational schedule of course" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See educational schedule of course" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeTchGui] =
|
||||
#if L==1 // ca
|
||||
"See the teaching guide of course" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"See the teaching guide of course" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"See the teaching guide of course"
|
||||
#elif L==4 // es
|
||||
"Ver la guía docente de la asignatura"
|
||||
#elif L==5 // fr
|
||||
"See the teaching guide of course" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver la guía docente de la asignatura" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"See the teaching guide of course" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"See the teaching guide of course" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"See the teaching guide of course" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See the teaching guide of course" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeSyl] =
|
||||
#if L==1 // ca
|
||||
"See the syllabus (lectures or practicals)" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"See the syllabus (lectures or practicals)" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"See the syllabus (lectures or practicals)"
|
||||
#elif L==4 // es
|
||||
"Ver el temario (teoría o prácticas)"
|
||||
#elif L==5 // fr
|
||||
"See the syllabus (lectures or practicals)" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver el temario (teoría o prácticas)" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"See the syllabus (lectures or practicals)" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"See the syllabus (lectures or practicals)" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"See the syllabus (lectures or practicals)" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See the syllabus (lectures or practicals)" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeBib] =
|
||||
#if L==1 // ca
|
||||
"See the bibliography" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"See the bibliography" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"See the bibliography"
|
||||
#elif L==4 // es
|
||||
"Ver la bibliografía"
|
||||
#elif L==5 // fr
|
||||
"See the bibliography" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver la bibliografía" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"See the bibliography" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"See the bibliography" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"See the bibliography" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See the bibliography" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeFAQ] =
|
||||
#if L==1 // ca
|
||||
"See the FAQ" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"See the FAQ" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"See the FAQ"
|
||||
#elif L==4 // es
|
||||
"Ver la FAQ"
|
||||
#elif L==5 // fr
|
||||
"See the FAQ" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver la FAQ" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"See the FAQ" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"See the FAQ" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"See the FAQ" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See the FAQ" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeCrsLnk] =
|
||||
#if L==1 // ca
|
||||
"See the links related to the course" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"See the links related to the course" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"See the links related to the course"
|
||||
#elif L==4 // es
|
||||
"Ver los enlaces relacionados con la asignatura"
|
||||
#elif L==5 // fr
|
||||
"See the links related to the course" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver los enlaces relacionados con la asignatura" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"See the links related to the course" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"See the links related to the course" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"See the links related to the course" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See the links related to the course" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeCrsTT] =
|
||||
#if L==1 // ca
|
||||
"See the course timetable" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"See the course timetable" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"See the course timetable"
|
||||
#elif L==4 // es
|
||||
"Ver el horario de la asignatura"
|
||||
#elif L==5 // fr
|
||||
"See the course timetable" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver el horario de la asignatura" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"See the course timetable" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"See the course timetable" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"See the course timetable" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See the course timetable" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActPrnCrsInf] =
|
||||
#if L==1 // ca
|
||||
"Print information on the course" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Print information on the course" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Print information on the course"
|
||||
#elif L==4 // es
|
||||
"Imprimir información sobre la asignatura"
|
||||
#elif L==5 // fr
|
||||
"Print information on the course" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Imprimir información sobre la asignatura" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Print information on the course" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Print information on the course" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Print information on the course" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Print information on the course" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActChgCrsDegCfg] =
|
||||
#if L==1 // ca
|
||||
"Change degree of course in its configuration" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change degree of course in its configuration" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change degree of course in its configuration"
|
||||
#elif L==4 // es
|
||||
"Cambiar titulación de asignatura en su configuración"
|
||||
#elif L==5 // fr
|
||||
"Change degree of course in its configuration" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar titulación de asignatura en su configuración" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change degree of course in its configuration" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change degree of course in its configuration" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change degree of course in its configuration" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change degree of course in its configuration" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActRenCrsShoCfg] =
|
||||
#if L==1 // ca
|
||||
"Change short name of course in its configuration" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change short name of course in its configuration" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change short name of course in its configuration"
|
||||
#elif L==4 // es
|
||||
"Cambiar nombre breve de asignatura en su configuración"
|
||||
#elif L==5 // fr
|
||||
"Change short name of course in its configuration" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar nombre breve de asignatura en su configuración" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change short name of course in its configuration" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change short name of course in its configuration" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change short name of course in its configuration" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change short name of course in its configuration" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActRenCrsFulCfg] =
|
||||
#if L==1 // ca
|
||||
"Change full name of course in its configuration" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change full name of course in its configuration" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change full name of course in its configuration"
|
||||
#elif L==4 // es
|
||||
"Cambiar nombre completo de asignatura en su configuración"
|
||||
#elif L==5 // fr
|
||||
"Change full name of course in its configuration" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar nombre completo de asignatura en su configuración" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change full name of course in its configuration" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change full name of course in its configuration" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change full name of course in its configuration" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change full name of course in its configuration" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActChgInsCrsCodCfg] =
|
||||
#if L==1 // ca
|
||||
"Change institutional code of course in its configuration" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change institutional code of course in its configuration" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change institutional code of course in its configuration"
|
||||
#elif L==4 // es
|
||||
"Cambiar código institucional de asignatura en su configuración"
|
||||
#elif L==5 // fr
|
||||
"Change institutional code of course in its configuration" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar código institucional de asignatura en su configuración" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change institutional code of course in its configuration" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change institutional code of course in its configuration" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change institutional code of course in its configuration" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change institutional code of course in its configuration" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActChgCrsYeaCfg] =
|
||||
#if L==1 // ca
|
||||
"Change year/semester of course in its configuration" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change year/semester of course in its configuration" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change year/semester of course in its configuration"
|
||||
#elif L==4 // es
|
||||
"Cambiar año/semestre de asignatura en su configuración"
|
||||
#elif L==5 // fr
|
||||
"Change year/semester of course in its configuration" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar año/semestre de asignatura en su configuración" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change year/semester of course in its configuration" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change year/semester of course in its configuration" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change year/semester of course in its configuration" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change year/semester of course in its configuration" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActEdiCrsInf] =
|
||||
#if L==1 // ca
|
||||
"Edit information about the course" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Edit information about the course" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Edit information about the course"
|
||||
#elif L==4 // es
|
||||
"Editar la información de la asignatura"
|
||||
#elif L==5 // fr
|
||||
"Edit information about the course" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Editar la información de la asignatura" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Edit information about the course" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Edit information about the course" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Edit information about the course" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Edit information about the course" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActEdiPrg] =
|
||||
#if L==1 // ca
|
||||
"Edit educational schedule of course" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Edit educational schedule of course" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Edit educational schedule of course"
|
||||
#elif L==4 // es
|
||||
"Editar programación didáctica de la asignatura"
|
||||
#elif L==5 // fr
|
||||
"Edit educational schedule of course" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Editar programación didáctica de la asignatura" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Edit educational schedule of course" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Edit educational schedule of course" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Edit educational schedule of course" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Edit educational schedule of course" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActFrmNewPrgItm] =
|
||||
|
@ -5879,305 +6201,6 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"Move down resource" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Move down resource" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeTchGui] =
|
||||
#if L==1 // ca
|
||||
"See the teaching guide of course" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"See the teaching guide of course" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"See the teaching guide of course"
|
||||
#elif L==4 // es
|
||||
"Ver la guía docente de la asignatura"
|
||||
#elif L==5 // fr
|
||||
"See the teaching guide of course" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver la guía docente de la asignatura" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"See the teaching guide of course" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"See the teaching guide of course" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"See the teaching guide of course" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See the teaching guide of course" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeSyl] =
|
||||
#if L==1 // ca
|
||||
"See the syllabus (lectures or practicals)" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"See the syllabus (lectures or practicals)" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"See the syllabus (lectures or practicals)"
|
||||
#elif L==4 // es
|
||||
"Ver el temario (teoría o prácticas)"
|
||||
#elif L==5 // fr
|
||||
"See the syllabus (lectures or practicals)" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver el temario (teoría o prácticas)" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"See the syllabus (lectures or practicals)" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"See the syllabus (lectures or practicals)" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"See the syllabus (lectures or practicals)" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See the syllabus (lectures or practicals)" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeBib] =
|
||||
#if L==1 // ca
|
||||
"See the bibliography" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"See the bibliography" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"See the bibliography"
|
||||
#elif L==4 // es
|
||||
"Ver la bibliografía"
|
||||
#elif L==5 // fr
|
||||
"See the bibliography" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver la bibliografía" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"See the bibliography" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"See the bibliography" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"See the bibliography" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See the bibliography" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeFAQ] =
|
||||
#if L==1 // ca
|
||||
"See the FAQ" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"See the FAQ" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"See the FAQ"
|
||||
#elif L==4 // es
|
||||
"Ver la FAQ"
|
||||
#elif L==5 // fr
|
||||
"See the FAQ" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver la FAQ" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"See the FAQ" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"See the FAQ" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"See the FAQ" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See the FAQ" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeCrsLnk] =
|
||||
#if L==1 // ca
|
||||
"See the links related to the course" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"See the links related to the course" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"See the links related to the course"
|
||||
#elif L==4 // es
|
||||
"Ver los enlaces relacionados con la asignatura"
|
||||
#elif L==5 // fr
|
||||
"See the links related to the course" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver los enlaces relacionados con la asignatura" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"See the links related to the course" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"See the links related to the course" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"See the links related to the course" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See the links related to the course" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActSeeCrsTT] =
|
||||
#if L==1 // ca
|
||||
"See the course timetable" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"See the course timetable" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"See the course timetable"
|
||||
#elif L==4 // es
|
||||
"Ver el horario de la asignatura"
|
||||
#elif L==5 // fr
|
||||
"See the course timetable" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver el horario de la asignatura" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"See the course timetable" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"See the course timetable" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"See the course timetable" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"See the course timetable" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActPrnCrsInf] =
|
||||
#if L==1 // ca
|
||||
"Print information on the course" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Print information on the course" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Print information on the course"
|
||||
#elif L==4 // es
|
||||
"Imprimir información sobre la asignatura"
|
||||
#elif L==5 // fr
|
||||
"Print information on the course" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Imprimir información sobre la asignatura" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Print information on the course" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Print information on the course" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Print information on the course" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Print information on the course" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActChgCrsDegCfg] =
|
||||
#if L==1 // ca
|
||||
"Change degree of course in its configuration" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change degree of course in its configuration" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change degree of course in its configuration"
|
||||
#elif L==4 // es
|
||||
"Cambiar titulación de asignatura en su configuración"
|
||||
#elif L==5 // fr
|
||||
"Change degree of course in its configuration" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar titulación de asignatura en su configuración" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change degree of course in its configuration" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change degree of course in its configuration" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change degree of course in its configuration" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change degree of course in its configuration" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActRenCrsShoCfg] =
|
||||
#if L==1 // ca
|
||||
"Change short name of course in its configuration" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change short name of course in its configuration" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change short name of course in its configuration"
|
||||
#elif L==4 // es
|
||||
"Cambiar nombre breve de asignatura en su configuración"
|
||||
#elif L==5 // fr
|
||||
"Change short name of course in its configuration" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar nombre breve de asignatura en su configuración" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change short name of course in its configuration" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change short name of course in its configuration" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change short name of course in its configuration" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change short name of course in its configuration" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActRenCrsFulCfg] =
|
||||
#if L==1 // ca
|
||||
"Change full name of course in its configuration" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change full name of course in its configuration" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change full name of course in its configuration"
|
||||
#elif L==4 // es
|
||||
"Cambiar nombre completo de asignatura en su configuración"
|
||||
#elif L==5 // fr
|
||||
"Change full name of course in its configuration" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar nombre completo de asignatura en su configuración" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change full name of course in its configuration" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change full name of course in its configuration" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change full name of course in its configuration" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change full name of course in its configuration" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActChgInsCrsCodCfg] =
|
||||
#if L==1 // ca
|
||||
"Change institutional code of course in its configuration" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change institutional code of course in its configuration" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change institutional code of course in its configuration"
|
||||
#elif L==4 // es
|
||||
"Cambiar código institucional de asignatura en su configuración"
|
||||
#elif L==5 // fr
|
||||
"Change institutional code of course in its configuration" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar código institucional de asignatura en su configuración" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change institutional code of course in its configuration" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change institutional code of course in its configuration" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change institutional code of course in its configuration" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change institutional code of course in its configuration" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActChgCrsYeaCfg] =
|
||||
#if L==1 // ca
|
||||
"Change year/semester of course in its configuration" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Change year/semester of course in its configuration" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Change year/semester of course in its configuration"
|
||||
#elif L==4 // es
|
||||
"Cambiar año/semestre de asignatura en su configuración"
|
||||
#elif L==5 // fr
|
||||
"Change year/semester of course in its configuration" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Cambiar año/semestre de asignatura en su configuración" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Change year/semester of course in its configuration" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Change year/semester of course in its configuration" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Change year/semester of course in its configuration" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Change year/semester of course in its configuration" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActEdiCrsInf] =
|
||||
#if L==1 // ca
|
||||
"Edit information about the course" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"Edit information about the course" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Edit information about the course"
|
||||
#elif L==4 // es
|
||||
"Editar la información de la asignatura"
|
||||
#elif L==5 // fr
|
||||
"Edit information about the course" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Editar la información de la asignatura" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Edit information about the course" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"Edit information about the course" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"Edit information about the course" // Precisa de tradução
|
||||
#elif L==10 // tr
|
||||
"Edit information about the course" // Çeviri lazim!
|
||||
#endif
|
||||
,
|
||||
[ActEdiTchGui] =
|
||||
|
|
Loading…
Reference in New Issue