Version 21.113: Jul 22, 2022 New form and action to rename item resource.

This commit is contained in:
acanas 2022-07-22 22:25:49 +02:00
parent a1cc7eebfb
commit 64896a0f1d
8 changed files with 512 additions and 407 deletions

View File

@ -446,6 +446,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
[ActFrmSeePrgRsc ] = {1925,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,PrgRsc_ViewResourcesAfterEdit ,NULL}, [ActFrmSeePrgRsc ] = {1925,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,PrgRsc_ViewResourcesAfterEdit ,NULL},
[ActFrmEdiPrgRsc ] = {1918,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,PrgRsc_EditResources ,NULL}, [ActFrmEdiPrgRsc ] = {1918,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,PrgRsc_EditResources ,NULL},
[ActRenPrgRsc ] = {1928,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,PrgRsc_RenameResource ,NULL},
[ActReqRemPrgRsc ] = {1919,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,PrgRsc_ReqRemResource ,NULL}, [ActReqRemPrgRsc ] = {1919,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,PrgRsc_ReqRemResource ,NULL},
[ActRemPrgRsc ] = {1920,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,PrgRsc_RemoveResource ,NULL}, [ActRemPrgRsc ] = {1920,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,PrgRsc_RemoveResource ,NULL},
[ActHidPrgRsc ] = {1921,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,PrgRsc_HideResource ,NULL}, [ActHidPrgRsc ] = {1921,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,PrgRsc_HideResource ,NULL},
@ -3765,6 +3766,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActFrmSeePrgRsc, // #1925 ActFrmSeePrgRsc, // #1925
ActEdiPrg, // #1926 ActEdiPrg, // #1926
ActSeePrgItm, // #1927 ActSeePrgItm, // #1927
ActRenPrgRsc, // #1928
}; };
/*****************************************************************************/ /*****************************************************************************/

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 1927 #define Act_MAX_ACTION_COD 1928
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
@ -412,113 +412,114 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActRgtPrgItm (ActChgCrsSta + 29) #define ActRgtPrgItm (ActChgCrsSta + 29)
#define ActFrmSeePrgRsc (ActChgCrsSta + 30) #define ActFrmSeePrgRsc (ActChgCrsSta + 30)
#define ActFrmEdiPrgRsc (ActChgCrsSta + 31) #define ActFrmEdiPrgRsc (ActChgCrsSta + 31)
#define ActReqRemPrgRsc (ActChgCrsSta + 32) #define ActRenPrgRsc (ActChgCrsSta + 32)
#define ActRemPrgRsc (ActChgCrsSta + 33) #define ActReqRemPrgRsc (ActChgCrsSta + 33)
#define ActHidPrgRsc (ActChgCrsSta + 34) #define ActRemPrgRsc (ActChgCrsSta + 34)
#define ActUnhPrgRsc (ActChgCrsSta + 35) #define ActHidPrgRsc (ActChgCrsSta + 35)
#define ActUp_PrgRsc (ActChgCrsSta + 36) #define ActUnhPrgRsc (ActChgCrsSta + 36)
#define ActDwnPrgRsc (ActChgCrsSta + 37) #define ActUp_PrgRsc (ActChgCrsSta + 37)
#define ActEdiTchGui (ActChgCrsSta + 38) #define ActDwnPrgRsc (ActChgCrsSta + 38)
#define ActSeeSylLec (ActChgCrsSta + 39) #define ActEdiTchGui (ActChgCrsSta + 39)
#define ActSeeSylPra (ActChgCrsSta + 40) #define ActSeeSylLec (ActChgCrsSta + 40)
#define ActEdiSylLec (ActChgCrsSta + 41) #define ActSeeSylPra (ActChgCrsSta + 41)
#define ActEdiSylPra (ActChgCrsSta + 42) #define ActEdiSylLec (ActChgCrsSta + 42)
#define ActDelItmSylLec (ActChgCrsSta + 43) #define ActEdiSylPra (ActChgCrsSta + 43)
#define ActDelItmSylPra (ActChgCrsSta + 44) #define ActDelItmSylLec (ActChgCrsSta + 44)
#define ActUp_IteSylLec (ActChgCrsSta + 45) #define ActDelItmSylPra (ActChgCrsSta + 45)
#define ActUp_IteSylPra (ActChgCrsSta + 46) #define ActUp_IteSylLec (ActChgCrsSta + 46)
#define ActDwnIteSylLec (ActChgCrsSta + 47) #define ActUp_IteSylPra (ActChgCrsSta + 47)
#define ActDwnIteSylPra (ActChgCrsSta + 48) #define ActDwnIteSylLec (ActChgCrsSta + 48)
#define ActRgtIteSylLec (ActChgCrsSta + 49) #define ActDwnIteSylPra (ActChgCrsSta + 49)
#define ActRgtIteSylPra (ActChgCrsSta + 50) #define ActRgtIteSylLec (ActChgCrsSta + 50)
#define ActLftIteSylLec (ActChgCrsSta + 51) #define ActRgtIteSylPra (ActChgCrsSta + 51)
#define ActLftIteSylPra (ActChgCrsSta + 52) #define ActLftIteSylLec (ActChgCrsSta + 52)
#define ActInsIteSylLec (ActChgCrsSta + 53) #define ActLftIteSylPra (ActChgCrsSta + 53)
#define ActInsIteSylPra (ActChgCrsSta + 54) #define ActInsIteSylLec (ActChgCrsSta + 54)
#define ActModIteSylLec (ActChgCrsSta + 55) #define ActInsIteSylPra (ActChgCrsSta + 55)
#define ActModIteSylPra (ActChgCrsSta + 56) #define ActModIteSylLec (ActChgCrsSta + 56)
#define ActModIteSylPra (ActChgCrsSta + 57)
#define ActEdiBib (ActChgCrsSta + 57) #define ActEdiBib (ActChgCrsSta + 58)
#define ActEdiFAQ (ActChgCrsSta + 58) #define ActEdiFAQ (ActChgCrsSta + 59)
#define ActEdiCrsLnk (ActChgCrsSta + 59) #define ActEdiCrsLnk (ActChgCrsSta + 60)
#define ActChgFrcReaCrsInf (ActChgCrsSta + 60) #define ActChgFrcReaCrsInf (ActChgCrsSta + 61)
#define ActChgFrcReaTchGui (ActChgCrsSta + 61) #define ActChgFrcReaTchGui (ActChgCrsSta + 62)
#define ActChgFrcReaSylLec (ActChgCrsSta + 62) #define ActChgFrcReaSylLec (ActChgCrsSta + 63)
#define ActChgFrcReaSylPra (ActChgCrsSta + 63) #define ActChgFrcReaSylPra (ActChgCrsSta + 64)
#define ActChgFrcReaBib (ActChgCrsSta + 64) #define ActChgFrcReaBib (ActChgCrsSta + 65)
#define ActChgFrcReaFAQ (ActChgCrsSta + 65) #define ActChgFrcReaFAQ (ActChgCrsSta + 66)
#define ActChgFrcReaCrsLnk (ActChgCrsSta + 66) #define ActChgFrcReaCrsLnk (ActChgCrsSta + 67)
#define ActChgHavReaCrsInf (ActChgCrsSta + 67) #define ActChgHavReaCrsInf (ActChgCrsSta + 68)
#define ActChgHavReaTchGui (ActChgCrsSta + 68) #define ActChgHavReaTchGui (ActChgCrsSta + 69)
#define ActChgHavReaSylLec (ActChgCrsSta + 69) #define ActChgHavReaSylLec (ActChgCrsSta + 70)
#define ActChgHavReaSylPra (ActChgCrsSta + 70) #define ActChgHavReaSylPra (ActChgCrsSta + 71)
#define ActChgHavReaBib (ActChgCrsSta + 71) #define ActChgHavReaBib (ActChgCrsSta + 72)
#define ActChgHavReaFAQ (ActChgCrsSta + 72) #define ActChgHavReaFAQ (ActChgCrsSta + 73)
#define ActChgHavReaCrsLnk (ActChgCrsSta + 73) #define ActChgHavReaCrsLnk (ActChgCrsSta + 74)
#define ActSelInfSrcCrsInf (ActChgCrsSta + 74) #define ActSelInfSrcCrsInf (ActChgCrsSta + 75)
#define ActSelInfSrcTchGui (ActChgCrsSta + 75) #define ActSelInfSrcTchGui (ActChgCrsSta + 76)
#define ActSelInfSrcSylLec (ActChgCrsSta + 76) #define ActSelInfSrcSylLec (ActChgCrsSta + 77)
#define ActSelInfSrcSylPra (ActChgCrsSta + 77) #define ActSelInfSrcSylPra (ActChgCrsSta + 78)
#define ActSelInfSrcBib (ActChgCrsSta + 78) #define ActSelInfSrcBib (ActChgCrsSta + 79)
#define ActSelInfSrcFAQ (ActChgCrsSta + 79) #define ActSelInfSrcFAQ (ActChgCrsSta + 80)
#define ActSelInfSrcCrsLnk (ActChgCrsSta + 80) #define ActSelInfSrcCrsLnk (ActChgCrsSta + 81)
#define ActRcvURLCrsInf (ActChgCrsSta + 81) #define ActRcvURLCrsInf (ActChgCrsSta + 82)
#define ActRcvURLTchGui (ActChgCrsSta + 82) #define ActRcvURLTchGui (ActChgCrsSta + 83)
#define ActRcvURLSylLec (ActChgCrsSta + 83) #define ActRcvURLSylLec (ActChgCrsSta + 84)
#define ActRcvURLSylPra (ActChgCrsSta + 84) #define ActRcvURLSylPra (ActChgCrsSta + 85)
#define ActRcvURLBib (ActChgCrsSta + 85) #define ActRcvURLBib (ActChgCrsSta + 86)
#define ActRcvURLFAQ (ActChgCrsSta + 86) #define ActRcvURLFAQ (ActChgCrsSta + 87)
#define ActRcvURLCrsLnk (ActChgCrsSta + 87) #define ActRcvURLCrsLnk (ActChgCrsSta + 88)
#define ActRcvPagCrsInf (ActChgCrsSta + 88) #define ActRcvPagCrsInf (ActChgCrsSta + 89)
#define ActRcvPagTchGui (ActChgCrsSta + 89) #define ActRcvPagTchGui (ActChgCrsSta + 90)
#define ActRcvPagSylLec (ActChgCrsSta + 90) #define ActRcvPagSylLec (ActChgCrsSta + 91)
#define ActRcvPagSylPra (ActChgCrsSta + 91) #define ActRcvPagSylPra (ActChgCrsSta + 92)
#define ActRcvPagBib (ActChgCrsSta + 92) #define ActRcvPagBib (ActChgCrsSta + 93)
#define ActRcvPagFAQ (ActChgCrsSta + 93) #define ActRcvPagFAQ (ActChgCrsSta + 94)
#define ActRcvPagCrsLnk (ActChgCrsSta + 94) #define ActRcvPagCrsLnk (ActChgCrsSta + 95)
#define ActEditorCrsInf (ActChgCrsSta + 95) #define ActEditorCrsInf (ActChgCrsSta + 96)
#define ActEditorTchGui (ActChgCrsSta + 96) #define ActEditorTchGui (ActChgCrsSta + 97)
#define ActEditorSylLec (ActChgCrsSta + 97) #define ActEditorSylLec (ActChgCrsSta + 98)
#define ActEditorSylPra (ActChgCrsSta + 98) #define ActEditorSylPra (ActChgCrsSta + 99)
#define ActEditorBib (ActChgCrsSta + 99) #define ActEditorBib (ActChgCrsSta + 100)
#define ActEditorFAQ (ActChgCrsSta + 100) #define ActEditorFAQ (ActChgCrsSta + 101)
#define ActEditorCrsLnk (ActChgCrsSta + 101) #define ActEditorCrsLnk (ActChgCrsSta + 102)
#define ActPlaTxtEdiCrsInf (ActChgCrsSta + 102) #define ActPlaTxtEdiCrsInf (ActChgCrsSta + 103)
#define ActPlaTxtEdiTchGui (ActChgCrsSta + 103) #define ActPlaTxtEdiTchGui (ActChgCrsSta + 104)
#define ActPlaTxtEdiSylLec (ActChgCrsSta + 104) #define ActPlaTxtEdiSylLec (ActChgCrsSta + 105)
#define ActPlaTxtEdiSylPra (ActChgCrsSta + 105) #define ActPlaTxtEdiSylPra (ActChgCrsSta + 106)
#define ActPlaTxtEdiBib (ActChgCrsSta + 106) #define ActPlaTxtEdiBib (ActChgCrsSta + 107)
#define ActPlaTxtEdiFAQ (ActChgCrsSta + 107) #define ActPlaTxtEdiFAQ (ActChgCrsSta + 108)
#define ActPlaTxtEdiCrsLnk (ActChgCrsSta + 108) #define ActPlaTxtEdiCrsLnk (ActChgCrsSta + 109)
#define ActRchTxtEdiCrsInf (ActChgCrsSta + 109) #define ActRchTxtEdiCrsInf (ActChgCrsSta + 110)
#define ActRchTxtEdiTchGui (ActChgCrsSta + 110) #define ActRchTxtEdiTchGui (ActChgCrsSta + 111)
#define ActRchTxtEdiSylLec (ActChgCrsSta + 111) #define ActRchTxtEdiSylLec (ActChgCrsSta + 112)
#define ActRchTxtEdiSylPra (ActChgCrsSta + 112) #define ActRchTxtEdiSylPra (ActChgCrsSta + 113)
#define ActRchTxtEdiBib (ActChgCrsSta + 113) #define ActRchTxtEdiBib (ActChgCrsSta + 114)
#define ActRchTxtEdiFAQ (ActChgCrsSta + 114) #define ActRchTxtEdiFAQ (ActChgCrsSta + 115)
#define ActRchTxtEdiCrsLnk (ActChgCrsSta + 115) #define ActRchTxtEdiCrsLnk (ActChgCrsSta + 116)
#define ActRcvPlaTxtCrsInf (ActChgCrsSta + 116) #define ActRcvPlaTxtCrsInf (ActChgCrsSta + 117)
#define ActRcvPlaTxtTchGui (ActChgCrsSta + 117) #define ActRcvPlaTxtTchGui (ActChgCrsSta + 118)
#define ActRcvPlaTxtSylLec (ActChgCrsSta + 118) #define ActRcvPlaTxtSylLec (ActChgCrsSta + 119)
#define ActRcvPlaTxtSylPra (ActChgCrsSta + 119) #define ActRcvPlaTxtSylPra (ActChgCrsSta + 120)
#define ActRcvPlaTxtBib (ActChgCrsSta + 120) #define ActRcvPlaTxtBib (ActChgCrsSta + 121)
#define ActRcvPlaTxtFAQ (ActChgCrsSta + 121) #define ActRcvPlaTxtFAQ (ActChgCrsSta + 122)
#define ActRcvPlaTxtCrsLnk (ActChgCrsSta + 122) #define ActRcvPlaTxtCrsLnk (ActChgCrsSta + 123)
#define ActRcvRchTxtCrsInf (ActChgCrsSta + 123) #define ActRcvRchTxtCrsInf (ActChgCrsSta + 124)
#define ActRcvRchTxtTchGui (ActChgCrsSta + 124) #define ActRcvRchTxtTchGui (ActChgCrsSta + 125)
#define ActRcvRchTxtSylLec (ActChgCrsSta + 125) #define ActRcvRchTxtSylLec (ActChgCrsSta + 126)
#define ActRcvRchTxtSylPra (ActChgCrsSta + 126) #define ActRcvRchTxtSylPra (ActChgCrsSta + 127)
#define ActRcvRchTxtBib (ActChgCrsSta + 127) #define ActRcvRchTxtBib (ActChgCrsSta + 128)
#define ActRcvRchTxtFAQ (ActChgCrsSta + 128) #define ActRcvRchTxtFAQ (ActChgCrsSta + 129)
#define ActRcvRchTxtCrsLnk (ActChgCrsSta + 129) #define ActRcvRchTxtCrsLnk (ActChgCrsSta + 130)
#define ActPrnCrsTT (ActChgCrsSta + 130) #define ActPrnCrsTT (ActChgCrsSta + 131)
#define ActEdiCrsTT (ActChgCrsSta + 131) #define ActEdiCrsTT (ActChgCrsSta + 132)
#define ActChgCrsTT (ActChgCrsSta + 132) #define ActChgCrsTT (ActChgCrsSta + 133)
#define ActChgCrsTT1stDay (ActChgCrsSta + 133) #define ActChgCrsTT1stDay (ActChgCrsSta + 134)
/*****************************************************************************/ /*****************************************************************************/
/***************************** 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.112.1 (2022-07-22)" #define Log_PLATFORM_VERSION "SWAD 21.113 (2022-07-22)"
#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.113: Jul 22, 2022 New form and action to rename item resource. (329151 lines)
Version 21.112.1: Jul 22, 2022 Changes in edition of program items. (329058 lines) Version 21.112.1: Jul 22, 2022 Changes in edition of program items. (329058 lines)
Version 21.112: Jul 21, 2022 Code refactoring in hide/unhide icons. Version 21.112: Jul 21, 2022 Code refactoring in hide/unhide icons.
Fixed bugs in edition of banners. Fixed bugs in edition of banners.

View File

@ -425,45 +425,67 @@ void Prg_DB_RemoveCrsItems (long CrsCod)
CrsCod); CrsCod);
} }
/*****************************************************************************/
/**************************** Update resource title **************************/
/*****************************************************************************/
void Prg_DB_UpdateResourceTitle (long RscCod,long ItmCod,
const char NewTitle[PrgRsc_MAX_BYTES_PROGRAM_RESOURCE_TITLE + 1])
{
Ale_ShowAlert (Ale_INFO,
"can not update the title of a resource",
"UPDATE prg_resources,prg_items"
" SET prg_resources.Title='%s'"
" WHERE prg_resources.RscCod=%ld"
" AND prg_resources.ItmCod=%ld"
" AND prg_resources.ItmCod=prg_items.ItmCod"
" AND prg_items.CrsCod=%ld",
NewTitle,
RscCod,
ItmCod,
Gbl.Hierarchy.Crs.CrsCod);
DB_QueryUPDATE ("can not update the title of a resource",
"UPDATE prg_resources,prg_items"
" SET prg_resources.Title='%s'"
" WHERE prg_resources.RscCod=%ld"
" AND prg_resources.ItmCod=%ld"
" AND prg_resources.ItmCod=prg_items.ItmCod"
" AND prg_items.CrsCod=%ld",
NewTitle,
RscCod,
ItmCod,
Gbl.Hierarchy.Crs.CrsCod);
}
/*****************************************************************************/ /*****************************************************************************/
/****************** Get list of item resources from database *****************/ /****************** Get list of item resources from database *****************/
/*****************************************************************************/ /*****************************************************************************/
unsigned Prg_DB_GetListResources (MYSQL_RES **mysql_res,long ItmCod, unsigned Prg_DB_GetListResources (MYSQL_RES **mysql_res,long ItmCod,
bool ShowHiddenResources) bool ShowHiddenResources)
{/* {
static const char *HiddenSubQuery[Rol_NUM_ROLES] =
{
[Rol_UNK ] = " AND Hidden='N'",
[Rol_GST ] = " AND Hidden='N'",
[Rol_USR ] = " AND Hidden='N'",
[Rol_STD ] = " AND Hidden='N'",
[Rol_NET ] = " AND Hidden='N'",
[Rol_TCH ] = "",
[Rol_DEG_ADM] = " AND Hidden='N'",
[Rol_CTR_ADM] = " AND Hidden='N'",
[Rol_INS_ADM] = " AND Hidden='N'",
[Rol_SYS_ADM] = "",
}; */
static const char *HiddenSubQuery[2] = static const char *HiddenSubQuery[2] =
{ {
[false] = " AND Hidden='N'", [false] = " AND prg_resources.Hidden='N'",
[true ] = "", [true ] = "",
}; };
return (unsigned) return (unsigned)
DB_QuerySELECT (mysql_res,"can not get item resources", DB_QuerySELECT (mysql_res,"can not get item resources",
"SELECT ItmCod," // row[0] "SELECT prg_resources.ItmCod," // row[0]
"RscCod," // row[1] "prg_resources.RscCod," // row[1]
"RscInd," // row[2] "prg_resources.RscInd," // row[2]
"Hidden," // row[3] "prg_resources.Hidden," // row[3]
"Title" // row[4] "prg_resources.Title" // row[4]
" FROM prg_resources" " FROM prg_resources,prg_items"
" WHERE ItmCod=%ld" " WHERE prg_resources.ItmCod=%ld"
"%s" "%s"
" ORDER BY RscInd", " AND prg_resources.ItmCod=prg_items.ItmCod"
" AND prg_items.CrsCod=%ld" // Extra check
" ORDER BY prg_resources.RscInd",
ItmCod, ItmCod,
HiddenSubQuery[ShowHiddenResources]); HiddenSubQuery[ShowHiddenResources],
Gbl.Hierarchy.Crs.CrsCod);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -474,14 +496,17 @@ unsigned Prg_DB_GetDataOfResourceByCod (MYSQL_RES **mysql_res,long RscCod)
{ {
return (unsigned) return (unsigned)
DB_QuerySELECT (mysql_res,"can not get item resource data", DB_QuerySELECT (mysql_res,"can not get item resource data",
"SELECT ItmCod," // row[0] "SELECT prg_resources.ItmCod," // row[0]
"RscCod," // row[1] "prg_resources.RscCod," // row[1]
"RscInd," // row[2] "prg_resources.RscInd," // row[2]
"Hidden," // row[3] "prg_resources.Hidden," // row[3]
"Title" // row[4] "prg_resources.Title" // row[4]
" FROM prg_resources" " FROM prg_resources,prg_items"
" WHERE RscCod=%ld", " WHERE prg_resources.RscCod=%ld"
RscCod); " AND prg_resources.ItmCod=prg_items.ItmCod"
" AND prg_items.CrsCod=%ld", // Extra check
RscCod,
Gbl.Hierarchy.Crs.CrsCod);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -493,15 +518,18 @@ unsigned Prg_DB_GetDataOfResourceByInd (MYSQL_RES **mysql_res,
{ {
return (unsigned) return (unsigned)
DB_QuerySELECT (mysql_res,"can not get item resource data", DB_QuerySELECT (mysql_res,"can not get item resource data",
"SELECT ItmCod," // row[0] "SELECT prg_resources.ItmCod," // row[0]
"RscCod," // row[1] "prg_resources.RscCod," // row[1]
"RscInd," // row[2] "prg_resources.RscInd," // row[2]
"Hidden," // row[3] "prg_resources.Hidden," // row[3]
"Title" // row[4] "prg_resources.Title" // row[4]
" FROM prg_resources" " FROM prg_resources,prg_items"
" WHERE ItmCod=%ld" " WHERE prg_resources.ItmCod=%ld"
" AND RscInd=%u", " AND prg_resources.RscInd=%u"
ItmCod,RscInd); " AND prg_resources.ItmCod=prg_items.ItmCod"
" AND prg_items.CrsCod=%ld", // Extra check
ItmCod,RscInd,
Gbl.Hierarchy.Crs.CrsCod);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -557,10 +585,14 @@ void Prg_DB_RemoveResource (const struct PrgRsc_Resource *Resource)
{ {
DB_QueryDELETE ("can not remove item resource", DB_QueryDELETE ("can not remove item resource",
"DELETE FROM prg_resources" "DELETE FROM prg_resources"
" WHERE RscCod=%ld" "USING prg_resources,prg_items"
" AND ItmCod=%ld", // Extra check " WHERE prg_resources.RscCod=%ld"
" AND prg_resources.ItmCod=%ld"
" AND prg_resources.ItmCod=prg_items.ItmCod"
" AND prg_items.CrsCod=%ld", // Extra check
Resource->Rsc.Cod, Resource->Rsc.Cod,
Resource->ItmCod); Resource->ItmCod,
Gbl.Hierarchy.Crs.CrsCod);
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -56,6 +56,9 @@ void Prg_DB_RemoveItemRange (const struct Prg_ItemRange *ToRemove);
void Prg_DB_RemoveCrsItems (long CrsCod); void Prg_DB_RemoveCrsItems (long CrsCod);
//------------------------------ Resources ------------------------------------ //------------------------------ Resources ------------------------------------
void Prg_DB_UpdateResourceTitle (long RscCod,long ItmCod,
const char NewTitle[PrgRsc_MAX_BYTES_PROGRAM_RESOURCE_TITLE + 1]);
unsigned Prg_DB_GetListResources (MYSQL_RES **mysql_res,long ItmCod, unsigned Prg_DB_GetListResources (MYSQL_RES **mysql_res,long ItmCod,
bool ShowHiddenResources); bool ShowHiddenResources);
unsigned Prg_DB_GetDataOfResourceByCod (MYSQL_RES **mysql_res,long RscCod); unsigned Prg_DB_GetDataOfResourceByCod (MYSQL_RES **mysql_res,long RscCod);

View File

@ -427,9 +427,14 @@ static void PrgRsc_WriteRowEditResource (unsigned NumRsc,unsigned NumResources,
HTM_TD_End (); HTM_TD_End ();
/***** Title *****/ /***** Title *****/
HTM_TD_Begin ("class=\"PRG_MAIN PRG_RSC_%s %s\"", HTM_TD_Begin ("class=\"PRG_MAIN %s\"",The_GetColorRows ());
The_GetSuffix (),The_GetColorRows ()); Frm_BeginFormAnchor (ActRenPrgRsc,PrgRsc_RESOURCE_SECTION_ID);
HTM_Txt (Resource->Title); PrgRsc_PutParamRscCod (Resource->Rsc.Cod);
HTM_INPUT_TEXT ("Title",PrgRsc_MAX_CHARS_PROGRAM_RESOURCE_TITLE,Resource->Title,
HTM_SUBMIT_ON_CHANGE,
"class=\"INPUT_FULL_NAME INPUT_%s\"",
The_GetSuffix ());
Frm_EndForm ();
HTM_TD_End (); HTM_TD_End ();
/***** End row *****/ /***** End row *****/
@ -525,6 +530,44 @@ static long PrgRsc_GetParamRscCod (void)
return Par_GetParToLong ("RscCod"); return Par_GetParToLong ("RscCod");
} }
/*****************************************************************************/
/******************************** Rename resource ****************************/
/*****************************************************************************/
void PrgRsc_RenameResource (void)
{
struct PrgRsc_Resource Resource;
char NewTitle[PrgRsc_MAX_BYTES_PROGRAM_RESOURCE_TITLE + 1];
long ItmCod;
unsigned FormLevel;
/***** Get list of program items *****/
Prg_GetListItems ();
/***** Get data of the item resource from database *****/
Resource.Rsc.Cod = PrgRsc_GetParamRscCod ();
PrgRsc_GetDataOfResourceByCod (&Resource);
if (Resource.ItmCod <= 0)
Err_WrongResourceExit ();
/***** Rename resource *****/
/* Get the new title for the resource */
Par_GetParToText ("Title",NewTitle,PrgRsc_MAX_BYTES_PROGRAM_RESOURCE_TITLE);
/* Update database changing old title by new title */
Prg_DB_UpdateResourceTitle (Resource.Rsc.Cod,Resource.ItmCod,NewTitle);
/***** Get the code of the program item *****/
ItmCod = Resource.ItmCod;
FormLevel = Prg_GetLevelFromNumItem (Prg_GetNumItemFromItmCod (Resource.ItmCod));
/***** Show current program items, if any *****/
Prg_ShowAllItems (Prg_EDIT_RESOURCES,NULL,-1L,ItmCod,FormLevel);
/***** Free list of program items *****/
Prg_FreeListItems ();
}
/*****************************************************************************/ /*****************************************************************************/
/************ Ask for confirmation of removing an item resource **************/ /************ Ask for confirmation of removing an item resource **************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -57,7 +57,7 @@ void PrgRsc_EditResources (void);
void PrgRsc_ListItemResources (Prg_ListingType_t ListingType,long ItmCod); void PrgRsc_ListItemResources (Prg_ListingType_t ListingType,long ItmCod);
void PrgRsc_RequestCreateResource (void); void PrgRsc_RenameResource (void);
void PrgRsc_ReqRemResource (void); void PrgRsc_ReqRemResource (void);
void PrgRsc_RemoveResource (void); void PrgRsc_RemoveResource (void);

View File

@ -2017,25 +2017,25 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActRemBan] = [ActRemBan] =
#if L==1 // ca #if L==1 // ca
"Request removal of a banner" // Necessita traducció "Request removal of banner" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a banner" // Need Übersetzung "Request removal of banner" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a banner" "Request removal of banner"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&ocute;n de un banner" "Solicitar eliminaci&ocute;n de banner"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a banner" // Besoin de traduction "Request removal of banner" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&ocute;n de un banner" // Okoteve traducción "Solicitar eliminaci&ocute;n de banner" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a banner" // Bisogno di traduzione "Request removal of banner" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a banner" // Potrzebujesz tlumaczenie "Request removal of banner" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a banner" // Precisa de tradução "Request removal of banner" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a banner" // Çeviri lazim! "Request removal of banner" // Çeviri lazim!
#endif #endif
, ,
[ActUnhBan] = [ActUnhBan] =
@ -6086,29 +6086,52 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
"Editar recursos" "Editar recursos"
#elif L==10 // tr #elif L==10 // tr
"Kaynaklar&inodot; d&uuml;zenle" "Kaynaklar&inodot; d&uuml;zenle"
#endif
,
[ActRenPrgRsc] =
#if L==1 // ca
"Rename resource" // Necessita traducció
#elif L==2 // de
"Rename resource" // Need Übersetzung
#elif L==3 // en
"Rename resource"
#elif L==4 // es
"Renombrar recurso"
#elif L==5 // fr
"Rename resource" // Besoin de traduction
#elif L==6 // gn
"Renombrar recurso" // Okoteve traducción
#elif L==7 // it
"Rename resource" // Bisogno di traduzione
#elif L==8 // pl
"Rename resource" // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Rename resource" // Precisa de tradução
#elif L==10 // tr
"Rename resource" // Çeviri lazim!
#endif #endif
, ,
[ActReqRemPrgRsc] = [ActReqRemPrgRsc] =
#if L==1 // ca #if L==1 // ca
"Request removal of resource" // Necessita traducció "Request removal of resource" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of resource" // Need Übersetzung "Request removal of resource" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of resource" "Request removal of resource"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de recurso" "Solicitar eliminaci&oacute;n de recurso"
#elif L==5 // fr #elif L==5 // fr
"Request removal of resource" // Besoin de traduction "Request removal of resource" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de recurso" // Okoteve traducción "Solicitar eliminaci&oacute;n de recurso" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of resource" // Bisogno di traduzione "Request removal of resource" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of resource" // Potrzebujesz tlumaczenie "Request removal of resource" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of resource" // Precisa de tradução "Request removal of resource" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of resource" // Çeviri lazim! "Request removal of resource" // Çeviri lazim!
#endif #endif
, ,
[ActRemPrgRsc] = [ActRemPrgRsc] =
@ -9011,25 +9034,25 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActReqRemAsg] = [ActReqRemAsg] =
#if L==1 // ca #if L==1 // ca
"Request removal of an assignment" // Necessita traducció "Request removal of assignment" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of an assignment" // Need Übersetzung "Request removal of assignment" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of an assignment" "Request removal of assignment"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de una actividad" "Solicitar eliminaci&oacute;n de actividad"
#elif L==5 // fr #elif L==5 // fr
"Request removal of an assignment" // Besoin de traduction "Request removal of assignment" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de una actividad" // Okoteve traducción "Solicitar eliminaci&oacute;n de actividad" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of an assignment" // Bisogno di traduzione "Request removal of assignment" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of an assignment" // Potrzebujesz tlumaczenie "Request removal of assignment" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of an assignment" // Precisa de tradução "Request removal of assignment" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of an assignment" // Çeviri lazim! "Request removal of assignment" // Çeviri lazim!
#endif #endif
, ,
[ActRemAsg] = [ActRemAsg] =
@ -9402,25 +9425,25 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActReqRemPrj] = [ActReqRemPrj] =
#if L==1 // ca #if L==1 // ca
"Request removal of a project" // Necessita traducció "Request removal of project" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a project" // Need Übersetzung "Request removal of project" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a project" "Request removal of project"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un proyecto" "Solicitar eliminaci&oacute;n de proyecto"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a project" // Besoin de traduction "Request removal of project" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un proyecto" // Okoteve traducción "Solicitar eliminaci&oacute;n de proyecto" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a project" // Bisogno di traduzione "Request removal of project" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a project" // Potrzebujesz tlumaczenie "Request removal of project" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a project" // Precisa de tradução "Request removal of project" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a project" // Çeviri lazim! "Request removal of project" // Çeviri lazim!
#endif #endif
, ,
[ActRemPrj] = [ActRemPrj] =
@ -10805,25 +10828,25 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActReqRemCfe] = [ActReqRemCfe] =
#if L==1 // ca #if L==1 // ca
"Request removal of an exam announcement" // Necessita traducció "Request removal of exam announcement" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of an exam announcement" // Need Übersetzung "Request removal of exam announcement" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of an exam announcement" "Request removal of exam announcement"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de una convocatoria de examen" "Solicitar eliminaci&oacute;n de convocatoria de examen"
#elif L==5 // fr #elif L==5 // fr
"Request removal of an exam announcement" // Besoin de traduction "Request removal of exam announcement" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de una convocatoria de examen" // Okoteve traducción "Solicitar eliminaci&oacute;n de convocatoria de examen" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of an exam announcement" // Bisogno di traduzione "Request removal of exam announcement" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of an exam announcement" // Potrzebujesz tlumaczenie "Request removal of exam announcement" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of an exam announcement" // Precisa de tradução "Request removal of exam announcement" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of an exam announcement" // Çeviri lazim! "Request removal of exam announcement" // Çeviri lazim!
#endif #endif
, ,
[ActRemCfe] = [ActRemCfe] =
@ -19637,25 +19660,25 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActReqRemFilShaCrs] = [ActReqRemFilShaCrs] =
#if L==1 // ca #if L==1 // ca
"Request removal of a shared file of course" // Necessita traducció "Request removal of shared file of course" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a shared file of course" // Need Übersetzung "Request removal of shared file of course" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a shared file of course" "Request removal of shared file of course"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de archivo compartido de asignatura" "Solicitar eliminaci&oacute;n de archivo compartido de asignatura"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a shared file of course" // Besoin de traduction "Request removal of shared file of course" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de archivo compartido de asignatura" // Okoteve traducción "Solicitar eliminaci&oacute;n de archivo compartido de asignatura" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a shared file of course" // Bisogno di traduzione "Request removal of shared file of course" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a shared file of course" // Potrzebujesz tlumaczenie "Request removal of shared file of course" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a shared file of course" // Precisa de tradução "Request removal of shared file of course" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a shared file of course" // Çeviri lazim! "Request removal of shared file of course" // Çeviri lazim!
#endif #endif
, ,
[ActRemFilShaCrs] = [ActRemFilShaCrs] =
@ -21339,25 +21362,25 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActReqRemFilAsgCrs] = [ActReqRemFilAsgCrs] =
#if L==1 // ca #if L==1 // ca
"Request removal of file in assignments zone of course" // Necessita traducció "Request removal of file from assignments zone of course" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of file in assignments zone of course" // Need Übersetzung "Request removal of file from assignments zone of course" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of file in assignments zone of course" "Request removal of file from assignments zone of course"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de archivo en zona de actividades de asignatura" "Solicitar eliminaci&oacute;n de archivo de zona de actividades de asignatura"
#elif L==5 // fr #elif L==5 // fr
"Request removal of file in assignments zone of course" // Besoin de traduction "Request removal of file from assignments zone of course" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de archivo en zona de actividades de asignatura" // Okoteve traducción "Solicitar eliminaci&oacute;n de archivo de zona de actividades de asignatura" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of file in assignments zone of course" // Bisogno di traduzione "Request removal of file from assignments zone of course" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of file in assignments zone of course" // Potrzebujesz tlumaczenie "Request removal of file from assignments zone of course" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of file in assignments zone of course" // Precisa de tradução "Request removal of file from assignments zone of course" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of file in assignments zone of course" // Çeviri lazim! "Request removal of file from assignments zone of course" // Çeviri lazim!
#endif #endif
, ,
[ActRemFilAsgCrs] = [ActRemFilAsgCrs] =
@ -22466,25 +22489,25 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActReqRemFilMrkCrs] = [ActReqRemFilMrkCrs] =
#if L==1 // ca #if L==1 // ca
"Request removal of file in marks in course" // Necessita traducció "Request removal of file from marks in course" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of file in marks in course" // Need Übersetzung "Request removal of file from marks in course" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of file in marks in course" "Request removal of file from marks in course"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de archivo de calificaciones de asignatura" "Solicitar eliminaci&oacute;n de archivo de calificaciones de asignatura"
#elif L==5 // fr #elif L==5 // fr
"Request removal of file in marks in course" // Besoin de traduction "Request removal of file from marks in course" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de archivo de calificaciones de asignatura" // Okoteve traducción "Solicitar eliminaci&oacute;n de archivo de calificaciones de asignatura" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of file in marks in course" // Bisogno di traduzione "Request removal of file from marks in course" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of file in marks in course" // Potrzebujesz tlumaczenie "Request removal of file from marks in course" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of file in marks in course" // Precisa de tradução "Request removal of file from marks in course" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of file in marks in course" // Çeviri lazim! "Request removal of file from marks in course" // Çeviri lazim!
#endif #endif
, ,
[ActRemFilMrkCrs] = [ActRemFilMrkCrs] =
@ -24168,25 +24191,25 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActReqRemGrpTyp] = [ActReqRemGrpTyp] =
#if L==1 // ca #if L==1 // ca
"Request removal of a type of group" // Necessita traducció "Request removal of type of group" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a type of group" // Need Übersetzung "Request removal of type of group" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a type of group" "Request removal of type of group"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un tipo de grupo" "Solicitar eliminaci&oacute;n de tipo de grupo"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a type of group" // Besoin de traduction "Request removal of type of group" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un tipo de grupo" // Okoteve traducción "Solicitar eliminaci&oacute;n de tipo de grupo" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a type of group" // Bisogno di traduzione "Request removal of type of group" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a type of group" // Potrzebujesz tlumaczenie "Request removal of type of group" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a type of group" // Precisa de tradução "Request removal of type of group" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a type of group" // Çeviri lazim! "Request removal of type of group" // Çeviri lazim!
#endif #endif
, ,
[ActRemGrpTyp] = [ActRemGrpTyp] =
@ -25548,25 +25571,25 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActReqRemAtt] = [ActReqRemAtt] =
#if L==1 // ca #if L==1 // ca
"Request removal of an attendance event" // Necessita traducció "Request removal of attendance event" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of an attendance event" // Need Übersetzung "Request removal of attendance event" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of an attendance event" "Request removal of attendance event"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un evento de asistencia" "Solicitar eliminaci&oacute;n de evento de asistencia"
#elif L==5 // fr #elif L==5 // fr
"Request removal of an attendance event" // Besoin de traduction "Request removal of attendance event" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un evento de asistencia" // Okoteve traducción "Solicitar eliminaci&oacute;n de evento de asistencia" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of an attendance event" // Bisogno di traduzione "Request removal of attendance event" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of an attendance event" // Potrzebujesz tlumaczenie "Request removal of attendance event" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of an attendance event" // Precisa de tradução "Request removal of attendance event" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of an attendance event" // Çeviri lazim! "Request removal of attendance event" // Çeviri lazim!
#endif #endif
, ,
[ActRemAtt] = [ActRemAtt] =
@ -26169,71 +26192,71 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActReqRemOthPho] = [ActReqRemOthPho] =
#if L==1 // ca #if L==1 // ca
"Request removal of a user's photo" // Necessita traducció "Request removal of user's photo" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a user's photo" // Need Übersetzung "Request removal of user's photo" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a user's photo" "Request removal of user's photo"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de foto de usuario" "Solicitar eliminaci&oacute;n de foto de usuario"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a user's photo" // Besoin de traduction "Request removal of user's photo" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de foto de usuario" // Okoteve traducción "Solicitar eliminaci&oacute;n de foto de usuario" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a user's photo" // Bisogno di traduzione "Request removal of user's photo" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a user's photo" // Potrzebujesz tlumaczenie "Request removal of user's photo" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a user's photo" // Precisa de tradução "Request removal of user's photo" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a user's photo" // Çeviri lazim! "Request removal of user's photo" // Çeviri lazim!
#endif #endif
, ,
[ActReqRemStdPho] = [ActReqRemStdPho] =
#if L==1 // ca #if L==1 // ca
"Request removal of a student's photo" // Necessita traducció "Request removal of student's photo" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a student's photo" // Need Übersetzung "Request removal of student's photo" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a student's photo" "Request removal of student's photo"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de foto de estudiante" "Solicitar eliminaci&oacute;n de foto de estudiante"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a student's photo" // Besoin de traduction "Request removal of student's photo" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de foto de estudiante" // Okoteve traducción "Solicitar eliminaci&oacute;n de foto de estudiante" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a student's photo" // Bisogno di traduzione "Request removal of student's photo" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a student's photo" // Potrzebujesz tlumaczenie "Request removal of student's photo" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a student's photo" // Precisa de tradução "Request removal of student's photo" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a student's photo" // Çeviri lazim! "Request removal of student's photo" // Çeviri lazim!
#endif #endif
, ,
[ActReqRemTchPho] = [ActReqRemTchPho] =
#if L==1 // ca #if L==1 // ca
"Request removal of a teacher's photo" // Necessita traducció "Request removal of teacher's photo" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a teacher's photo" // Need Übersetzung "Request removal of teacher's photo" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a teacher's photo" "Request removal of teacher's photo"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de foto de profesor" "Solicitar eliminaci&oacute;n de foto de profesor"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a teacher's photo" // Besoin de traduction "Request removal of teacher's photo" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de foto de profesor" // Okoteve traducción "Solicitar eliminaci&oacute;n de foto de profesor" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a teacher's photo" // Bisogno di traduzione "Request removal of teacher's photo" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a teacher's photo" // Potrzebujesz tlumaczenie "Request removal of teacher's photo" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a teacher's photo" // Precisa de tradução "Request removal of teacher's photo" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a teacher's photo" // Çeviri lazim! "Request removal of teacher's photo" // Çeviri lazim!
#endif #endif
, ,
[ActRemOthPho] = [ActRemOthPho] =
@ -28331,25 +28354,25 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActReqRemNot] = [ActReqRemNot] =
#if L==1 // ca #if L==1 // ca
"Request removal of a notice" // Necessita traducció "Request removal of notice" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a notice" // Need Übersetzung "Request removal of notice" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a notice" "Request removal of notice"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un aviso" "Solicitar eliminaci&oacute;n de aviso"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a notice" // Besoin de traduction "Request removal of notice" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un aviso" // Okoteve traducción "Solicitar eliminaci&oacute;n de aviso" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a notice" // Bisogno di traduzione "Request removal of notice" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a notice" // Potrzebujesz tlumaczenie "Request removal of notice" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a notice" // Precisa de tradução "Request removal of notice" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a notice" // Çeviri lazim! "Request removal of notice" // Çeviri lazim!
#endif #endif
, ,
[ActRemNot] = [ActRemNot] =
@ -29481,278 +29504,278 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActReqDelThrCrsUsr] = [ActReqDelThrCrsUsr] =
#if L==1 // ca #if L==1 // ca
"Request removal of a thread of forum of users of course" // Necessita traducció "Request removal of thread of forum of users of course" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a thread of forum of users of course" // Need Übersetzung "Request removal of thread of forum of users of course" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a thread of forum of users of course" "Request removal of thread of forum of users of course"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un hilo del foro de usuarios de asignatura" "Solicitar eliminaci&oacute;n de hilo del foro de usuarios de asignatura"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a thread of forum of users of course" // Besoin de traduction "Request removal of thread of forum of users of course" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un hilo del foro de usuarios de asignatura" // Okoteve traducción "Solicitar eliminaci&oacute;n de hilo del foro de usuarios de asignatura" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a thread of forum of users of course" // Bisogno di traduzione "Request removal of thread of forum of users of course" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a thread of forum of users of course" // Potrzebujesz tlumaczenie "Request removal of thread of forum of users of course" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a thread of forum of users of course" // Precisa de tradução "Request removal of thread of forum of users of course" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a thread of forum of users of course" // Çeviri lazim! "Request removal of thread of forum of users of course" // Çeviri lazim!
#endif #endif
, ,
[ActReqDelThrCrsTch] = [ActReqDelThrCrsTch] =
#if L==1 // ca #if L==1 // ca
"Request removal of a thread of forum of teachers of course" // Necessita traducció "Request removal of thread of forum of teachers of course" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a thread of forum of teachers of course" // Need Übersetzung "Request removal of thread of forum of teachers of course" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a thread of forum of teachers of course" "Request removal of thread of forum of teachers of course"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un hilo del foro de profesores de asignatura" "Solicitar eliminaci&oacute;n de hilo del foro de profesores de asignatura"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a thread of forum of teachers of course" // Besoin de traduction "Request removal of thread of forum of teachers of course" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un hilo del foro de profesores de asignatura" // Okoteve traducción "Solicitar eliminaci&oacute;n de hilo del foro de profesores de asignatura" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a thread of forum of teachers of course" // Bisogno di traduzione "Request removal of thread of forum of teachers of course" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a thread of forum of teachers of course" // Potrzebujesz tlumaczenie "Request removal of thread of forum of teachers of course" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a thread of forum of teachers of course" // Precisa de tradução "Request removal of thread of forum of teachers of course" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a thread of forum of teachers of course" // Çeviri lazim! "Request removal of thread of forum of teachers of course" // Çeviri lazim!
#endif #endif
, ,
[ActReqDelThrDegUsr] = [ActReqDelThrDegUsr] =
#if L==1 // ca #if L==1 // ca
"Request removal of a thread of forum of users of degree" // Necessita traducció "Request removal of thread of forum of users of degree" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a thread of forum of users of degree" // Need Übersetzung "Request removal of thread of forum of users of degree" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a thread of forum of users of degree" "Request removal of thread of forum of users of degree"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un hilo del foro de usuarios de titulaci&oacute;n" "Solicitar eliminaci&oacute;n de hilo del foro de usuarios de titulaci&oacute;n"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a thread of forum of users of degree" // Besoin de traduction "Request removal of thread of forum of users of degree" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un hilo del foro de usuarios de titulaci&oacute;n" // Okoteve traducción "Solicitar eliminaci&oacute;n de hilo del foro de usuarios de titulaci&oacute;n" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a thread of forum of users of degree" // Bisogno di traduzione "Request removal of thread of forum of users of degree" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a thread of forum of users of degree" // Potrzebujesz tlumaczenie "Request removal of thread of forum of users of degree" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a thread of forum of users of degree" // Precisa de tradução "Request removal of thread of forum of users of degree" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a thread of forum of users of degree" // Çeviri lazim! "Request removal of thread of forum of users of degree" // Çeviri lazim!
#endif #endif
, ,
[ActReqDelThrDegTch] = [ActReqDelThrDegTch] =
#if L==1 // ca #if L==1 // ca
"Request removal of a thread of forum of teachers of degree" // Necessita traducció "Request removal of thread of forum of teachers of degree" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a thread of forum of teachers of degree" // Need Übersetzung "Request removal of thread of forum of teachers of degree" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a thread of forum of teachers of degree" "Request removal of thread of forum of teachers of degree"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un hilo del foro de profesores de titulaci&oacute;n" "Solicitar eliminaci&oacute;n de hilo del foro de profesores de titulaci&oacute;n"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a thread of forum of teachers of degree" // Besoin de traduction "Request removal of thread of forum of teachers of degree" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un hilo del foro de profesores de titulaci&oacute;n" // Okoteve traducción "Solicitar eliminaci&oacute;n de hilo del foro de profesores de titulaci&oacute;n" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a thread of forum of teachers of degree" // Bisogno di traduzione "Request removal of thread of forum of teachers of degree" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a thread of forum of teachers of degree" // Potrzebujesz tlumaczenie "Request removal of thread of forum of teachers of degree" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a thread of forum of teachers of degree" // Precisa de tradução "Request removal of thread of forum of teachers of degree" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a thread of forum of teachers of degree" // Çeviri lazim! "Request removal of thread of forum of teachers of degree" // Çeviri lazim!
#endif #endif
, ,
[ActReqDelThrCtrUsr] = [ActReqDelThrCtrUsr] =
#if L==1 // ca #if L==1 // ca
"Request removal of a thread of forum of users of center" // Necessita traducció "Request removal of thread of forum of users of center" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a thread of forum of users of center" // Need Übersetzung "Request removal of thread of forum of users of center" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a thread of forum of users of center" "Request removal of thread of forum of users of center"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un hilo del foro de usuarios de centro" "Solicitar eliminaci&oacute;n de hilo del foro de usuarios de centro"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a thread of forum of users of center" // Besoin de traduction "Request removal of thread of forum of users of center" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un hilo del foro de usuarios de centro" // Okoteve traducción "Solicitar eliminaci&oacute;n de hilo del foro de usuarios de centro" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a thread of forum of users of center" // Bisogno di traduzione "Request removal of thread of forum of users of center" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a thread of forum of users of center" // Potrzebujesz tlumaczenie "Request removal of thread of forum of users of center" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a thread of forum of users of center" // Precisa de tradução "Request removal of thread of forum of users of center" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a thread of forum of users of center" // Çeviri lazim! "Request removal of thread of forum of users of center" // Çeviri lazim!
#endif #endif
, ,
[ActReqDelThrCtrTch] = [ActReqDelThrCtrTch] =
#if L==1 // ca #if L==1 // ca
"Request removal of a thread of forum of teachers of center" // Necessita traducció "Request removal of thread of forum of teachers of center" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a thread of forum of teachers of center" // Need Übersetzung "Request removal of thread of forum of teachers of center" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a thread of forum of teachers of center" "Request removal of thread of forum of teachers of center"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un hilo del foro de profesores de centro" "Solicitar eliminaci&oacute;n de hilo del foro de profesores de centro"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a thread of forum of teachers of center" // Besoin de traduction "Request removal of thread of forum of teachers of center" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un hilo del foro de profesores de centro" // Okoteve traducción "Solicitar eliminaci&oacute;n de hilo del foro de profesores de centro" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a thread of forum of teachers of center" // Bisogno di traduzione "Request removal of thread of forum of teachers of center" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a thread of forum of teachers of center" // Potrzebujesz tlumaczenie "Request removal of thread of forum of teachers of center" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a thread of forum of teachers of center" // Precisa de tradução "Request removal of thread of forum of teachers of center" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a thread of forum of teachers of center" // Çeviri lazim! "Request removal of thread of forum of teachers of center" // Çeviri lazim!
#endif #endif
, ,
[ActReqDelThrInsUsr] = [ActReqDelThrInsUsr] =
#if L==1 // ca #if L==1 // ca
"Request removal of a thread of forum of users of institution" // Necessita traducció "Request removal of thread of forum of users of institution" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a thread of forum of users of institution" // Need Übersetzung "Request removal of thread of forum of users of institution" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a thread of forum of users of institution" "Request removal of thread of forum of users of institution"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un hilo del foro de usuarios de instituci&oacute;n" "Solicitar eliminaci&oacute;n de hilo del foro de usuarios de instituci&oacute;n"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a thread of forum of users of institution" // Besoin de traduction "Request removal of thread of forum of users of institution" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un hilo del foro de usuarios de instituci&oacute;n" // Okoteve traducción "Solicitar eliminaci&oacute;n de hilo del foro de usuarios de instituci&oacute;n" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a thread of forum of users of institution" // Bisogno di traduzione "Request removal of thread of forum of users of institution" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a thread of forum of users of institution" // Potrzebujesz tlumaczenie "Request removal of thread of forum of users of institution" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a thread of forum of users of institution" // Precisa de tradução "Request removal of thread of forum of users of institution" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a thread of forum of users of institution" // Çeviri lazim! "Request removal of thread of forum of users of institution" // Çeviri lazim!
#endif #endif
, ,
[ActReqDelThrInsTch] = [ActReqDelThrInsTch] =
#if L==1 // ca #if L==1 // ca
"Request removal of a thread of forum of teachers of institution" // Necessita traducció "Request removal of thread of forum of teachers of institution" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a thread of forum of teachers of institution" // Need Übersetzung "Request removal of thread of forum of teachers of institution" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a thread of forum of teachers of institution" "Request removal of thread of forum of teachers of institution"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un hilo del foro de profesores de instituci&oacute;n" "Solicitar eliminaci&oacute;n de hilo del foro de profesores de instituci&oacute;n"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a thread of forum of teachers of institution" // Besoin de traduction "Request removal of thread of forum of teachers of institution" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un hilo del foro de profesores de instituci&oacute;n" // Okoteve traducción "Solicitar eliminaci&oacute;n de hilo del foro de profesores de instituci&oacute;n" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a thread of forum of teachers of institution" // Bisogno di traduzione "Request removal of thread of forum of teachers of institution" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a thread of forum of teachers of institution" // Potrzebujesz tlumaczenie "Request removal of thread of forum of teachers of institution" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a thread of forum of teachers of institution" // Precisa de tradução "Request removal of thread of forum of teachers of institution" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a thread of forum of teachers of institution" // Çeviri lazim! "Request removal of thread of forum of teachers of institution" // Çeviri lazim!
#endif #endif
, ,
[ActReqDelThrGenUsr] = [ActReqDelThrGenUsr] =
#if L==1 // ca #if L==1 // ca
"Request removal of a thread of general forum of users" // Necessita traducció "Request removal of thread of general forum of users" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a thread of general forum of users" // Need Übersetzung "Request removal of thread of general forum of users" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a thread of general forum of users" "Request removal of thread of general forum of users"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un hilo del foro de usuarios general" "Solicitar eliminaci&oacute;n de hilo del foro de usuarios general"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a thread of general forum of users" // Besoin de traduction "Request removal of thread of general forum of users" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un hilo del foro de usuarios general" // Okoteve traducción "Solicitar eliminaci&oacute;n de hilo del foro de usuarios general" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a thread of general forum of users" // Bisogno di traduzione "Request removal of thread of general forum of users" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a thread of general forum of users" // Potrzebujesz tlumaczenie "Request removal of thread of general forum of users" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a thread of general forum of users" // Precisa de tradução "Request removal of thread of general forum of users" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a thread of general forum of users" // Çeviri lazim! "Request removal of thread of general forum of users" // Çeviri lazim!
#endif #endif
, ,
[ActReqDelThrGenTch] = [ActReqDelThrGenTch] =
#if L==1 // ca #if L==1 // ca
"Request removal of a thread of general forum of teachers" // Necessita traducció "Request removal of thread of general forum of teachers" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a thread of general forum of teachers" // Need Übersetzung "Request removal of thread of general forum of teachers" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a thread of general forum of teachers" "Request removal of thread of general forum of teachers"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un hilo del foro de profesores general" "Solicitar eliminaci&oacute;n de hilo del foro de profesores general"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a thread of general forum of teachers" // Besoin de traduction "Request removal of thread of general forum of teachers" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un hilo del foro de profesores general" // Okoteve traducción "Solicitar eliminaci&oacute;n de hilo del foro de profesores general" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a thread of general forum of teachers" // Bisogno di traduzione "Request removal of thread of general forum of teachers" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a thread of general forum of teachers" // Potrzebujesz tlumaczenie "Request removal of thread of general forum of teachers" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a thread of general forum of teachers" // Precisa de tradução "Request removal of thread of general forum of teachers" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a thread of general forum of teachers" // Çeviri lazim! "Request removal of thread of general forum of teachers" // Çeviri lazim!
#endif #endif
, ,
[ActReqDelThrSWAUsr] = [ActReqDelThrSWAUsr] =
#if L==1 // ca #if L==1 // ca
"Request removal of a thread of forum of users of the platform" // Necessita traducció "Request removal of thread of forum of users of the platform" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a thread of forum of users of the platform" // Need Übersetzung "Request removal of thread of forum of users of the platform" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a thread of forum of users of the platform" "Request removal of thread of forum of users of the platform"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un hilo del foro de usuarios de la plataforma" "Solicitar eliminaci&oacute;n de hilo del foro de usuarios de la plataforma"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a thread of forum of users of the platform" // Besoin de traduction "Request removal of thread of forum of users of the platform" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un hilo del foro de usuarios de la plataforma" // Okoteve traducción "Solicitar eliminaci&oacute;n de hilo del foro de usuarios de la plataforma" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a thread of forum of users of the platform" // Bisogno di traduzione "Request removal of thread of forum of users of the platform" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a thread of forum of users of the platform" // Potrzebujesz tlumaczenie "Request removal of thread of forum of users of the platform" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a thread of forum of users of the platform" // Precisa de tradução "Request removal of thread of forum of users of the platform" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a thread of forum of users of the platform" // Çeviri lazim! "Request removal of thread of forum of users of the platform" // Çeviri lazim!
#endif #endif
, ,
[ActReqDelThrSWATch] = [ActReqDelThrSWATch] =
#if L==1 // ca #if L==1 // ca
"Request removal of a thread of forum of teachers of the platform" // Necessita traducció "Request removal of thread of forum of teachers of the platform" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of a thread of forum of teachers of the platform" // Need Übersetzung "Request removal of thread of forum of teachers of the platform" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of a thread of forum of teachers of the platform" "Request removal of thread of forum of teachers of the platform"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un hilo del foro de profesores de la plataforma" "Solicitar eliminaci&oacute;n de hilo del foro de profesores de la plataforma"
#elif L==5 // fr #elif L==5 // fr
"Request removal of a thread of forum of teachers of the platform" // Besoin de traduction "Request removal of thread of forum of teachers of the platform" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un hilo del foro de profesores de la plataforma" // Okoteve traducción "Solicitar eliminaci&oacute;n de hilo del foro de profesores de la plataforma" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of a thread of forum of teachers of the platform" // Bisogno di traduzione "Request removal of thread of forum of teachers of the platform" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of a thread of forum of teachers of the platform" // Potrzebujesz tlumaczenie "Request removal of thread of forum of teachers of the platform" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of a thread of forum of teachers of the platform" // Precisa de tradução "Request removal of thread of forum of teachers of the platform" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of a thread of forum of teachers of the platform" // Çeviri lazim! "Request removal of thread of forum of teachers of the platform" // Çeviri lazim!
#endif #endif
, ,
[ActDelThrForCrsUsr] = [ActDelThrForCrsUsr] =
@ -32494,25 +32517,25 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
, ,
[ActReqRemEvtMyAgd] = [ActReqRemEvtMyAgd] =
#if L==1 // ca #if L==1 // ca
"Request removal of an event from my agenda" // Necessita traducció "Request removal of event from my agenda" // Necessita traducció
#elif L==2 // de #elif L==2 // de
"Request removal of an event from my agenda" // Need Übersetzung "Request removal of event from my agenda" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Request removal of an event from my agenda" "Request removal of event from my agenda"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de un evento de mi agenda" "Solicitar eliminaci&oacute;n de un evento de mi agenda"
#elif L==5 // fr #elif L==5 // fr
"Request removal of an event from my agenda" // Besoin de traduction "Request removal of event from my agenda" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de un evento de mi agenda" // Okoteve traducción "Solicitar eliminaci&oacute;n de un evento de mi agenda" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"Request removal of an event from my agenda" // Bisogno di traduzione "Request removal of event from my agenda" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
"Request removal of an event from my agenda" // Potrzebujesz tlumaczenie "Request removal of event from my agenda" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"Request removal of an event from my agenda" // Precisa de tradução "Request removal of event from my agenda" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Request removal of an event from my agenda" // Çeviri lazim! "Request removal of event from my agenda" // Çeviri lazim!
#endif #endif
, ,
[ActRemEvtMyAgd] = [ActRemEvtMyAgd] =