Version 21.110: Jul 19, 2022 Changes in edition of program items.

This commit is contained in:
acanas 2022-07-19 18:44:56 +02:00
parent eb330da7f2
commit 84487984b0
8 changed files with 661 additions and 597 deletions

View File

@ -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}, [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}, [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}, [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}, [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}, [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 ActUp_PrgRsc, // #1923
ActDwnPrgRsc, // #1924 ActDwnPrgRsc, // #1924
ActFrmSeePrgRsc, // #1925 ActFrmSeePrgRsc, // #1925
ActEdiPrg, // #1926
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

@ -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 1925 #define Act_MAX_ACTION_COD 1926
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13 #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 ActChgInsCrsCodCfg (ActChgCrsSta + 13)
#define ActChgCrsYeaCfg (ActChgCrsSta + 14) #define ActChgCrsYeaCfg (ActChgCrsSta + 14)
#define ActEdiCrsInf (ActChgCrsSta + 15) #define ActEdiCrsInf (ActChgCrsSta + 15)
#define ActFrmNewPrgItm (ActChgCrsSta + 16) #define ActEdiPrg (ActChgCrsSta + 16)
#define ActFrmChgPrgItm (ActChgCrsSta + 17) #define ActFrmNewPrgItm (ActChgCrsSta + 17)
#define ActNewPrgItm (ActChgCrsSta + 18) #define ActFrmChgPrgItm (ActChgCrsSta + 18)
#define ActChgPrgItm (ActChgCrsSta + 19) #define ActNewPrgItm (ActChgCrsSta + 19)
#define ActReqRemPrgItm (ActChgCrsSta + 20) #define ActChgPrgItm (ActChgCrsSta + 20)
#define ActRemPrgItm (ActChgCrsSta + 21) #define ActReqRemPrgItm (ActChgCrsSta + 21)
#define ActHidPrgItm (ActChgCrsSta + 22) #define ActRemPrgItm (ActChgCrsSta + 22)
#define ActUnhPrgItm (ActChgCrsSta + 23) #define ActHidPrgItm (ActChgCrsSta + 23)
#define ActUp_PrgItm (ActChgCrsSta + 24) #define ActUnhPrgItm (ActChgCrsSta + 24)
#define ActDwnPrgItm (ActChgCrsSta + 25) #define ActUp_PrgItm (ActChgCrsSta + 25)
#define ActLftPrgItm (ActChgCrsSta + 26) #define ActDwnPrgItm (ActChgCrsSta + 26)
#define ActRgtPrgItm (ActChgCrsSta + 27) #define ActLftPrgItm (ActChgCrsSta + 27)
#define ActFrmSeePrgRsc (ActChgCrsSta + 28) #define ActRgtPrgItm (ActChgCrsSta + 28)
#define ActFrmEdiPrgRsc (ActChgCrsSta + 29) #define ActFrmSeePrgRsc (ActChgCrsSta + 29)
#define ActReqRemPrgRsc (ActChgCrsSta + 30) #define ActFrmEdiPrgRsc (ActChgCrsSta + 30)
#define ActRemPrgRsc (ActChgCrsSta + 31) #define ActReqRemPrgRsc (ActChgCrsSta + 31)
#define ActHidPrgRsc (ActChgCrsSta + 32) #define ActRemPrgRsc (ActChgCrsSta + 32)
#define ActUnhPrgRsc (ActChgCrsSta + 33) #define ActHidPrgRsc (ActChgCrsSta + 33)
#define ActUp_PrgRsc (ActChgCrsSta + 34) #define ActUnhPrgRsc (ActChgCrsSta + 34)
#define ActDwnPrgRsc (ActChgCrsSta + 35) #define ActUp_PrgRsc (ActChgCrsSta + 35)
#define ActEdiTchGui (ActChgCrsSta + 36) #define ActDwnPrgRsc (ActChgCrsSta + 36)
#define ActSeeSylLec (ActChgCrsSta + 37) #define ActEdiTchGui (ActChgCrsSta + 37)
#define ActSeeSylPra (ActChgCrsSta + 38) #define ActSeeSylLec (ActChgCrsSta + 38)
#define ActEdiSylLec (ActChgCrsSta + 39) #define ActSeeSylPra (ActChgCrsSta + 39)
#define ActEdiSylPra (ActChgCrsSta + 40) #define ActEdiSylLec (ActChgCrsSta + 40)
#define ActDelItmSylLec (ActChgCrsSta + 41) #define ActEdiSylPra (ActChgCrsSta + 41)
#define ActDelItmSylPra (ActChgCrsSta + 42) #define ActDelItmSylLec (ActChgCrsSta + 42)
#define ActUp_IteSylLec (ActChgCrsSta + 43) #define ActDelItmSylPra (ActChgCrsSta + 43)
#define ActUp_IteSylPra (ActChgCrsSta + 44) #define ActUp_IteSylLec (ActChgCrsSta + 44)
#define ActDwnIteSylLec (ActChgCrsSta + 45) #define ActUp_IteSylPra (ActChgCrsSta + 45)
#define ActDwnIteSylPra (ActChgCrsSta + 46) #define ActDwnIteSylLec (ActChgCrsSta + 46)
#define ActRgtIteSylLec (ActChgCrsSta + 47) #define ActDwnIteSylPra (ActChgCrsSta + 47)
#define ActRgtIteSylPra (ActChgCrsSta + 48) #define ActRgtIteSylLec (ActChgCrsSta + 48)
#define ActLftIteSylLec (ActChgCrsSta + 49) #define ActRgtIteSylPra (ActChgCrsSta + 49)
#define ActLftIteSylPra (ActChgCrsSta + 50) #define ActLftIteSylLec (ActChgCrsSta + 50)
#define ActInsIteSylLec (ActChgCrsSta + 51) #define ActLftIteSylPra (ActChgCrsSta + 51)
#define ActInsIteSylPra (ActChgCrsSta + 52) #define ActInsIteSylLec (ActChgCrsSta + 52)
#define ActModIteSylLec (ActChgCrsSta + 53) #define ActInsIteSylPra (ActChgCrsSta + 53)
#define ActModIteSylPra (ActChgCrsSta + 54) #define ActModIteSylLec (ActChgCrsSta + 54)
#define ActModIteSylPra (ActChgCrsSta + 55)
#define ActEdiBib (ActChgCrsSta + 55) #define ActEdiBib (ActChgCrsSta + 56)
#define ActEdiFAQ (ActChgCrsSta + 56) #define ActEdiFAQ (ActChgCrsSta + 57)
#define ActEdiCrsLnk (ActChgCrsSta + 57) #define ActEdiCrsLnk (ActChgCrsSta + 58)
#define ActChgFrcReaCrsInf (ActChgCrsSta + 58) #define ActChgFrcReaCrsInf (ActChgCrsSta + 59)
#define ActChgFrcReaTchGui (ActChgCrsSta + 59) #define ActChgFrcReaTchGui (ActChgCrsSta + 60)
#define ActChgFrcReaSylLec (ActChgCrsSta + 60) #define ActChgFrcReaSylLec (ActChgCrsSta + 61)
#define ActChgFrcReaSylPra (ActChgCrsSta + 61) #define ActChgFrcReaSylPra (ActChgCrsSta + 62)
#define ActChgFrcReaBib (ActChgCrsSta + 62) #define ActChgFrcReaBib (ActChgCrsSta + 63)
#define ActChgFrcReaFAQ (ActChgCrsSta + 63) #define ActChgFrcReaFAQ (ActChgCrsSta + 64)
#define ActChgFrcReaCrsLnk (ActChgCrsSta + 64) #define ActChgFrcReaCrsLnk (ActChgCrsSta + 65)
#define ActChgHavReaCrsInf (ActChgCrsSta + 65) #define ActChgHavReaCrsInf (ActChgCrsSta + 66)
#define ActChgHavReaTchGui (ActChgCrsSta + 66) #define ActChgHavReaTchGui (ActChgCrsSta + 67)
#define ActChgHavReaSylLec (ActChgCrsSta + 67) #define ActChgHavReaSylLec (ActChgCrsSta + 68)
#define ActChgHavReaSylPra (ActChgCrsSta + 68) #define ActChgHavReaSylPra (ActChgCrsSta + 69)
#define ActChgHavReaBib (ActChgCrsSta + 69) #define ActChgHavReaBib (ActChgCrsSta + 70)
#define ActChgHavReaFAQ (ActChgCrsSta + 70) #define ActChgHavReaFAQ (ActChgCrsSta + 71)
#define ActChgHavReaCrsLnk (ActChgCrsSta + 71) #define ActChgHavReaCrsLnk (ActChgCrsSta + 72)
#define ActSelInfSrcCrsInf (ActChgCrsSta + 72) #define ActSelInfSrcCrsInf (ActChgCrsSta + 73)
#define ActSelInfSrcTchGui (ActChgCrsSta + 73) #define ActSelInfSrcTchGui (ActChgCrsSta + 74)
#define ActSelInfSrcSylLec (ActChgCrsSta + 74) #define ActSelInfSrcSylLec (ActChgCrsSta + 75)
#define ActSelInfSrcSylPra (ActChgCrsSta + 75) #define ActSelInfSrcSylPra (ActChgCrsSta + 76)
#define ActSelInfSrcBib (ActChgCrsSta + 76) #define ActSelInfSrcBib (ActChgCrsSta + 77)
#define ActSelInfSrcFAQ (ActChgCrsSta + 77) #define ActSelInfSrcFAQ (ActChgCrsSta + 78)
#define ActSelInfSrcCrsLnk (ActChgCrsSta + 78) #define ActSelInfSrcCrsLnk (ActChgCrsSta + 79)
#define ActRcvURLCrsInf (ActChgCrsSta + 79) #define ActRcvURLCrsInf (ActChgCrsSta + 80)
#define ActRcvURLTchGui (ActChgCrsSta + 80) #define ActRcvURLTchGui (ActChgCrsSta + 81)
#define ActRcvURLSylLec (ActChgCrsSta + 81) #define ActRcvURLSylLec (ActChgCrsSta + 82)
#define ActRcvURLSylPra (ActChgCrsSta + 82) #define ActRcvURLSylPra (ActChgCrsSta + 83)
#define ActRcvURLBib (ActChgCrsSta + 83) #define ActRcvURLBib (ActChgCrsSta + 84)
#define ActRcvURLFAQ (ActChgCrsSta + 84) #define ActRcvURLFAQ (ActChgCrsSta + 85)
#define ActRcvURLCrsLnk (ActChgCrsSta + 85) #define ActRcvURLCrsLnk (ActChgCrsSta + 86)
#define ActRcvPagCrsInf (ActChgCrsSta + 86) #define ActRcvPagCrsInf (ActChgCrsSta + 87)
#define ActRcvPagTchGui (ActChgCrsSta + 87) #define ActRcvPagTchGui (ActChgCrsSta + 88)
#define ActRcvPagSylLec (ActChgCrsSta + 88) #define ActRcvPagSylLec (ActChgCrsSta + 89)
#define ActRcvPagSylPra (ActChgCrsSta + 89) #define ActRcvPagSylPra (ActChgCrsSta + 90)
#define ActRcvPagBib (ActChgCrsSta + 90) #define ActRcvPagBib (ActChgCrsSta + 91)
#define ActRcvPagFAQ (ActChgCrsSta + 91) #define ActRcvPagFAQ (ActChgCrsSta + 92)
#define ActRcvPagCrsLnk (ActChgCrsSta + 92) #define ActRcvPagCrsLnk (ActChgCrsSta + 93)
#define ActEditorCrsInf (ActChgCrsSta + 93) #define ActEditorCrsInf (ActChgCrsSta + 94)
#define ActEditorTchGui (ActChgCrsSta + 94) #define ActEditorTchGui (ActChgCrsSta + 95)
#define ActEditorSylLec (ActChgCrsSta + 95) #define ActEditorSylLec (ActChgCrsSta + 96)
#define ActEditorSylPra (ActChgCrsSta + 96) #define ActEditorSylPra (ActChgCrsSta + 97)
#define ActEditorBib (ActChgCrsSta + 97) #define ActEditorBib (ActChgCrsSta + 98)
#define ActEditorFAQ (ActChgCrsSta + 98) #define ActEditorFAQ (ActChgCrsSta + 99)
#define ActEditorCrsLnk (ActChgCrsSta + 99) #define ActEditorCrsLnk (ActChgCrsSta + 100)
#define ActPlaTxtEdiCrsInf (ActChgCrsSta + 100) #define ActPlaTxtEdiCrsInf (ActChgCrsSta + 101)
#define ActPlaTxtEdiTchGui (ActChgCrsSta + 101) #define ActPlaTxtEdiTchGui (ActChgCrsSta + 102)
#define ActPlaTxtEdiSylLec (ActChgCrsSta + 102) #define ActPlaTxtEdiSylLec (ActChgCrsSta + 103)
#define ActPlaTxtEdiSylPra (ActChgCrsSta + 103) #define ActPlaTxtEdiSylPra (ActChgCrsSta + 104)
#define ActPlaTxtEdiBib (ActChgCrsSta + 104) #define ActPlaTxtEdiBib (ActChgCrsSta + 105)
#define ActPlaTxtEdiFAQ (ActChgCrsSta + 105) #define ActPlaTxtEdiFAQ (ActChgCrsSta + 106)
#define ActPlaTxtEdiCrsLnk (ActChgCrsSta + 106) #define ActPlaTxtEdiCrsLnk (ActChgCrsSta + 107)
#define ActRchTxtEdiCrsInf (ActChgCrsSta + 107) #define ActRchTxtEdiCrsInf (ActChgCrsSta + 108)
#define ActRchTxtEdiTchGui (ActChgCrsSta + 108) #define ActRchTxtEdiTchGui (ActChgCrsSta + 109)
#define ActRchTxtEdiSylLec (ActChgCrsSta + 109) #define ActRchTxtEdiSylLec (ActChgCrsSta + 110)
#define ActRchTxtEdiSylPra (ActChgCrsSta + 110) #define ActRchTxtEdiSylPra (ActChgCrsSta + 111)
#define ActRchTxtEdiBib (ActChgCrsSta + 111) #define ActRchTxtEdiBib (ActChgCrsSta + 112)
#define ActRchTxtEdiFAQ (ActChgCrsSta + 112) #define ActRchTxtEdiFAQ (ActChgCrsSta + 113)
#define ActRchTxtEdiCrsLnk (ActChgCrsSta + 113) #define ActRchTxtEdiCrsLnk (ActChgCrsSta + 114)
#define ActRcvPlaTxtCrsInf (ActChgCrsSta + 114) #define ActRcvPlaTxtCrsInf (ActChgCrsSta + 115)
#define ActRcvPlaTxtTchGui (ActChgCrsSta + 115) #define ActRcvPlaTxtTchGui (ActChgCrsSta + 116)
#define ActRcvPlaTxtSylLec (ActChgCrsSta + 116) #define ActRcvPlaTxtSylLec (ActChgCrsSta + 117)
#define ActRcvPlaTxtSylPra (ActChgCrsSta + 117) #define ActRcvPlaTxtSylPra (ActChgCrsSta + 118)
#define ActRcvPlaTxtBib (ActChgCrsSta + 118) #define ActRcvPlaTxtBib (ActChgCrsSta + 119)
#define ActRcvPlaTxtFAQ (ActChgCrsSta + 119) #define ActRcvPlaTxtFAQ (ActChgCrsSta + 120)
#define ActRcvPlaTxtCrsLnk (ActChgCrsSta + 120) #define ActRcvPlaTxtCrsLnk (ActChgCrsSta + 121)
#define ActRcvRchTxtCrsInf (ActChgCrsSta + 121) #define ActRcvRchTxtCrsInf (ActChgCrsSta + 122)
#define ActRcvRchTxtTchGui (ActChgCrsSta + 122) #define ActRcvRchTxtTchGui (ActChgCrsSta + 123)
#define ActRcvRchTxtSylLec (ActChgCrsSta + 123) #define ActRcvRchTxtSylLec (ActChgCrsSta + 124)
#define ActRcvRchTxtSylPra (ActChgCrsSta + 124) #define ActRcvRchTxtSylPra (ActChgCrsSta + 125)
#define ActRcvRchTxtBib (ActChgCrsSta + 125) #define ActRcvRchTxtBib (ActChgCrsSta + 126)
#define ActRcvRchTxtFAQ (ActChgCrsSta + 126) #define ActRcvRchTxtFAQ (ActChgCrsSta + 127)
#define ActRcvRchTxtCrsLnk (ActChgCrsSta + 127) #define ActRcvRchTxtCrsLnk (ActChgCrsSta + 128)
#define ActPrnCrsTT (ActChgCrsSta + 128) #define ActPrnCrsTT (ActChgCrsSta + 129)
#define ActEdiCrsTT (ActChgCrsSta + 129) #define ActEdiCrsTT (ActChgCrsSta + 130)
#define ActChgCrsTT (ActChgCrsSta + 130) #define ActChgCrsTT (ActChgCrsSta + 131)
#define ActChgCrsTT1stDay (ActChgCrsSta + 131) #define ActChgCrsTT1stDay (ActChgCrsSta + 132)
/*****************************************************************************/ /*****************************************************************************/
/***************************** Assessment tab ********************************/ /***************************** Assessment tab ********************************/

View File

@ -606,10 +606,11 @@ 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 21.109 (2022-07-19)" #define Log_PLATFORM_VERSION "SWAD 21.110 (2022-07-19)"
#define CSS_FILE "swad21.107.1.css" #define CSS_FILE "swad21.107.1.css"
#define JS_FILE "swad21.100.js" #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.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.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) Version 21.107.1: Jul 17, 2022 Changes in layout of resources of program item. (? lines)

View File

@ -106,10 +106,13 @@ static struct
/*****************************************************************************/ /*****************************************************************************/
static void Prg_PutIconsListItems (__attribute__((unused)) void *Args); 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_PutIconToCreateNewItem (void);
static void Prg_PutButtonToCreateNewItem (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); unsigned NumItem,struct Prg_Item *Item);
static void Prg_WriteRowToCreateItem (long ItmCod,unsigned FormLevel); static void Prg_WriteRowToCreateItem (long ItmCod,unsigned FormLevel);
static void Prg_SetTitleClass (char **TitleClass,unsigned Level,bool LightStyle); 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) void Prg_ShowCourseProgram (void)
{ {
struct Prg_ItemRange ToHighlight;
/***** Get list of program items *****/ /***** Get list of program items *****/
Prg_GetListItems (); Prg_GetListItems ();
/***** Show course program without highlighting any item *****/ /***** Show course program without highlighting any item *****/
Prg_SetItemRangeEmpty (&ToHighlight); Prg_ShowAllItems (Prg_VIEW,NULL,-1L,-1L,0);
Prg_ShowCourseProgramHighlightingItem (&ToHighlight);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); 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 *****/ /***** Show all program items *****/
Prg_ShowAllItems (Prg_EDIT_LIST,ToHighlight,-1L,-1L,0); 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 ****************************/ /************************* Show all program items ****************************/
/*****************************************************************************/ /*****************************************************************************/
void Prg_ShowAllItems (Prg_ListingItem_t ListingItem, void Prg_ShowAllItems (Prg_ListingType_t ListingType,
const struct Prg_ItemRange *ToHighlight, const struct Prg_ItemRange *ToHighlight,
long ParentItmCod,long ItmCod,unsigned FormLevel) long ParentItmCod,long ItmCod,unsigned FormLevel)
{ {
@ -203,6 +215,16 @@ void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
unsigned NumItem; unsigned NumItem;
struct Prg_Item Item; struct Prg_Item Item;
static bool FirstTBodyOpen = false; 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 *****/ /***** Create numbers and hidden levels *****/
Prg_SetMaxItemLevel (Prg_CalculateMaxItemLevel ()); Prg_SetMaxItemLevel (Prg_CalculateMaxItemLevel ());
@ -210,7 +232,7 @@ void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
/***** Begin box *****/ /***** Begin box *****/
Box_BoxBegin ("100%",Txt_Course_program, Box_BoxBegin ("100%",Txt_Course_program,
Prg_PutIconsListItems,NULL, FunctionToDrawContextualIcons[ListingType],NULL,
Hlp_COURSE_Program,Box_NOT_CLOSABLE); Hlp_COURSE_Program,Box_NOT_CLOSABLE);
/***** Table *****/ /***** Table *****/
@ -233,23 +255,24 @@ void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
Prg_GetDataOfItemByCod (&Item); Prg_GetDataOfItemByCod (&Item);
/* Begin range to highlight? */ /* Begin range to highlight? */
if (Item.Hierarchy.Index == ToHighlight->Begin) // Begin of the highlighted range if (ToHighlight)
{ if (Item.Hierarchy.Index == ToHighlight->Begin) // Begin of the highlighted range
if (FirstTBodyOpen)
{ {
HTM_TBODY_End (); // 1st tbody end if (FirstTBodyOpen)
FirstTBodyOpen = false; {
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 */ /* Show form to create item */
switch (ListingItem) switch (ListingType)
{ {
case Prg_PRINT: case Prg_PRINT:
case Prg_VIEW: case Prg_VIEW:
case Prg_EDIT_LIST: case Prg_EDIT_LIST:
Prg_WriteRowItem (ListingItem,NumItem,&Item); Prg_WriteRowItem (ListingType,NumItem,&Item);
break; break;
case Prg_NEW_ITEM: case Prg_NEW_ITEM:
Prg_WriteRowItem (Prg_EDIT_LIST,NumItem,&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_ITEM:
case Prg_EDIT_RESOURCES: case Prg_EDIT_RESOURCES:
case Prg_END_EDIT_RES: case Prg_END_EDIT_RES:
Prg_WriteRowItem (Item.Hierarchy.ItmCod == ItmCod ? ListingItem : Prg_WriteRowItem (Item.Hierarchy.ItmCod == ItmCod ? ListingType :
Prg_EDIT_LIST, Prg_EDIT_LIST,
NumItem,&Item); NumItem,&Item);
break; break;
} }
/* End range to highlight? */ /* End range to highlight? */
if (Item.Hierarchy.Index == ToHighlight->End) // End of the highlighted range 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_End (); // Highlighted tbody end
HTM_TBODY_Begin (NULL); // 3rd tbody begin if (NumItem < Prg_Gbl.List.NumItems - 1) // Not the last item
} HTM_TBODY_Begin (NULL); // 3rd tbody begin
}
The_ChangeRowColor (); The_ChangeRowColor ();
} }
/***** Create item at the end? *****/ /***** Create item at the end? *****/
if (ItmCod <= 0 && ListingItem == Prg_NEW_ITEM) if (ItmCod <= 0 && ListingType == Prg_NEW_ITEM)
Prg_WriteRowToCreateItem (-1L,1); Prg_WriteRowToCreateItem (-1L,1);
/***** End table *****/ /***** End table *****/
@ -285,7 +309,7 @@ void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
HTM_TABLE_End (); HTM_TABLE_End ();
/***** Button to create a new program item *****/ /***** Button to create a new program item *****/
if (Prg_CheckIfICanCreateItems ()) if (Prg_CheckIfICanEditProgram ())
Prg_PutButtonToCreateNewItem (); Prg_PutButtonToCreateNewItem ();
/***** End box *****/ /***** End box *****/
@ -299,7 +323,7 @@ void Prg_ShowAllItems (Prg_ListingItem_t ListingItem,
/******************* Check if I can create program items *********************/ /******************* Check if I can create program items *********************/
/*****************************************************************************/ /*****************************************************************************/
bool Prg_CheckIfICanCreateItems (void) bool Prg_CheckIfICanEditProgram (void)
{ {
return Gbl.Usrs.Me.Role.Logged == Rol_TCH || return Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM; Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM;
@ -311,14 +335,51 @@ bool Prg_CheckIfICanCreateItems (void)
static void Prg_PutIconsListItems (__attribute__((unused)) void *Args) 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 *****/ /***** Put icon to create a new program item *****/
if (Prg_CheckIfICanCreateItems ()) if (Prg_CheckIfICanEditProgram ())
Prg_PutIconToCreateNewItem (); Prg_PutIconToCreateNewItem ();
/***** Put icon to show a figure *****/ /***** Put icon to show a figure *****/
Fig_PutIconToShowFigure (Fig_COURSE_PROGRAMS); 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 ********************/ /****************** Put icon to create a new program item ********************/
/*****************************************************************************/ /*****************************************************************************/
@ -350,7 +411,7 @@ static void Prg_PutButtonToCreateNewItem (void)
/************************** Show one program item ****************************/ /************************** 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) unsigned NumItem,struct Prg_Item *Item)
{ {
static unsigned UniqueId = 0; static unsigned UniqueId = 0;
@ -379,7 +440,7 @@ static void Prg_WriteRowItem (Prg_ListingItem_t ListingItem,
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Forms to remove/edit this program item *****/ /***** Forms to remove/edit this program item *****/
switch (ListingItem) switch (ListingType)
{ {
case Prg_EDIT_LIST: case Prg_EDIT_LIST:
case Prg_EDIT_ITEM: case Prg_EDIT_ITEM:
@ -411,7 +472,7 @@ static void Prg_WriteRowItem (Prg_ListingItem_t ListingItem,
/***** Title *****/ /***** Title *****/
ColSpan = (Prg_GetMaxItemLevel () + 2) - Item->Hierarchy.Level; ColSpan = (Prg_GetMaxItemLevel () + 2) - Item->Hierarchy.Level;
switch (ListingItem) switch (ListingType)
{ {
case Prg_PRINT: case Prg_PRINT:
HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN %s\"", 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) if (asprintf (&Id,"scd_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
switch (ListingItem) switch (ListingType)
{ {
case Prg_PRINT: case Prg_PRINT:
HTM_TD_Begin ("id=\"%s\" class=\"PRG_DATE LT %s_%s\"", 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 */ /* Begin text and resources */
ColSpan += 2; ColSpan += 2;
switch (ListingItem) switch (ListingType)
{ {
case Prg_PRINT: case Prg_PRINT:
HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN\"",ColSpan); HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN\"",ColSpan);
@ -483,7 +544,7 @@ static void Prg_WriteRowItem (Prg_ListingItem_t ListingItem,
} }
/* Item text / form */ /* Item text / form */
switch (ListingItem) switch (ListingType)
{ {
case Prg_EDIT_ITEM: case Prg_EDIT_ITEM:
/* Form to change item title, dates and text */ /* Form to change item title, dates and text */
@ -507,7 +568,7 @@ static void Prg_WriteRowItem (Prg_ListingItem_t ListingItem,
} }
/* List of resources */ /* List of resources */
PrgRsc_ListItemResources (ListingItem,Item->Hierarchy.ItmCod); PrgRsc_ListItemResources (ListingType,Item->Hierarchy.ItmCod);
/* End text and resources */ /* End text and resources */
HTM_TD_End (); HTM_TD_End ();
@ -1151,7 +1212,7 @@ void Prg_ReqRemItem (void)
/***** Show program items highlighting subtree *****/ /***** Show program items highlighting subtree *****/
Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (Item.Hierarchy.ItmCod), Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (Item.Hierarchy.ItmCod),
&ToHighlight); &ToHighlight);
Prg_ShowCourseProgramHighlightingItem (&ToHighlight); Prg_EditCourseProgramHighlightingItem (&ToHighlight);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();
@ -1166,7 +1227,6 @@ void Prg_RemoveItem (void)
extern const char *Txt_Item_X_removed; extern const char *Txt_Item_X_removed;
struct Prg_Item Item; struct Prg_Item Item;
struct Prg_ItemRange ToRemove; struct Prg_ItemRange ToRemove;
struct Prg_ItemRange ToHighlight;
/***** Get list of program items *****/ /***** Get list of program items *****/
Prg_GetListItems (); Prg_GetListItems ();
@ -1192,8 +1252,7 @@ void Prg_RemoveItem (void)
Prg_GetListItems (); Prg_GetListItems ();
/***** Show course program without highlighting any item *****/ /***** Show course program without highlighting any item *****/
Prg_SetItemRangeEmpty (&ToHighlight); Prg_EditCourseProgramHighlightingItem (NULL);
Prg_ShowCourseProgramHighlightingItem (&ToHighlight);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();
@ -1233,7 +1292,7 @@ static void Prg_HideOrUnhideItem (bool Hide)
/***** Show program items highlighting subtree *****/ /***** Show program items highlighting subtree *****/
Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (Item.Hierarchy.ItmCod), Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (Item.Hierarchy.ItmCod),
&ToHighlight); &ToHighlight);
Prg_ShowCourseProgramHighlightingItem (&ToHighlight); Prg_EditCourseProgramHighlightingItem (&ToHighlight);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();
@ -1295,18 +1354,19 @@ static void Prg_MoveUpDownItem (Prg_MoveUpDown_t UpDown)
/* Update list of program items */ /* Update list of program items */
Prg_FreeListItems (); Prg_FreeListItems ();
Prg_GetListItems (); Prg_GetListItems ();
/* Show program items highlighting subtree */
Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (Item.Hierarchy.ItmCod), Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (Item.Hierarchy.ItmCod),
&ToHighlight); &ToHighlight);
Prg_EditCourseProgramHighlightingItem (&ToHighlight);
} }
else else
{ {
/* Show course program without highlighting any item */
Ale_ShowAlert (Ale_WARNING,Txt_Movement_not_allowed); 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 *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();
} }
@ -1492,18 +1552,19 @@ static void Prg_MoveLeftRightItem (Prg_MoveLeftRight_t LeftRight)
/* Update list of program items */ /* Update list of program items */
Prg_FreeListItems (); Prg_FreeListItems ();
Prg_GetListItems (); Prg_GetListItems ();
/* Show program items highlighting subtree */
Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (Item.Hierarchy.ItmCod), Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (Item.Hierarchy.ItmCod),
&ToHighlight); &ToHighlight);
Prg_EditCourseProgramHighlightingItem (&ToHighlight);
} }
else else
{ {
/* Show course program without highlighting any item */
Ale_ShowAlert (Ale_WARNING,Txt_Movement_not_allowed); 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 *****/ /***** Free list of program items *****/
Prg_FreeListItems (); 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 ******/ /****** 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) static void Prg_SetItemRangeOnlyItem (unsigned Index,struct Prg_ItemRange *ItemRange)
{ {
/***** List of items must be filled *****/ /***** List of items must be filled *****/
@ -1590,7 +1636,6 @@ void Prg_RequestCreateItem (void)
unsigned NumItem; unsigned NumItem;
long ItmCodBeforeForm; long ItmCodBeforeForm;
unsigned FormLevel; unsigned FormLevel;
struct Prg_ItemRange ToHighlight;
/***** Get list of program items *****/ /***** Get list of program items *****/
Prg_GetListItems (); Prg_GetListItems ();
@ -1614,9 +1659,7 @@ void Prg_RequestCreateItem (void)
} }
/***** Show current program items, if any *****/ /***** Show current program items, if any *****/
Prg_SetItemRangeEmpty (&ToHighlight); Prg_ShowAllItems (Prg_NEW_ITEM,NULL,ParentItmCod,ItmCodBeforeForm,FormLevel);
Prg_ShowAllItems (Prg_NEW_ITEM,
&ToHighlight,ParentItmCod,ItmCodBeforeForm,FormLevel);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();
@ -1626,7 +1669,6 @@ void Prg_RequestChangeItem (void)
{ {
long ItmCod; long ItmCod;
unsigned FormLevel; unsigned FormLevel;
struct Prg_ItemRange ToHighlight;
/***** Get list of program items *****/ /***** Get list of program items *****/
Prg_GetListItems (); Prg_GetListItems ();
@ -1638,9 +1680,7 @@ void Prg_RequestChangeItem (void)
FormLevel = 0; FormLevel = 0;
/***** Show current program items, if any *****/ /***** Show current program items, if any *****/
Prg_SetItemRangeEmpty (&ToHighlight); Prg_ShowAllItems (Prg_EDIT_ITEM,NULL,-1L,ItmCod,FormLevel);
Prg_ShowAllItems (Prg_EDIT_ITEM,
&ToHighlight,-1L,ItmCod,FormLevel);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();
@ -1843,7 +1883,7 @@ void Prg_ReceiveFormNewItem (void)
/***** Show program items highlighting subtree *****/ /***** Show program items highlighting subtree *****/
Prg_SetItemRangeOnlyItem (NewItem.Hierarchy.Index,&ToHighlight); Prg_SetItemRangeOnlyItem (NewItem.Hierarchy.Index,&ToHighlight);
Prg_ShowCourseProgramHighlightingItem (&ToHighlight); Prg_EditCourseProgramHighlightingItem (&ToHighlight);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();
@ -1894,7 +1934,7 @@ void Prg_ReceiveFormChgItem (void)
/***** Show program items highlighting subtree *****/ /***** Show program items highlighting subtree *****/
Prg_SetItemRangeOnlyItem (NewItem.Hierarchy.Index,&ToHighlight); Prg_SetItemRangeOnlyItem (NewItem.Hierarchy.Index,&ToHighlight);
Prg_ShowCourseProgramHighlightingItem (&ToHighlight); Prg_EditCourseProgramHighlightingItem (&ToHighlight);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();

View File

@ -71,7 +71,7 @@ typedef enum
Prg_MOVE_RIGHT, Prg_MOVE_RIGHT,
} Prg_MoveLeftRight_t; } Prg_MoveLeftRight_t;
#define Prg_NUM_LISTING_ITEM_TYPES 7 #define Prg_NUM_LISTING_TYPES 7
typedef enum typedef enum
{ {
Prg_PRINT, // List items ready to be printed 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_ITEM, // Form to edit a selected item
Prg_EDIT_RESOURCES, // List resources of a selected item for edition Prg_EDIT_RESOURCES, // List resources of a selected item for edition
Prg_END_EDIT_RES, // List resources of a selected item after edition Prg_END_EDIT_RES, // List resources of a selected item after edition
} Prg_ListingItem_t; } Prg_ListingType_t;
/*****************************************************************************/ /*****************************************************************************/
/***************************** Public prototypes *****************************/ /***************************** Public prototypes *****************************/
/*****************************************************************************/ /*****************************************************************************/
void Prg_ShowCourseProgram (void); 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, const struct Prg_ItemRange *ToHighlight,
long ParentItmCod,long ItmCod,unsigned FormLevel); long ParentItmCod,long ItmCod,unsigned FormLevel);
bool Prg_CheckIfICanCreateItems (void); bool Prg_CheckIfICanEditProgram (void);
void Prg_PutParams (void *ItmCod); void Prg_PutParams (void *ItmCod);
void Prg_GetListItems (void); void Prg_GetListItems (void);
@ -118,8 +119,6 @@ void Prg_MoveDownItem (void);
void Prg_MoveLeftItem (void); void Prg_MoveLeftItem (void);
void Prg_MoveRightItem (void); void Prg_MoveRightItem (void);
void Prg_SetItemRangeEmpty (struct Prg_ItemRange *ItemRange);
//-------------------------------- Figures ------------------------------------ //-------------------------------- Figures ------------------------------------
void Prg_GetAndShowCourseProgramStats (void); // TODO: Change function from assignments to schedule void Prg_GetAndShowCourseProgramStats (void); // TODO: Change function from assignments to schedule

View File

@ -95,7 +95,6 @@ void PrgRsc_ViewResources (void)
{ {
long ItmCod; long ItmCod;
unsigned FormLevel; unsigned FormLevel;
struct Prg_ItemRange ToHighlight;
/***** Get list of program items *****/ /***** Get list of program items *****/
Prg_GetListItems (); Prg_GetListItems ();
@ -107,9 +106,7 @@ void PrgRsc_ViewResources (void)
FormLevel = 0; FormLevel = 0;
/***** Show current program items, if any *****/ /***** Show current program items, if any *****/
Prg_SetItemRangeEmpty (&ToHighlight); Prg_ShowAllItems (Prg_END_EDIT_RES,NULL,-1L,ItmCod,FormLevel);
Prg_ShowAllItems (Prg_END_EDIT_RES,
&ToHighlight,-1L,ItmCod,FormLevel);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();
@ -123,7 +120,6 @@ void PrgRsc_EditResources (void)
{ {
long ItmCod; long ItmCod;
unsigned FormLevel; unsigned FormLevel;
struct Prg_ItemRange ToHighlight;
/***** Get list of program items *****/ /***** Get list of program items *****/
Prg_GetListItems (); Prg_GetListItems ();
@ -135,9 +131,7 @@ void PrgRsc_EditResources (void)
FormLevel = 0; FormLevel = 0;
/***** Show current program items, if any *****/ /***** Show current program items, if any *****/
Prg_SetItemRangeEmpty (&ToHighlight); Prg_ShowAllItems (Prg_EDIT_RESOURCES,NULL,-1L,ItmCod,FormLevel);
Prg_ShowAllItems (Prg_EDIT_RESOURCES,
&ToHighlight,-1L,ItmCod,FormLevel);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();
@ -147,7 +141,7 @@ void PrgRsc_EditResources (void)
/****************************** List resources *******************************/ /****************************** 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 *Hlp_COURSE_Program;
extern const char *Txt_Remove_resource; extern const char *Txt_Remove_resource;
@ -156,7 +150,7 @@ void PrgRsc_ListItemResources (Prg_ListingItem_t ListingItem,long ItmCod)
unsigned NumRsc; unsigned NumRsc;
unsigned NumResources; unsigned NumResources;
struct PrgRsc_Resource Resource; struct PrgRsc_Resource Resource;
static bool GetHiddenResources[Prg_NUM_LISTING_ITEM_TYPES] = static bool GetHiddenResources[Prg_NUM_LISTING_TYPES] =
{ {
[Prg_PRINT ] = false, [Prg_PRINT ] = false,
[Prg_VIEW ] = false, [Prg_VIEW ] = false,
@ -166,7 +160,17 @@ void PrgRsc_ListItemResources (Prg_ListingItem_t ListingItem,long ItmCod)
[Prg_EDIT_RESOURCES] = true, [Prg_EDIT_RESOURCES] = true,
[Prg_END_EDIT_RES ] = false, [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_PRINT ] = false,
[Prg_VIEW ] = false, [Prg_VIEW ] = false,
@ -183,86 +187,92 @@ void PrgRsc_ListItemResources (Prg_ListingItem_t ListingItem,long ItmCod)
/***** Get list of item resources from database *****/ /***** Get list of item resources from database *****/
NumResources = Prg_DB_GetListResources (&mysql_res,ItmCod, NumResources = Prg_DB_GetListResources (&mysql_res,ItmCod,
GetHiddenResources[ListingItem]); GetHiddenResources[ListingType]);
/***** Begin section *****/ if (NumResources || ShowEmptyList[ListingType])
if (FeaturedList[ListingItem]) {
HTM_SECTION_Begin (PrgRsc_RESOURCE_SECTION_ID); /***** Begin section *****/
if (FeaturedList[ListingType])
HTM_SECTION_Begin (PrgRsc_RESOURCE_SECTION_ID);
/***** Show possible alerts *****/ /***** Show possible alerts *****/
if (FeaturedList[ListingItem]) if (FeaturedList[ListingType])
switch (Gbl.Action.Act) 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: case Prg_EDIT_LIST:
/* Alert with button to remove resource */ case Prg_NEW_ITEM:
Ale_ShowLastAlertAndButton (ActRemPrgRsc,PrgRsc_RESOURCE_SECTION_ID,NULL, case Prg_EDIT_ITEM:
PrgRsc_PutParams,&PrgSrc_RscCodToBeRemoved, case Prg_END_EDIT_RES:
Btn_REMOVE_BUTTON,Txt_Remove_resource); 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; break;
default: default:
Ale_ShowAlerts (PrgRsc_RESOURCE_SECTION_ID); Box_BoxBegin ("100%",Txt_Resources,
NULL,NULL,
Hlp_COURSE_Program,Box_NOT_CLOSABLE);
break; break;
} }
/***** Begin box *****/ /***** Table *****/
switch (ListingItem) HTM_TABLE_BeginWideMarginPadding (2);
{ HTM_TBODY_Begin (NULL);
case Prg_EDIT_LIST:
case Prg_NEW_ITEM: /***** Write all item resources *****/
case Prg_EDIT_ITEM: for (NumRsc = 0;
case Prg_END_EDIT_RES: NumRsc < NumResources;
Box_BoxBegin ("100%",Txt_Resources, NumRsc++)
PrgRsc_PutIconsEditResources,&ItmCod, {
Hlp_COURSE_Program,Box_NOT_CLOSABLE); /* Get data of this item resource */
break; PrgRsc_GetDataOfResource (&Resource,&mysql_res);
case Prg_EDIT_RESOURCES:
Box_BoxBegin ("100%",Txt_Resources, /* Show item */
PrgRsc_PutIconsViewResources,&ItmCod, switch (ListingType)
Hlp_COURSE_Program,Box_NOT_CLOSABLE); {
break; case Prg_EDIT_RESOURCES:
default: PrgRsc_WriteRowEditResource (NumRsc,NumResources,&Resource);
Box_BoxBegin ("100%",Txt_Resources, break;
NULL,NULL, default:
Hlp_COURSE_Program,Box_NOT_CLOSABLE); PrgRsc_WriteRowViewResource (NumRsc,&Resource);
break; break;
}
The_ChangeRowColor ();
}
/***** End table *****/
HTM_TBODY_End ();
HTM_TABLE_End ();
/***** End box *****/
Box_BoxEnd ();
/***** End section *****/
if (FeaturedList[ListingType])
HTM_SECTION_End ();
} }
/***** Table *****/ /***** Free structure that stores the query result *****/
HTM_TABLE_BeginWideMarginPadding (2); DB_FreeMySQLResult (&mysql_res);
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 ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -274,7 +284,7 @@ static void PrgRsc_PutIconsViewResources (void *ItmCod)
/***** Put icon to create a new item resource *****/ /***** Put icon to create a new item resource *****/
if (ItmCod) if (ItmCod)
if (*((long *) ItmCod) > 0) if (*((long *) ItmCod) > 0)
if (Prg_CheckIfICanCreateItems ()) if (Prg_CheckIfICanEditProgram ())
PrgSrc_PutIconToViewResources (*((long *) ItmCod)); PrgSrc_PutIconToViewResources (*((long *) ItmCod));
} }
@ -283,7 +293,7 @@ static void PrgRsc_PutIconsEditResources (void *ItmCod)
/***** Put icon to create a new item resource *****/ /***** Put icon to create a new item resource *****/
if (ItmCod) if (ItmCod)
if (*((long *) ItmCod) > 0) if (*((long *) ItmCod) > 0)
if (Prg_CheckIfICanCreateItems ()) if (Prg_CheckIfICanEditProgram ())
PrgSrc_PutIconToEditResources (*((long *) ItmCod)); PrgSrc_PutIconToEditResources (*((long *) ItmCod));
} }
@ -527,7 +537,6 @@ void PrgRsc_ReqRemResource (void)
struct PrgRsc_Resource Resource; struct PrgRsc_Resource Resource;
long ItmCod; long ItmCod;
unsigned FormLevel; unsigned FormLevel;
struct Prg_ItemRange ToHighlight;
/***** Get list of program items *****/ /***** Get list of program items *****/
Prg_GetListItems (); Prg_GetListItems ();
@ -549,9 +558,7 @@ void PrgRsc_ReqRemResource (void)
FormLevel = Prg_GetLevelFromNumItem (Prg_GetNumItemFromItmCod (Resource.ItmCod)); FormLevel = Prg_GetLevelFromNumItem (Prg_GetNumItemFromItmCod (Resource.ItmCod));
/***** Show current program items, if any *****/ /***** Show current program items, if any *****/
Prg_SetItemRangeEmpty (&ToHighlight); Prg_ShowAllItems (Prg_EDIT_RESOURCES,NULL,-1L,ItmCod,FormLevel);
Prg_ShowAllItems (Prg_EDIT_RESOURCES,
&ToHighlight,-1L,ItmCod,FormLevel);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();
@ -567,7 +574,6 @@ void PrgRsc_RemoveResource (void)
struct PrgRsc_Resource Resource; struct PrgRsc_Resource Resource;
long ItmCod; long ItmCod;
unsigned FormLevel; unsigned FormLevel;
struct Prg_ItemRange ToHighlight;
/***** Get list of program items *****/ /***** Get list of program items *****/
Prg_GetListItems (); Prg_GetListItems ();
@ -590,9 +596,7 @@ void PrgRsc_RemoveResource (void)
FormLevel = Prg_GetLevelFromNumItem (Prg_GetNumItemFromItmCod (Resource.ItmCod)); FormLevel = Prg_GetLevelFromNumItem (Prg_GetNumItemFromItmCod (Resource.ItmCod));
/***** Show current program items, if any *****/ /***** Show current program items, if any *****/
Prg_SetItemRangeEmpty (&ToHighlight); Prg_ShowAllItems (Prg_EDIT_RESOURCES,NULL,-1L,ItmCod,FormLevel);
Prg_ShowAllItems (Prg_EDIT_RESOURCES,
&ToHighlight,-1L,ItmCod,FormLevel);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();
@ -617,7 +621,6 @@ static void PrgRsc_HideOrUnhideResource (bool Hide)
struct PrgRsc_Resource Resource; struct PrgRsc_Resource Resource;
long ItmCod; long ItmCod;
unsigned FormLevel; unsigned FormLevel;
struct Prg_ItemRange ToHighlight;
/***** Get list of program items *****/ /***** Get list of program items *****/
Prg_GetListItems (); Prg_GetListItems ();
@ -636,9 +639,7 @@ static void PrgRsc_HideOrUnhideResource (bool Hide)
FormLevel = Prg_GetLevelFromNumItem (Prg_GetNumItemFromItmCod (Resource.ItmCod)); FormLevel = Prg_GetLevelFromNumItem (Prg_GetNumItemFromItmCod (Resource.ItmCod));
/***** Show current program items, if any *****/ /***** Show current program items, if any *****/
Prg_SetItemRangeEmpty (&ToHighlight); Prg_ShowAllItems (Prg_EDIT_RESOURCES,NULL,-1L,ItmCod,FormLevel);
Prg_ShowAllItems (Prg_EDIT_RESOURCES,
&ToHighlight,-1L,ItmCod,FormLevel);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();
@ -665,7 +666,6 @@ static void PrgRsc_MoveUpDownResource (PrgRsc_MoveUpDown_t UpDown)
struct PrgRsc_Rsc Rsc2; struct PrgRsc_Rsc Rsc2;
long ItmCod; long ItmCod;
unsigned FormLevel; unsigned FormLevel;
struct Prg_ItemRange ToHighlight;
bool Success = false; bool Success = false;
static unsigned (*GetOtherRscInd[PrgRsc_NUM_MOVEMENTS_UP_DOWN])(long ItmCod,unsigned RscInd) = 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)); FormLevel = Prg_GetLevelFromNumItem (Prg_GetNumItemFromItmCod (Resource.ItmCod));
/***** Show current program items, if any *****/ /***** Show current program items, if any *****/
Prg_SetItemRangeEmpty (&ToHighlight); Prg_ShowAllItems (Prg_EDIT_RESOURCES,NULL,-1L,ItmCod,FormLevel);
Prg_ShowAllItems (Prg_EDIT_RESOURCES,
&ToHighlight,-1L,ItmCod,FormLevel);
/***** Free list of program items *****/ /***** Free list of program items *****/
Prg_FreeListItems (); Prg_FreeListItems ();

View File

@ -55,7 +55,7 @@ struct PrgRsc_Resource
void PrgRsc_ViewResources (void); void PrgRsc_ViewResources (void);
void PrgRsc_EditResources (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); void PrgRsc_RequestCreateResource (void);

View File

@ -5419,6 +5419,328 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
"See educational schedule of course" // Precisa de tradução "See educational schedule of course" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"See educational schedule of course" // Çeviri lazim! "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&iacute;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&iacute;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&iacute;a o pr&aacute;cticas)"
#elif L==5 // fr
"See the syllabus (lectures or practicals)" // Besoin de traduction
#elif L==6 // gn
"Ver el temario (teor&iacute;a o pr&aacute;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&iacute;a"
#elif L==5 // fr
"See the bibliography" // Besoin de traduction
#elif L==6 // gn
"Ver la bibliograf&iacute;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&oacute;n sobre la asignatura"
#elif L==5 // fr
"Print information on the course" // Besoin de traduction
#elif L==6 // gn
"Imprimir informaci&oacute;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&oacute;n de asignatura en su configuraci&oacute;n"
#elif L==5 // fr
"Change degree of course in its configuration" // Besoin de traduction
#elif L==6 // gn
"Cambiar titulaci&oacute;n de asignatura en su configuraci&oacute;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&oacute;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&oacute;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&oacute;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&oacute;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&oacute;digo institucional de asignatura en su configuraci&oacute;n"
#elif L==5 // fr
"Change institutional code of course in its configuration" // Besoin de traduction
#elif L==6 // gn
"Cambiar c&oacute;digo institucional de asignatura en su configuraci&oacute;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&ntilde;o/semestre de asignatura en su configuraci&oacute;n"
#elif L==5 // fr
"Change year/semester of course in its configuration" // Besoin de traduction
#elif L==6 // gn
"Cambiar a&ntilde;o/semestre de asignatura en su configuraci&oacute;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&oacute;n de la asignatura"
#elif L==5 // fr
"Edit information about the course" // Besoin de traduction
#elif L==6 // gn
"Editar la informaci&oacute;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&oacute;n did&aacute;ctica de la asignatura"
#elif L==5 // fr
"Edit educational schedule of course" // Besoin de traduction
#elif L==6 // gn
"Editar programaci&oacute;n did&aacute;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 #endif
, ,
[ActFrmNewPrgItm] = [ActFrmNewPrgItm] =
@ -5879,305 +6201,6 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
"Move down resource" // Precisa de tradução "Move down resource" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Move down resource" // Çeviri lazim! "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&iacute;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&iacute;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&iacute;a o pr&aacute;cticas)"
#elif L==5 // fr
"See the syllabus (lectures or practicals)" // Besoin de traduction
#elif L==6 // gn
"Ver el temario (teor&iacute;a o pr&aacute;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&iacute;a"
#elif L==5 // fr
"See the bibliography" // Besoin de traduction
#elif L==6 // gn
"Ver la bibliograf&iacute;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&oacute;n sobre la asignatura"
#elif L==5 // fr
"Print information on the course" // Besoin de traduction
#elif L==6 // gn
"Imprimir informaci&oacute;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&oacute;n de asignatura en su configuraci&oacute;n"
#elif L==5 // fr
"Change degree of course in its configuration" // Besoin de traduction
#elif L==6 // gn
"Cambiar titulaci&oacute;n de asignatura en su configuraci&oacute;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&oacute;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&oacute;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&oacute;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&oacute;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&oacute;digo institucional de asignatura en su configuraci&oacute;n"
#elif L==5 // fr
"Change institutional code of course in its configuration" // Besoin de traduction
#elif L==6 // gn
"Cambiar c&oacute;digo institucional de asignatura en su configuraci&oacute;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&ntilde;o/semestre de asignatura en su configuraci&oacute;n"
#elif L==5 // fr
"Change year/semester of course in its configuration" // Besoin de traduction
#elif L==6 // gn
"Cambiar a&ntilde;o/semestre de asignatura en su configuraci&oacute;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&oacute;n de la asignatura"
#elif L==5 // fr
"Edit information about the course" // Besoin de traduction
#elif L==6 // gn
"Editar la informaci&oacute;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 #endif
, ,
[ActEdiTchGui] = [ActEdiTchGui] =