mirror of https://github.com/acanas/swad-core.git
Version18.116.3
This commit is contained in:
parent
e145998d88
commit
d8f7c4d3f7
|
@ -448,10 +448,11 @@ En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
ps2pdf source.ps destination.pdf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 18.116.2 (2019-04-20)"
|
#define Log_PLATFORM_VERSION "SWAD 18.116.3 (2019-04-20)"
|
||||||
#define CSS_FILE "swad18.112.1.css"
|
#define CSS_FILE "swad18.112.1.css"
|
||||||
#define JS_FILE "swad18.114.js"
|
#define JS_FILE "swad18.114.js"
|
||||||
/*
|
/*
|
||||||
|
Version 18.116.3: Apr 20, 2019 Changed the behaviour of hiding/showing a project. (243105 lines)
|
||||||
Version 18.116.2: Apr 20, 2019 Code refactoring in announcements and notices. (243124 lines)
|
Version 18.116.2: Apr 20, 2019 Code refactoring in announcements and notices. (243124 lines)
|
||||||
Version 18.116.1: Apr 20, 2019 Code refactoring in edition of banners. (243246 lines)
|
Version 18.116.1: Apr 20, 2019 Code refactoring in edition of banners. (243246 lines)
|
||||||
Version 18.116: Apr 19, 2019 Code refactoring related to actions and AJAX. (243246 lines)
|
Version 18.116: Apr 19, 2019 Code refactoring related to actions and AJAX. (243246 lines)
|
||||||
|
|
|
@ -144,6 +144,8 @@ static void Prj_PutIconsToLockUnlockAllProjects (void);
|
||||||
|
|
||||||
static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
|
static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
|
||||||
Prj_ProjectView_t ProjectView);
|
Prj_ProjectView_t ProjectView);
|
||||||
|
static void Prj_SetAnchorStr (long PrjCod,char **Anchor);
|
||||||
|
static void Prj_FreeAnchorStr (char *Anchor);
|
||||||
static void Prj_PutIconToToggleProject (unsigned UniqueId,
|
static void Prj_PutIconToToggleProject (unsigned UniqueId,
|
||||||
const char *Icon,const char *Text);
|
const char *Icon,const char *Text);
|
||||||
static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj);
|
static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj);
|
||||||
|
@ -184,6 +186,7 @@ static void Prj_RemUsrFromPrj (Prj_RoleInProject_t RoleInProject);
|
||||||
static void Prj_GetParamPrjOrder (void);
|
static void Prj_GetParamPrjOrder (void);
|
||||||
|
|
||||||
static void Prj_PutFormsToRemEditOnePrj (const struct Project *Prj,
|
static void Prj_PutFormsToRemEditOnePrj (const struct Project *Prj,
|
||||||
|
const char *Anchor,
|
||||||
bool ICanViewProjectFiles);
|
bool ICanViewProjectFiles);
|
||||||
|
|
||||||
static bool Prj_CheckIfICanEditProject (const struct Project *Prj);
|
static bool Prj_CheckIfICanEditProject (const struct Project *Prj);
|
||||||
|
@ -972,9 +975,13 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
|
||||||
extern const char *Txt_Description;
|
extern const char *Txt_Description;
|
||||||
extern const char *Txt_Required_knowledge;
|
extern const char *Txt_Required_knowledge;
|
||||||
extern const char *Txt_Required_materials;
|
extern const char *Txt_Required_materials;
|
||||||
|
char *Anchor = NULL;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
bool ICanViewProjectFiles = Prj_CheckIfICanViewProjectFiles (Prj_GetMyRolesInProject (Prj->PrjCod));
|
bool ICanViewProjectFiles = Prj_CheckIfICanViewProjectFiles (Prj_GetMyRolesInProject (Prj->PrjCod));
|
||||||
|
|
||||||
|
/***** Set anchor string *****/
|
||||||
|
Prj_SetAnchorStr (Prj->PrjCod,&Anchor);
|
||||||
|
|
||||||
/***** Write first row of data of this project *****/
|
/***** Write first row of data of this project *****/
|
||||||
fprintf (Gbl.F.Out,"<tr>");
|
fprintf (Gbl.F.Out,"<tr>");
|
||||||
|
|
||||||
|
@ -982,12 +989,13 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
|
||||||
switch (ProjectView)
|
switch (ProjectView)
|
||||||
{
|
{
|
||||||
case Prj_LIST_PROJECTS:
|
case Prj_LIST_PROJECTS:
|
||||||
fprintf (Gbl.F.Out,"<td rowspan=\"3\" class=\"%s RIGHT_TOP COLOR%u\">",
|
fprintf (Gbl.F.Out,"<td rowspan=\"3\" class=\"BIG_INDEX %s RIGHT_TOP COLOR%u\">",
|
||||||
Prj->Hidden == Prj_HIDDEN ? "DATE_BLUE_LIGHT" :
|
Prj->Hidden == Prj_HIDDEN ? "DATE_BLUE_LIGHT" :
|
||||||
"DATE_BLUE",
|
"DATE_BLUE",
|
||||||
Gbl.RowEvenOdd);
|
Gbl.RowEvenOdd);
|
||||||
if (NumIndex > 0)
|
Lay_StartArticle (Anchor);
|
||||||
fprintf (Gbl.F.Out,"<div class=\"BIG_INDEX\">%u</div>",NumIndex);
|
fprintf (Gbl.F.Out,"%u",NumIndex);
|
||||||
|
Lay_EndArticle ();
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1003,7 +1011,7 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
|
||||||
if (ProjectView == Prj_LIST_PROJECTS)
|
if (ProjectView == Prj_LIST_PROJECTS)
|
||||||
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
|
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
|
||||||
fprintf (Gbl.F.Out,"\">");
|
fprintf (Gbl.F.Out,"\">");
|
||||||
Prj_PutFormsToRemEditOnePrj (Prj,ICanViewProjectFiles);
|
Prj_PutFormsToRemEditOnePrj (Prj,Anchor,ICanViewProjectFiles);
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1238,9 +1246,37 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
|
||||||
/* Link to view more info about the project */
|
/* Link to view more info about the project */
|
||||||
Prj_ShowOneProjectURL (Prj,ProjectView,"prj_url_",UniqueId);
|
Prj_ShowOneProjectURL (Prj,ProjectView,"prj_url_",UniqueId);
|
||||||
|
|
||||||
|
/***** Free anchor string *****/
|
||||||
|
Prj_FreeAnchorStr (Anchor);
|
||||||
|
|
||||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/****************** Build/free anchor string for a project *******************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Prj_SetAnchorStr (long PrjCod,char **Anchor)
|
||||||
|
{
|
||||||
|
if (PrjCod > 0)
|
||||||
|
{
|
||||||
|
if (asprintf (Anchor,"prj_%ld",
|
||||||
|
PrjCod) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
*Anchor = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Prj_FreeAnchorStr (char *Anchor)
|
||||||
|
{
|
||||||
|
if (Anchor)
|
||||||
|
{
|
||||||
|
free ((void *) Anchor);
|
||||||
|
Anchor = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/********** Put an icon to toggle on/off some fields of a project ************/
|
/********** Put an icon to toggle on/off some fields of a project ************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2238,6 +2274,7 @@ void Prj_PutHiddenParamPrjOrder (void)
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Prj_PutFormsToRemEditOnePrj (const struct Project *Prj,
|
static void Prj_PutFormsToRemEditOnePrj (const struct Project *Prj,
|
||||||
|
const char *Anchor,
|
||||||
bool ICanViewProjectFiles)
|
bool ICanViewProjectFiles)
|
||||||
{
|
{
|
||||||
Gbl.Prjs.PrjCod = Prj->PrjCod; // Used as parameter in contextual links
|
Gbl.Prjs.PrjCod = Prj->PrjCod; // Used as parameter in contextual links
|
||||||
|
@ -2251,10 +2288,10 @@ static void Prj_PutFormsToRemEditOnePrj (const struct Project *Prj,
|
||||||
switch (Prj->Hidden)
|
switch (Prj->Hidden)
|
||||||
{
|
{
|
||||||
case Prj_HIDDEN:
|
case Prj_HIDDEN:
|
||||||
Ico_PutContextualIconToUnhide (ActShoPrj,NULL,Prj_PutCurrentParams);
|
Ico_PutContextualIconToUnhide (ActShoPrj,Anchor,Prj_PutCurrentParams);
|
||||||
break;
|
break;
|
||||||
case Prj_VISIBL:
|
case Prj_VISIBL:
|
||||||
Ico_PutContextualIconToHide (ActHidPrj,NULL,Prj_PutCurrentParams);
|
Ico_PutContextualIconToHide (ActHidPrj,Anchor,Prj_PutCurrentParams);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2907,7 +2944,6 @@ void Prj_RemoveProject (void)
|
||||||
|
|
||||||
void Prj_HideProject (void)
|
void Prj_HideProject (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Project_X_is_now_hidden;
|
|
||||||
struct Project Prj;
|
struct Project Prj;
|
||||||
|
|
||||||
/***** Allocate memory for the project *****/
|
/***** Allocate memory for the project *****/
|
||||||
|
@ -2922,17 +2958,11 @@ void Prj_HideProject (void)
|
||||||
Prj_GetDataOfProjectByCod (&Prj);
|
Prj_GetDataOfProjectByCod (&Prj);
|
||||||
|
|
||||||
if (Prj_CheckIfICanEditProject (&Prj))
|
if (Prj_CheckIfICanEditProject (&Prj))
|
||||||
{
|
|
||||||
/***** Hide project *****/
|
/***** Hide project *****/
|
||||||
DB_QueryUPDATE ("can not hide project",
|
DB_QueryUPDATE ("can not hide project",
|
||||||
"UPDATE projects SET Hidden='Y'"
|
"UPDATE projects SET Hidden='Y'"
|
||||||
" WHERE PrjCod=%ld AND CrsCod=%ld",
|
" WHERE PrjCod=%ld AND CrsCod=%ld",
|
||||||
Prj.PrjCod,Gbl.Hierarchy.Crs.CrsCod);
|
Prj.PrjCod,Gbl.Hierarchy.Crs.CrsCod);
|
||||||
|
|
||||||
/***** Write message to show the change made *****/
|
|
||||||
Ale_ShowAlert (Ale_SUCCESS,Txt_Project_X_is_now_hidden,
|
|
||||||
Prj.Title);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
Lay_NoPermissionExit ();
|
Lay_NoPermissionExit ();
|
||||||
|
|
||||||
|
@ -2949,7 +2979,6 @@ void Prj_HideProject (void)
|
||||||
|
|
||||||
void Prj_ShowProject (void)
|
void Prj_ShowProject (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Project_X_is_now_visible;
|
|
||||||
struct Project Prj;
|
struct Project Prj;
|
||||||
|
|
||||||
/***** Allocate memory for the project *****/
|
/***** Allocate memory for the project *****/
|
||||||
|
@ -2964,17 +2993,11 @@ void Prj_ShowProject (void)
|
||||||
Prj_GetDataOfProjectByCod (&Prj);
|
Prj_GetDataOfProjectByCod (&Prj);
|
||||||
|
|
||||||
if (Prj_CheckIfICanEditProject (&Prj))
|
if (Prj_CheckIfICanEditProject (&Prj))
|
||||||
{
|
|
||||||
/***** Show project *****/
|
/***** Show project *****/
|
||||||
DB_QueryUPDATE ("can not show project",
|
DB_QueryUPDATE ("can not show project",
|
||||||
"UPDATE projects SET Hidden='N'"
|
"UPDATE projects SET Hidden='N'"
|
||||||
" WHERE PrjCod=%ld AND CrsCod=%ld",
|
" WHERE PrjCod=%ld AND CrsCod=%ld",
|
||||||
Prj.PrjCod,Gbl.Hierarchy.Crs.CrsCod);
|
Prj.PrjCod,Gbl.Hierarchy.Crs.CrsCod);
|
||||||
|
|
||||||
/***** Write message to show the change made *****/
|
|
||||||
Ale_ShowAlert (Ale_SUCCESS,Txt_Project_X_is_now_visible,
|
|
||||||
Prj.Title);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
Lay_NoPermissionExit ();
|
Lay_NoPermissionExit ();
|
||||||
|
|
||||||
|
|
42
swad_text.c
42
swad_text.c
|
@ -29884,48 +29884,6 @@ const char *Txt_Project_files =
|
||||||
"Arquivos do projeto";
|
"Arquivos do projeto";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Project_X_is_now_hidden = // Warning: it is very important to include %s in the following sentences
|
|
||||||
#if L==1 // ca
|
|
||||||
"El projecte <strong>%s</strong> ara està ocult.";
|
|
||||||
#elif L==2 // de
|
|
||||||
"Die Projekt <strong>%s</strong> ist jetzt ausgeblendet.";
|
|
||||||
#elif L==3 // en
|
|
||||||
"Project <strong>%s</strong> is now hidden.";
|
|
||||||
#elif L==4 // es
|
|
||||||
"El proyecto <strong>%s</strong> ahora está oculto.";
|
|
||||||
#elif L==5 // fr
|
|
||||||
"Le project <strong>%s</strong> est maintenant caché.";
|
|
||||||
#elif L==6 // gn
|
|
||||||
"El proyecto <strong>%s</strong> ahora está oculto."; // Okoteve traducción
|
|
||||||
#elif L==7 // it
|
|
||||||
"Il progetto <strong>%s</strong> è ora nascosto.";
|
|
||||||
#elif L==8 // pl
|
|
||||||
"Projekt <strong>%s</strong> jest ukryte.";
|
|
||||||
#elif L==9 // pt
|
|
||||||
"O projeto <strong>%s</strong> é agora oculto.";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const char *Txt_Project_X_is_now_visible = // Warning: it is very important to include %s in the following sentences
|
|
||||||
#if L==1 // ca
|
|
||||||
"El projecte <strong>%s</strong> ara està visible.";
|
|
||||||
#elif L==2 // de
|
|
||||||
"Die Projekt <strong>%s</strong> ist jetzt sichtbar.";
|
|
||||||
#elif L==3 // en
|
|
||||||
"Project <strong>%s</strong> is now visible.";
|
|
||||||
#elif L==4 // es
|
|
||||||
"El proyecto <strong>%s</strong> ahora está visible.";
|
|
||||||
#elif L==5 // fr
|
|
||||||
"Le project <strong>%s</strong> est maintenant visible.";
|
|
||||||
#elif L==6 // gn
|
|
||||||
"El proyecto <strong>%s</strong> ahora está visible."; // Okoteve traducción
|
|
||||||
#elif L==7 // it
|
|
||||||
"Il progetto <strong>%s</strong> è ora nascosto.";
|
|
||||||
#elif L==8 // pl
|
|
||||||
"Projekt <strong>%s</strong> jest teraz widoczne.";
|
|
||||||
#elif L==9 // pt
|
|
||||||
"O projeto <strong>%s</strong> é agora visível.";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const char *Txt_PROJECT_ORDER[Prj_NUM_ORDERS] =
|
const char *Txt_PROJECT_ORDER[Prj_NUM_ORDERS] =
|
||||||
{
|
{
|
||||||
// Prj_ORDER_START_TIME
|
// Prj_ORDER_START_TIME
|
||||||
|
|
Loading…
Reference in New Issue