Version 16.169

This commit is contained in:
Antonio Cañas Vargas 2017-03-26 17:32:19 +02:00
parent 307f4e5813
commit e0da869125
7 changed files with 130 additions and 161 deletions

View File

@ -99,7 +99,6 @@ System:
11. ActSeeCty List countries 11. ActSeeCty List countries
12. ActSeePen List pending institutions, centres, degrees and courses 12. ActSeePen List pending institutions, centres, degrees and courses
13. ActReqRemOldCrs Request the total removal of old courses 13. ActReqRemOldCrs Request the total removal of old courses
14. ActSeeDegTyp List types of degrees
15. ActSeeBan See banners 15. ActSeeBan See banners
16. ActSeeLnk See institutional links 16. ActSeeLnk See institutional links
17. ActLstPlg List plugins 17. ActLstPlg List plugins
@ -107,13 +106,15 @@ System:
19. ActSeeCalSys Show the academic calendar 19. ActSeeCalSys Show the academic calendar
21. ActSysSch Search for courses, teachers, documents... 21. ActSysSch Search for courses, teachers, documents...
22. ActEdiDegTyp Request edition of types of degrees
23. ActEdiCty Edit countries 23. ActEdiCty Edit countries
24. ActNewCty Request the creation of a country 24. ActNewCty Request the creation of a country
25. ActRemCty Remove a country 25. ActRemCty Remove a country
26. ActRenCty Change the name of a country 26. ActRenCty Change the name of a country
27. ActChgCtyWWW Change web of country 27. ActChgCtyWWW Change web of country
14. ActSeeDegTyp List types of degrees
22. ActEdiDegTyp Request edition of types of degrees
28. ActNewDegTyp Request the creation of a type of degree 28. ActNewDegTyp Request the creation of a type of degree
29. ActRemDegTyp Request the removal of a type of degree 29. ActRemDegTyp Request the removal of a type of degree
30. ActRenDegTyp Request renaming of a type of degree 30. ActRenDegTyp Request renaming of a type of degree
@ -1519,16 +1520,14 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActSeeCty */{ 862, 1,TabSys,ActSeeCty , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,Cty_ListCountries1 ,Cty_ListCountries2 ,"earth64x64.gif" }, /* ActSeeCty */{ 862, 1,TabSys,ActSeeCty , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,Cty_ListCountries1 ,Cty_ListCountries2 ,"earth64x64.gif" },
/* ActSeePen */{1060, 2,TabSys,ActSeePen , 0, 0, 0, 0, 0, 0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Deg_SeePending ,"hierarchy64x64.png" }, /* ActSeePen */{1060, 2,TabSys,ActSeePen , 0, 0, 0, 0, 0, 0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Deg_SeePending ,"hierarchy64x64.png" },
/* ActReqRemOldCrs */{1109, 3,TabSys,ActReqRemOldCrs , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Crs_AskRemoveOldCrss ,"removeusers64x64.gif" }, /* ActReqRemOldCrs */{1109, 3,TabSys,ActReqRemOldCrs , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Crs_AskRemoveOldCrss ,"removeusers64x64.gif" },
/* ActSeeDegTyp */{1013, 4,TabSys,ActSeeDegTyp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_SeeDegreeTypesInSysTab ,"grouptypes64x64.gif" }, /* ActSeeBan */{1137, 4,TabSys,ActSeeBan , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ban_SeeBanners ,"picture64x64.gif" },
/* ActSeeBan */{1137, 5,TabSys,ActSeeBan , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ban_SeeBanners ,"picture64x64.gif" }, /* ActSeeLnk */{ 748, 5,TabSys,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Lnk_SeeLinks ,"link64x64.gif" },
/* ActSeeLnk */{ 748, 6,TabSys,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Lnk_SeeLinks ,"link64x64.gif" }, /* ActLstPlg */{ 777, 6,TabSys,ActLstPlg , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Plg_ListPlugins ,"blocks64x64.gif" },
/* ActLstPlg */{ 777, 7,TabSys,ActLstPlg , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Plg_ListPlugins ,"blocks64x64.gif" }, /* ActSetUp */{ 840, 7,TabSys,ActSetUp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Set_Setup ,"lightning64x64.gif" },
/* ActSetUp */{ 840, 8,TabSys,ActSetUp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Set_Setup ,"lightning64x64.gif" }, /* ActSeeCalSys */{1622, 8,TabSys,ActSeeCalSys , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cal_DrawCalendarSys ,"calendar64x64.png" },
/* ActSeeCalSys */{1622, 9,TabSys,ActSeeCalSys , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cal_DrawCalendarSys ,"calendar64x64.png" },
// Actions not in menu: // Actions not in menu:
/* ActSysSch */{ 628,-1,TabUnk,ActSysReqSch , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,Sch_GetParamsSearch ,Sch_SysSearch ,NULL}, /* ActSysSch */{ 628,-1,TabUnk,ActSysReqSch , 0, 0, 0, 0, 0, 0,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,Sch_GetParamsSearch ,Sch_SysSearch ,NULL},
/* ActEdiDegTyp */{ 573,-1,TabUnk,ActSeeDegTyp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_ReqEditDegreeTypes ,NULL},
/* ActEdiCty */{ 863,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cty_EditCountries ,NULL}, /* ActEdiCty */{ 863,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cty_EditCountries ,NULL},
/* ActNewCty */{ 864,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cty_RecFormNewCountry ,NULL}, /* ActNewCty */{ 864,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cty_RecFormNewCountry ,NULL},
@ -1536,10 +1535,6 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActRenCty */{ 866,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cty_RenameCountry ,NULL}, /* ActRenCty */{ 866,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cty_RenameCountry ,NULL},
/* ActChgCtyWWW */{1157,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cty_ChangeCtyWWW ,NULL}, /* ActChgCtyWWW */{1157,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Cty_ChangeCtyWWW ,NULL},
/* ActNewDegTyp */{ 537,-1,TabUnk,ActSeeDegTyp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_RecFormNewDegreeType ,NULL},
/* ActRemDegTyp */{ 545,-1,TabUnk,ActSeeDegTyp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_RemoveDegreeType ,NULL},
/* ActRenDegTyp */{ 538,-1,TabUnk,ActSeeDegTyp , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_RenameDegreeType ,NULL},
/* ActRemOldCrs */{1110,-1,TabUnk,ActReqRemOldCrs , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Crs_RemoveOldCrss ,NULL}, /* ActRemOldCrs */{1110,-1,TabUnk,ActReqRemOldCrs , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Crs_RemoveOldCrss ,NULL},
/* ActEdiBan */{1138,-1,TabUnk,ActSeeBan , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ban_EditBanners ,NULL}, /* ActEdiBan */{1138,-1,TabUnk,ActSeeBan , 0, 0, 0, 0, 0, 0,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ban_EditBanners ,NULL},
@ -1678,6 +1673,12 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActRecCtrPho */{1161,-1,TabUnk,ActSeeCtrInf , 0, 0, 0,0x1C0, 0, 0, 0,Act_CONT_DATA,Act_THIS_WINDOW,NULL ,Ctr_ReceivePhoto ,NULL}, /* ActRecCtrPho */{1161,-1,TabUnk,ActSeeCtrInf , 0, 0, 0,0x1C0, 0, 0, 0,Act_CONT_DATA,Act_THIS_WINDOW,NULL ,Ctr_ReceivePhoto ,NULL},
/* ActChgCtrPhoAtt */{1159,-1,TabUnk,ActSeeCtrInf , 0, 0, 0,0x1C0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ctr_ChangeCtrPhotoAttribution ,NULL}, /* ActChgCtrPhoAtt */{1159,-1,TabUnk,ActSeeCtrInf , 0, 0, 0,0x1C0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ctr_ChangeCtrPhotoAttribution ,NULL},
/* ActSeeDegTyp */{1013,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x1FF, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_SeeDegreeTypesInDegTab ,NULL},
/* ActEdiDegTyp */{ 573,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x100, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_ReqEditDegreeTypes ,NULL},
/* ActNewDegTyp */{ 537,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x100, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_RecFormNewDegreeType ,NULL},
/* ActRemDegTyp */{ 545,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x100, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_RemoveDegreeType ,NULL},
/* ActRenDegTyp */{ 538,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x100, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,DT_RenameDegreeType ,NULL},
/* ActEdiDeg */{ 536,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x1FE, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Deg_EditDegrees ,NULL}, /* ActEdiDeg */{ 536,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x1FE, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Deg_EditDegrees ,NULL},
/* ActReqDeg */{1206,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x1FE, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Deg_RecFormReqDeg ,NULL}, /* ActReqDeg */{1206,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x1FE, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Deg_RecFormReqDeg ,NULL},
/* ActNewDeg */{ 540,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x1C0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Deg_RecFormNewDeg ,NULL}, /* ActNewDeg */{ 540,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x1C0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Deg_RecFormNewDeg ,NULL},

View File

@ -57,7 +57,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_NUM_ACTIONS (1 + 9 + 48 + 17 + 47 + 27 + 24 + 115 + 54 + 416 + 159 + 172 + 42 + 31 + 96) #define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 32 + 24 + 115 + 54 + 416 + 159 + 172 + 42 + 31 + 96)
#define Act_MAX_ACTION_COD 1636 #define Act_MAX_ACTION_COD 1636
@ -91,58 +91,52 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActSeeCty (ActWebSvc + 2) #define ActSeeCty (ActWebSvc + 2)
#define ActSeePen (ActWebSvc + 3) #define ActSeePen (ActWebSvc + 3)
#define ActReqRemOldCrs (ActWebSvc + 4) #define ActReqRemOldCrs (ActWebSvc + 4)
#define ActSeeDegTyp (ActWebSvc + 5) #define ActSeeBan (ActWebSvc + 5)
#define ActSeeBan (ActWebSvc + 6) #define ActSeeLnk (ActWebSvc + 6)
#define ActSeeLnk (ActWebSvc + 7) #define ActLstPlg (ActWebSvc + 7)
#define ActLstPlg (ActWebSvc + 8) #define ActSetUp (ActWebSvc + 8)
#define ActSetUp (ActWebSvc + 9) #define ActSeeCalSys (ActWebSvc + 9)
#define ActSeeCalSys (ActWebSvc + 10)
// Secondary actions // Secondary actions
#define ActSysSch (ActWebSvc + 11) #define ActSysSch (ActWebSvc + 10)
#define ActEdiDegTyp (ActWebSvc + 12) #define ActEdiCty (ActWebSvc + 11)
#define ActEdiCty (ActWebSvc + 13) #define ActNewCty (ActWebSvc + 12)
#define ActNewCty (ActWebSvc + 14) #define ActRemCty (ActWebSvc + 13)
#define ActRemCty (ActWebSvc + 15) #define ActRenCty (ActWebSvc + 14)
#define ActRenCty (ActWebSvc + 16) #define ActChgCtyWWW (ActWebSvc + 15)
#define ActChgCtyWWW (ActWebSvc + 17)
#define ActNewDegTyp (ActWebSvc + 18) #define ActRemOldCrs (ActWebSvc + 16)
#define ActRemDegTyp (ActWebSvc + 19)
#define ActRenDegTyp (ActWebSvc + 20)
#define ActRemOldCrs (ActWebSvc + 21) #define ActEdiBan (ActWebSvc + 17)
#define ActNewBan (ActWebSvc + 18)
#define ActRemBan (ActWebSvc + 19)
#define ActShoBan (ActWebSvc + 20)
#define ActHidBan (ActWebSvc + 21)
#define ActRenBanSho (ActWebSvc + 22)
#define ActRenBanFul (ActWebSvc + 23)
#define ActChgBanImg (ActWebSvc + 24)
#define ActChgBanWWW (ActWebSvc + 25)
#define ActClkBan (ActWebSvc + 26)
#define ActEdiBan (ActWebSvc + 22) #define ActEdiLnk (ActWebSvc + 27)
#define ActNewBan (ActWebSvc + 23) #define ActNewLnk (ActWebSvc + 28)
#define ActRemBan (ActWebSvc + 24) #define ActRemLnk (ActWebSvc + 29)
#define ActShoBan (ActWebSvc + 25) #define ActRenLnkSho (ActWebSvc + 30)
#define ActHidBan (ActWebSvc + 26) #define ActRenLnkFul (ActWebSvc + 31)
#define ActRenBanSho (ActWebSvc + 27) #define ActChgLnkWWW (ActWebSvc + 32)
#define ActRenBanFul (ActWebSvc + 28)
#define ActChgBanImg (ActWebSvc + 29)
#define ActChgBanWWW (ActWebSvc + 30)
#define ActClkBan (ActWebSvc + 31)
#define ActEdiLnk (ActWebSvc + 32) #define ActEdiPlg (ActWebSvc + 33)
#define ActNewLnk (ActWebSvc + 33) #define ActNewPlg (ActWebSvc + 34)
#define ActRemLnk (ActWebSvc + 34) #define ActRemPlg (ActWebSvc + 35)
#define ActRenLnkSho (ActWebSvc + 35) #define ActRenPlg (ActWebSvc + 36)
#define ActRenLnkFul (ActWebSvc + 36) #define ActChgPlgDes (ActWebSvc + 37)
#define ActChgLnkWWW (ActWebSvc + 37) #define ActChgPlgLog (ActWebSvc + 38)
#define ActChgPlgAppKey (ActWebSvc + 39)
#define ActChgPlgURL (ActWebSvc + 40)
#define ActChgPlgIP (ActWebSvc + 41)
#define ActEdiPlg (ActWebSvc + 38) #define ActPrnCalSys (ActWebSvc + 42)
#define ActNewPlg (ActWebSvc + 39) #define ActChgCalSys1stDay (ActWebSvc + 43)
#define ActRemPlg (ActWebSvc + 40)
#define ActRenPlg (ActWebSvc + 41)
#define ActChgPlgDes (ActWebSvc + 42)
#define ActChgPlgLog (ActWebSvc + 43)
#define ActChgPlgAppKey (ActWebSvc + 44)
#define ActChgPlgURL (ActWebSvc + 45)
#define ActChgPlgIP (ActWebSvc + 46)
#define ActPrnCalSys (ActWebSvc + 47)
#define ActChgCalSys1stDay (ActWebSvc + 48)
/*****************************************************************************/ /*****************************************************************************/
/******************************** Country tab ********************************/ /******************************** Country tab ********************************/
@ -252,18 +246,24 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActRecCtrPho (ActChgCalIns1stDay + 15) #define ActRecCtrPho (ActChgCalIns1stDay + 15)
#define ActChgCtrPhoAtt (ActChgCalIns1stDay + 16) #define ActChgCtrPhoAtt (ActChgCalIns1stDay + 16)
#define ActEdiDeg (ActChgCalIns1stDay + 17) #define ActSeeDegTyp (ActChgCalIns1stDay + 17)
#define ActReqDeg (ActChgCalIns1stDay + 18) #define ActEdiDegTyp (ActChgCalIns1stDay + 18)
#define ActNewDeg (ActChgCalIns1stDay + 19) #define ActNewDegTyp (ActChgCalIns1stDay + 19)
#define ActRemDeg (ActChgCalIns1stDay + 20) #define ActRemDegTyp (ActChgCalIns1stDay + 20)
#define ActRenDegSho (ActChgCalIns1stDay + 21) #define ActRenDegTyp (ActChgCalIns1stDay + 21)
#define ActRenDegFul (ActChgCalIns1stDay + 22)
#define ActChgDegTyp (ActChgCalIns1stDay + 23)
#define ActChgDegWWW (ActChgCalIns1stDay + 24)
#define ActChgDegSta (ActChgCalIns1stDay + 25)
#define ActPrnCalCtr (ActChgCalIns1stDay + 26) #define ActEdiDeg (ActChgCalIns1stDay + 22)
#define ActChgCalCtr1stDay (ActChgCalIns1stDay + 27) #define ActReqDeg (ActChgCalIns1stDay + 23)
#define ActNewDeg (ActChgCalIns1stDay + 24)
#define ActRemDeg (ActChgCalIns1stDay + 25)
#define ActRenDegSho (ActChgCalIns1stDay + 26)
#define ActRenDegFul (ActChgCalIns1stDay + 27)
#define ActChgDegTyp (ActChgCalIns1stDay + 28)
#define ActChgDegWWW (ActChgCalIns1stDay + 29)
#define ActChgDegSta (ActChgCalIns1stDay + 30)
#define ActPrnCalCtr (ActChgCalIns1stDay + 31)
#define ActChgCalCtr1stDay (ActChgCalIns1stDay + 32)
/*****************************************************************************/ /*****************************************************************************/
/********************************* Degree tab ********************************/ /********************************* Degree tab ********************************/

View File

@ -211,13 +211,14 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.168.1 (2017-03-26)" #define Log_PLATFORM_VERSION "SWAD 16.169 (2017-03-26)"
#define CSS_FILE "swad16.166.css" #define CSS_FILE "swad16.166.css"
#define JS_FILE "swad16.144.js" #define JS_FILE "swad16.144.js"
// Number of lines (includes comments but not blank lines) has been got with the following command: // Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
/* /*
Version 16.169: Mar 26, 2017 Action to view degree types removed from main menu. (217660 lines)
Version 16.168.1: Mar 26, 2017 Link to view degree types in degrees. (217694 lines) Version 16.168.1: Mar 26, 2017 Link to view degree types in degrees. (217694 lines)
Version 16.168: Mar 26, 2017 Action to view places removed from main menu. (217679 lines) Version 16.168: Mar 26, 2017 Action to view places removed from main menu. (217679 lines)
Version 16.167.16:Mar 26, 2017 Link to view places in centres. (217718 lines) Version 16.167.16:Mar 26, 2017 Link to view places in centres. (217718 lines)

View File

@ -699,7 +699,8 @@ static void Deg_ListDegreesForEdition (void)
/***** Write heading *****/ /***** Write heading *****/
sprintf (Gbl.Title,Txt_Degrees_of_CENTRE_X, sprintf (Gbl.Title,Txt_Degrees_of_CENTRE_X,
Gbl.CurrentCtr.Ctr.ShrtName); Gbl.CurrentCtr.Ctr.ShrtName);
Lay_StartRoundFrameTable (NULL,Gbl.Title,NULL,Hlp_CENTRE_Degrees,2); Lay_StartRoundFrameTable (NULL,Gbl.Title,DT_PutIconToViewDegreeTypes,
Hlp_CENTRE_Degrees,2);
Deg_PutHeadDegreesForEdition (); Deg_PutHeadDegreesForEdition ();
/***** List the degrees *****/ /***** List the degrees *****/
@ -949,6 +950,15 @@ static void Deg_PutFormToCreateDegree (void)
struct DegreeType *DegTyp; struct DegreeType *DegTyp;
unsigned NumDegTyp; unsigned NumDegTyp;
/***** Degree data *****/
Deg = &Gbl.Degs.EditingDeg;
/***** Start of frame *****/
sprintf (Gbl.Title,Txt_New_degree_of_CENTRE_X,
Gbl.CurrentCtr.Ctr.ShrtName);
Lay_StartRoundFrame (NULL,Gbl.Title,DT_PutIconToViewDegreeTypes,
Hlp_CENTRE_Degrees);
/***** Start form *****/ /***** Start form *****/
if (Gbl.Usrs.Me.LoggedRole >= Rol_CTR_ADM) if (Gbl.Usrs.Me.LoggedRole >= Rol_CTR_ADM)
Act_FormStart (ActNewDeg); Act_FormStart (ActNewDeg);
@ -957,15 +967,10 @@ static void Deg_PutFormToCreateDegree (void)
else else
Lay_ShowErrorAndExit ("You can not edit degrees."); Lay_ShowErrorAndExit ("You can not edit degrees.");
/***** Degree data *****/ /***** Start table *****/
Deg = &Gbl.Degs.EditingDeg; fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_MARGIN CELLS_PAD_2\">");
/***** Start of frame *****/ /***** Table head *****/
sprintf (Gbl.Title,Txt_New_degree_of_CENTRE_X,
Gbl.CurrentCtr.Ctr.ShrtName);
Lay_StartRoundFrameTable (NULL,Gbl.Title,NULL,Hlp_CENTRE_Degrees,2);
/***** Write heading *****/
Deg_PutHeadDegreesForEdition (); Deg_PutHeadDegreesForEdition ();
/***** Put disabled icon to remove degree *****/ /***** Put disabled icon to remove degree *****/
@ -1045,11 +1050,17 @@ static void Deg_PutFormToCreateDegree (void)
"</td>" "</td>"
"</tr>"); "</tr>");
/***** Send button and end frame *****/ /***** End table *****/
Lay_EndRoundFrameTableWithButton (Lay_CREATE_BUTTON,Txt_Create_degree); fprintf (Gbl.F.Out,"</table>");
/***** Button to send form *****/
Lay_PutCreateButton (Txt_Create_degree);
/***** End form *****/ /***** End form *****/
Act_FormEnd (); Act_FormEnd ();
/***** End frame *****/
Lay_EndRoundFrame ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1365,7 +1376,7 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
void Deg_EditDegrees (void) void Deg_EditDegrees (void)
{ {
extern const char *Txt_There_is_no_list_of_types_of_degree; extern const char *Txt_There_are_no_types_of_degree;
extern const char *Txt_You_must_create_at_least_one_type_of_degree_before_creating_degrees; extern const char *Txt_You_must_create_at_least_one_type_of_degree_before_creating_degrees;
/***** Get list of degrees in the current centre *****/ /***** Get list of degrees in the current centre *****/
@ -1385,8 +1396,12 @@ void Deg_EditDegrees (void)
} }
else // No degree types else // No degree types
{ {
Lay_ShowAlert (Lay_WARNING,Txt_There_is_no_list_of_types_of_degree); /***** Warning message *****/
Lay_ShowAlert (Lay_INFO,Txt_You_must_create_at_least_one_type_of_degree_before_creating_degrees); Lay_ShowAlert (Lay_WARNING,Txt_There_are_no_types_of_degree);
/***** Form to create the first degree type *****/
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
DT_PutFormToCreateDegreeType ();
} }
/***** Free list of degree types *****/ /***** Free list of degree types *****/

View File

@ -73,7 +73,6 @@ static void DT_PutIconsListDegTypes (void);
static void DT_PutIconToEditDegTypes (void); static void DT_PutIconToEditDegTypes (void);
static void DT_ListDegreeTypesForEdition (void); static void DT_ListDegreeTypesForEdition (void);
static void DT_PutFormToCreateDegreeType (void);
static void DT_PutHeadDegreeTypesForSeeing (Act_Action_t NextAction,DT_Order_t SelectedOrder); static void DT_PutHeadDegreeTypesForSeeing (Act_Action_t NextAction,DT_Order_t SelectedOrder);
static void DT_PutHeadDegreeTypesForEdition (void); static void DT_PutHeadDegreeTypesForEdition (void);
static void DT_CreateDegreeType (struct DegreeType *DegTyp); static void DT_CreateDegreeType (struct DegreeType *DegTyp);
@ -84,20 +83,6 @@ static unsigned DT_CountNumDegsOfType (long DegTypCod);
static void DT_RemoveDegreeTypeCompletely (long DegTypCod); static void DT_RemoveDegreeTypeCompletely (long DegTypCod);
static bool DT_CheckIfDegreeTypeNameExists (const char *DegTypName,long DegTypCod); static bool DT_CheckIfDegreeTypeNameExists (const char *DegTypName,long DegTypCod);
/*****************************************************************************/
/******************* Put link (form) to view degree types ********************/
/*****************************************************************************/
void DT_PutIconToViewDegreeTypes (void)
{
extern const char *Txt_Types_of_degree;
Lay_PutContextualLink (ActSeeDegTyp,NULL,
"hierarchy64x64.png",
Txt_Types_of_degree,NULL,
NULL);
}
/*****************************************************************************/ /*****************************************************************************/
/************** Show selector of degree types for statistics *****************/ /************** Show selector of degree types for statistics *****************/
/*****************************************************************************/ /*****************************************************************************/
@ -137,11 +122,25 @@ void DT_WriteSelectorDegreeTypes (void)
DT_FreeListDegreeTypes (); DT_FreeListDegreeTypes ();
} }
/*****************************************************************************/
/******************* Put link (form) to view degree types ********************/
/*****************************************************************************/
void DT_PutIconToViewDegreeTypes (void)
{
extern const char *Txt_Types_of_degree;
Lay_PutContextualLink (ActSeeDegTyp,NULL,
"hierarchy64x64.png",
Txt_Types_of_degree,NULL,
NULL);
}
/*****************************************************************************/ /*****************************************************************************/
/***************************** Show degree types *****************************/ /***************************** Show degree types *****************************/
/*****************************************************************************/ /*****************************************************************************/
void DT_SeeDegreeTypesInSysTab (void) void DT_SeeDegreeTypesInDegTab (void)
{ {
DT_SeeDegreeTypes (ActSeeDegTyp,Sco_SCOPE_SYS, DT_SeeDegreeTypes (ActSeeDegTyp,Sco_SCOPE_SYS,
DT_ORDER_BY_DEGREE_TYPE); // Default order if not specified DT_ORDER_BY_DEGREE_TYPE); // Default order if not specified
@ -203,8 +202,8 @@ void DT_ReqEditDegreeTypes (void)
/***************************** List degree types *****************************/ /***************************** List degree types *****************************/
/*****************************************************************************/ /*****************************************************************************/
// This function can be called from: // This function can be called from:
// - system tab ==> NextAction = ActSeeDegTyp // - centre tab => NextAction = ActSeeDegTyp
// - statistic tab ==> NextAction = ActSeeUseGbl // - statistic tab => NextAction = ActSeeUseGbl
static void DT_ListDegreeTypes (Act_Action_t NextAction,DT_Order_t SelectedOrder) static void DT_ListDegreeTypes (Act_Action_t NextAction,DT_Order_t SelectedOrder)
{ {
@ -328,8 +327,11 @@ static void DT_PutIconsListDegTypes (void)
static void DT_PutIconToEditDegTypes (void) static void DT_PutIconToEditDegTypes (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
bool IsCentreTab = Gbl.CurrentCtr.Ctr.CtrCod > 0 &&
Gbl.CurrentDeg.Deg.DegCod <= 0;
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM) if (IsCentreTab && // Only editable in centre tab
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM) // Only editable by system admins
Lay_PutContextualLink (ActEdiDegTyp,NULL, Lay_PutContextualLink (ActEdiDegTyp,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
@ -359,7 +361,7 @@ static void DT_ListDegreeTypesForEdition (void)
/* Put icon to remove degree type */ /* Put icon to remove degree type */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"BM\">"); "<td class=\"BM\">");
if (Gbl.Degs.DegTypes.Lst[NumDegTyp].NumDegs) // Degree type has degrees ==> deletion forbidden if (Gbl.Degs.DegTypes.Lst[NumDegTyp].NumDegs) // Degree type has degrees => deletion forbidden
Lay_PutIconRemovalNotAllowed (); Lay_PutIconRemovalNotAllowed ();
else else
{ {
@ -404,7 +406,7 @@ static void DT_ListDegreeTypesForEdition (void)
/******************** Put a form to create a new degree type *****************/ /******************** Put a form to create a new degree type *****************/
/*****************************************************************************/ /*****************************************************************************/
static void DT_PutFormToCreateDegreeType (void) void DT_PutFormToCreateDegreeType (void)
{ {
extern const char *Hlp_SYSTEM_Studies_edit; extern const char *Hlp_SYSTEM_Studies_edit;
extern const char *Txt_New_type_of_degree; extern const char *Txt_New_type_of_degree;
@ -731,9 +733,9 @@ void DT_RemoveDegreeType (void)
Lay_ShowErrorAndExit ("Code of type of degree not found."); Lay_ShowErrorAndExit ("Code of type of degree not found.");
/***** Check if this degree type has degrees *****/ /***** Check if this degree type has degrees *****/
if (DegTyp.NumDegs) // Degree type has degrees ==> don't remove if (DegTyp.NumDegs) // Degree type has degrees => don't remove
Lay_ShowAlert (Lay_WARNING,Txt_To_remove_a_type_of_degree_you_must_first_remove_all_degrees_of_that_type); Lay_ShowAlert (Lay_WARNING,Txt_To_remove_a_type_of_degree_you_must_first_remove_all_degrees_of_that_type);
else // Degree type has no degrees ==> remove it else // Degree type has no degrees => remove it
{ {
/***** Remove degree type *****/ /***** Remove degree type *****/
DT_RemoveDegreeTypeCompletely (DegTyp.DegTypCod); DT_RemoveDegreeTypeCompletely (DegTyp.DegTypCod);

View File

@ -58,12 +58,13 @@ typedef enum
/***************************** Public prototypes *****************************/ /***************************** Public prototypes *****************************/
/*****************************************************************************/ /*****************************************************************************/
void DT_PutIconToViewDegreeTypes (void);
void DT_WriteSelectorDegreeTypes (void); void DT_WriteSelectorDegreeTypes (void);
void DT_SeeDegreeTypesInSysTab (void); void DT_PutIconToViewDegreeTypes (void);
void DT_SeeDegreeTypesInDegTab (void);
void DT_SeeDegreeTypesInStaTab (void); void DT_SeeDegreeTypesInStaTab (void);
void DT_ReqEditDegreeTypes (void); void DT_ReqEditDegreeTypes (void);
void DT_PutFormToCreateDegreeType (void);
void DT_GetListDegreeTypes (Sco_Scope_t Scope,DT_Order_t Order); void DT_GetListDegreeTypes (Sco_Scope_t Scope,DT_Order_t Order);
void DT_FreeListDegreeTypes (void); void DT_FreeListDegreeTypes (void);

View File

@ -47260,27 +47260,6 @@ const char *Txt_There_is_no_knowing_how_many_users_not_logged_have_accessed =
"There is no knowing how many users not logged have accessed."; // Necessita de tradução "There is no knowing how many users not logged have accessed."; // Necessita de tradução
#endif #endif
const char *Txt_There_is_no_list_of_types_of_degree =
#if L==1
"No hay lista de tipos de titulaci&oacute;n."; // Necessita traduccio
#elif L==2
"There is no list of types of degree."; // Übersetzung notwendig
#elif L==3
"There is no list of types of degree.";
#elif L==4
"No hay lista de tipos de titulaci&oacute;n.";
#elif L==5
"There is no list of types of degree."; // Besoin de traduction
#elif L==6
"No hay lista de tipos de titulaci&oacute;n."; // Okoteve traducción
#elif L==7
"Non c'&egrave; la lista de tipi di laurea.";
#elif L==8
"There is no list of types of degree."; // Potrzebujesz tlumaczenie
#elif L==9
"There is no list of types of degree."; // Necessita de tradução
#endif
const char *Txt_There_is_no_user_with_email_X = // Warning: it is very important to include %s in the following sentences const char *Txt_There_is_no_user_with_email_X = // Warning: it is very important to include %s in the following sentences
#if L==1 #if L==1
"No existe ning&uacute;n usuario" "No existe ning&uacute;n usuario"
@ -53916,36 +53895,6 @@ const char *Txt_You_have_written_X_posts_in_this_thread = // Warning: it is ver
"Voc&ecirc; escreveu %u posts neste thread"; "Voc&ecirc; escreveu %u posts neste thread";
#endif #endif
const char *Txt_You_must_create_at_least_one_type_of_degree_before_creating_degrees =
#if L==1
"Debe crear al menos un tipo de titulaci&oacute;n"
" antes de crear titulaciones."; // Necessita traduccio
#elif L==2
"You must create at least one type of degree"
" before creating degrees."; // Übersetzung notwendig
#elif L==3
"You must create at least one type of degree"
" before creating degrees.";
#elif L==4
"Debe crear al menos un tipo de titulaci&oacute;n"
" antes de crear titulaciones.";
#elif L==5
"You must create at least one type of degree"
" before creating degrees."; // Besoin de traduction
#elif L==6
"Debe crear al menos un tipo de titulaci&oacute;n"
" antes de crear titulaciones."; // Okoteve traducción
#elif L==7
"Devi creare almeno un tipo di laurea"
" prima di creare lauree.";
#elif L==8
"You must create at least one type of degree"
" before creating degrees."; // Potrzebujesz tlumaczenie
#elif L==9
"You must create at least one type of degree"
" before creating degrees."; // Necessita de tradução
#endif
const char *Txt_You_must_enter_an_integer_value_as_the_correct_answer = const char *Txt_You_must_enter_an_integer_value_as_the_correct_answer =
#if L==1 #if L==1
"Debe escribir un valor entero como respuesta correcta."; // Necessita traduccio "Debe escribir un valor entero como respuesta correcta."; // Necessita traduccio