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},
[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
};
/*****************************************************************************/

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
#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 ********************************/

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.
*/
#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)

View File

@ -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 ();

View File

@ -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

View File

@ -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 ();

View File

@ -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);

View File

@ -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&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
,
[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&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
,
[ActEdiTchGui] =