mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-01 14:25:27 +02:00
Version19.66
This commit is contained in:
parent
00a5c3659d
commit
8ca04e79a5
|
@ -487,7 +487,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
||||||
En OpenSWAD:
|
En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
ps2pdf source.ps destination.pdf
|
||||||
*/
|
*/
|
||||||
#define Log_PLATFORM_VERSION "SWAD 19.65.5 (2019-11-12)"
|
#define Log_PLATFORM_VERSION "SWAD 19.66 (2019-11-12)"
|
||||||
#define CSS_FILE "swad19.47.css"
|
#define CSS_FILE "swad19.47.css"
|
||||||
#define JS_FILE "swad19.65.js"
|
#define JS_FILE "swad19.65.js"
|
||||||
/*
|
/*
|
||||||
|
@ -496,6 +496,7 @@ ps2pdf source.ps destination.pdf
|
||||||
// TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia)
|
// TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia)
|
||||||
// TODO: Code refactoring in HTML h1, title, meta, video, p, iframe, input hidden, area
|
// TODO: Code refactoring in HTML h1, title, meta, video, p, iframe, input hidden, area
|
||||||
|
|
||||||
|
Version 19.66: Nov 13, 2019 Changes in selection of which users in projects. (246638 lines)
|
||||||
Version 19.65.5: Nov 12, 2019 Changes in selection of which users in projects. (246519 lines)
|
Version 19.65.5: Nov 12, 2019 Changes in selection of which users in projects. (246519 lines)
|
||||||
Version 19.65.4: Nov 12, 2019 Fixed bug in HTML input texts. (246505 lines)
|
Version 19.65.4: Nov 12, 2019 Fixed bug in HTML input texts. (246505 lines)
|
||||||
Version 19.65.3: Nov 12, 2019 Fixed bug in listing of students' works. (246455 lines)
|
Version 19.65.3: Nov 12, 2019 Fixed bug in listing of students' works. (246455 lines)
|
||||||
|
|
|
@ -284,7 +284,7 @@ void Frm_LinkFormSubmitAnimated (const char *Title,const char *LinkClass,
|
||||||
if (OnSubmit) // JavaScript function to be called
|
if (OnSubmit) // JavaScript function to be called
|
||||||
// before submitting the form
|
// before submitting the form
|
||||||
if (OnSubmit[0])
|
if (OnSubmit[0])
|
||||||
HTM_TxtF ("%s;",OnSubmit);
|
HTM_TxtF ("%s",OnSubmit);
|
||||||
HTM_TxtF ("AnimateIcon(%d);"
|
HTM_TxtF ("AnimateIcon(%d);"
|
||||||
"document.getElementById('%s').submit();return false;\">",
|
"document.getElementById('%s').submit();return false;\">",
|
||||||
Gbl.Form.Num,
|
Gbl.Form.Num,
|
||||||
|
|
|
@ -409,7 +409,8 @@ void Grp_ShowFormToSelectSeveralGroups (void (*FuncParams) (void),
|
||||||
HTM_DIV_Begin ("class=\"CM\" style=\"padding-top:12px;\"");
|
HTM_DIV_Begin ("class=\"CM\" style=\"padding-top:12px;\"");
|
||||||
Frm_LinkFormSubmitAnimated (Txt_Update_users,
|
Frm_LinkFormSubmitAnimated (Txt_Update_users,
|
||||||
The_ClassFormInBoxBold[Gbl.Prefs.Theme],
|
The_ClassFormInBoxBold[Gbl.Prefs.Theme],
|
||||||
"CopyMessageToHiddenFields();");
|
Gbl.Action.Act == ActReqMsgUsr ? "CopyMessageToHiddenFields();" :
|
||||||
|
NULL);
|
||||||
Ico_PutCalculateIconWithText (Txt_Update_users);
|
Ico_PutCalculateIconWithText (Txt_Update_users);
|
||||||
Frm_LinkFormEnd ();
|
Frm_LinkFormEnd ();
|
||||||
HTM_DIV_End ();
|
HTM_DIV_End ();
|
||||||
|
|
128
swad_project.c
128
swad_project.c
|
@ -124,6 +124,10 @@ struct Prj_Faults
|
||||||
/***************************** Private prototypes ****************************/
|
/***************************** Private prototypes ****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Prj_ReqListUsrsToSelect (void);
|
||||||
|
static void Prj_ShowProjectsOfSelectedUsrs (void);
|
||||||
|
static void Prj_GetListSelectedUsrCods (unsigned NumUsrsInList,long **LstSelectedUsrCods);
|
||||||
|
|
||||||
static void Prj_ShowProjectsInCurrentPage (void);
|
static void Prj_ShowProjectsInCurrentPage (void);
|
||||||
|
|
||||||
static void Prj_ShowFormToFilterByMy_All (void);
|
static void Prj_ShowFormToFilterByMy_All (void);
|
||||||
|
@ -227,7 +231,7 @@ static void Prj_LockProjectEditionInDB (long PrjCod);
|
||||||
static void Prj_UnlockProjectEditionInDB (long PrjCod);
|
static void Prj_UnlockProjectEditionInDB (long PrjCod);
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************* List projects *******************************/
|
/******************************* Show projects *******************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Prj_SeeProjects (void)
|
void Prj_SeeProjects (void)
|
||||||
|
@ -235,12 +239,115 @@ void Prj_SeeProjects (void)
|
||||||
/***** Get parameters *****/
|
/***** Get parameters *****/
|
||||||
Prj_GetParams ();
|
Prj_GetParams ();
|
||||||
|
|
||||||
/***** Select users? *****/
|
/***** Show projects *****/
|
||||||
if (Gbl.Prjs.Filter.SelUsrs)
|
switch (Gbl.Prjs.Filter.Who)
|
||||||
Ale_ShowAlert (Ale_INFO,"Vamos a seleccionar usuarios...");
|
{
|
||||||
|
case Usr_WHO_ME:
|
||||||
/***** Show all the projects *****/
|
case Usr_WHO_ALL:
|
||||||
|
/***** Show projects *****/
|
||||||
Prj_ShowProjectsInCurrentPage ();
|
Prj_ShowProjectsInCurrentPage ();
|
||||||
|
break;
|
||||||
|
case Usr_WHO_SELECTED:
|
||||||
|
if (Gbl.Prjs.Filter.ReqUsrs)
|
||||||
|
/***** List users to select some of them *****/
|
||||||
|
Prj_ReqListUsrsToSelect ();
|
||||||
|
if (Gbl.Prjs.Filter.SelUsrs) // Some users should have been selected
|
||||||
|
/***** Show projects *****/
|
||||||
|
Prj_ShowProjectsOfSelectedUsrs ();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/**************************** List users to select ***************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Prj_ReqListUsrsToSelect (void)
|
||||||
|
{
|
||||||
|
extern const char *Hlp_ASSESSMENT_Projects;
|
||||||
|
extern const char *Txt_Projects;
|
||||||
|
extern const char *Txt_View_projects;
|
||||||
|
|
||||||
|
/***** List users to select some of them *****/
|
||||||
|
Usr_PutFormToSelectUsrsToGoToAct (ActSeePrj,Prj_PutCurrentParams,
|
||||||
|
Txt_Projects,
|
||||||
|
Hlp_ASSESSMENT_Projects,
|
||||||
|
Txt_View_projects);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/******************** Show projects of selected users ************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Prj_ShowProjectsOfSelectedUsrs (void)
|
||||||
|
{
|
||||||
|
extern const char *Txt_You_must_select_one_ore_more_users;
|
||||||
|
unsigned NumUsrsInList;
|
||||||
|
long *LstSelectedUsrCods;
|
||||||
|
|
||||||
|
/***** Get list of selected students if not already got *****/
|
||||||
|
Usr_GetListsSelectedUsrsCods ();
|
||||||
|
|
||||||
|
/* Check the number of students to list */
|
||||||
|
if ((NumUsrsInList = Usr_CountNumUsrsInListOfSelectedUsrs ()))
|
||||||
|
{
|
||||||
|
/***** Get list of groups selected ******/
|
||||||
|
Grp_GetParCodsSeveralGrpsToShowUsrs ();
|
||||||
|
|
||||||
|
/***** Get list of students selected to show their attendances *****/
|
||||||
|
Prj_GetListSelectedUsrCods (NumUsrsInList,&LstSelectedUsrCods);
|
||||||
|
|
||||||
|
/***** Show projects *****/
|
||||||
|
Prj_ShowProjectsInCurrentPage ();
|
||||||
|
|
||||||
|
/***** Free list of user codes *****/
|
||||||
|
free (LstSelectedUsrCods);
|
||||||
|
|
||||||
|
/***** Free list of groups selected *****/
|
||||||
|
Grp_FreeListCodSelectedGrps ();
|
||||||
|
}
|
||||||
|
else // No users selected
|
||||||
|
{
|
||||||
|
Ale_ShowAlert (Ale_WARNING,Txt_You_must_select_one_ore_more_users);
|
||||||
|
Prj_ReqListUsrsToSelect (); // ...show again the form
|
||||||
|
}
|
||||||
|
|
||||||
|
/***** Free memory used by list of selected users' codes *****/
|
||||||
|
Usr_FreeListsSelectedUsrsCods ();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/************* Get list of users selected to show their projects *************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Prj_GetListSelectedUsrCods (unsigned NumUsrsInList,long **LstSelectedUsrCods)
|
||||||
|
{
|
||||||
|
unsigned NumUsr;
|
||||||
|
const char *Ptr;
|
||||||
|
struct UsrData UsrDat;
|
||||||
|
|
||||||
|
/***** Create list of user codes *****/
|
||||||
|
if ((*LstSelectedUsrCods = (long *) calloc ((size_t) NumUsrsInList,sizeof (long))) == NULL)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
|
||||||
|
/***** Initialize structure with user's data *****/
|
||||||
|
Usr_UsrDataConstructor (&UsrDat);
|
||||||
|
|
||||||
|
/***** Loop over the list Gbl.Usrs.Selected.List[Rol_UNK] getting users' codes *****/
|
||||||
|
for (NumUsr = 0, Ptr = Gbl.Usrs.Selected.List[Rol_UNK];
|
||||||
|
NumUsr < NumUsrsInList && *Ptr;
|
||||||
|
NumUsr++)
|
||||||
|
{
|
||||||
|
Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,
|
||||||
|
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64);
|
||||||
|
Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat);
|
||||||
|
(*LstSelectedUsrCods)[NumUsr] = UsrDat.UsrCod;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***** Free memory used for user's data *****/
|
||||||
|
Usr_UsrDataDestructor (&UsrDat);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -622,6 +729,9 @@ void Prj_PutParams (struct Prj_Filter *Filter,
|
||||||
if (Filter->Who != Prj_FILTER_WHO_DEFAULT)
|
if (Filter->Who != Prj_FILTER_WHO_DEFAULT)
|
||||||
Usr_PutHiddenParamWho (Filter->Who);
|
Usr_PutHiddenParamWho (Filter->Who);
|
||||||
|
|
||||||
|
if (Filter->Who == Usr_WHO_SELECTED)
|
||||||
|
Par_PutHiddenParamChar ("SelUsrs",'Y');
|
||||||
|
|
||||||
if (Filter->Assign != ((unsigned) Prj_FILTER_ASSIGNED_DEFAULT |
|
if (Filter->Assign != ((unsigned) Prj_FILTER_ASSIGNED_DEFAULT |
|
||||||
(unsigned) Prj_FILTER_NONASSIG_DEFAULT))
|
(unsigned) Prj_FILTER_NONASSIG_DEFAULT))
|
||||||
Prj_PutHiddenParamAssign (Filter->Assign);
|
Prj_PutHiddenParamAssign (Filter->Assign);
|
||||||
|
@ -766,9 +876,13 @@ static void Prj_GetParamWho (void)
|
||||||
Gbl.Prjs.Filter.Who = Prj_FILTER_WHO_DEFAULT;
|
Gbl.Prjs.Filter.Who = Prj_FILTER_WHO_DEFAULT;
|
||||||
|
|
||||||
/***** Select users? *****/
|
/***** Select users? *****/
|
||||||
|
Gbl.Prjs.Filter.ReqUsrs = false;
|
||||||
Gbl.Prjs.Filter.SelUsrs = false;
|
Gbl.Prjs.Filter.SelUsrs = false;
|
||||||
if (Gbl.Prjs.Filter.Who == Usr_WHO_SELECTED)
|
if (Gbl.Prjs.Filter.Who == Usr_WHO_SELECTED)
|
||||||
Gbl.Prjs.Filter.SelUsrs = Par_GetParToBool ("SelUsrs");
|
{
|
||||||
|
Gbl.Prjs.Filter.ReqUsrs = Par_GetParToBool ("RequestUsrs");
|
||||||
|
Gbl.Prjs.Filter.SelUsrs = Par_GetParToBool ("SelectedUsrs");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -90,7 +90,8 @@ typedef enum
|
||||||
struct Prj_Filter
|
struct Prj_Filter
|
||||||
{
|
{
|
||||||
Usr_Who_t Who; // Show my / selected users' / all projects
|
Usr_Who_t Who; // Show my / selected users' / all projects
|
||||||
bool SelUsrs; // Select users to view their projects?
|
bool ReqUsrs; // Request selection of users to view their projects?
|
||||||
|
bool SelUsrs; // Are there selected users to view their projects?
|
||||||
unsigned Assign; // Show assigned / non assigned projects
|
unsigned Assign; // Show assigned / non assigned projects
|
||||||
unsigned Hidden; // Show hidden / visible projects
|
unsigned Hidden; // Show hidden / visible projects
|
||||||
unsigned Faulti; // Show faulty / faultless projects
|
unsigned Faulti; // Show faulty / faultless projects
|
||||||
|
|
21
swad_text.c
21
swad_text.c
|
@ -52695,6 +52695,27 @@ const char *Txt_View_matches_results =
|
||||||
"Ver resultados de partidas";
|
"Ver resultados de partidas";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_View_projects =
|
||||||
|
#if L==1 // ca
|
||||||
|
"Veure projectes";
|
||||||
|
#elif L==2 // de
|
||||||
|
"Anzeigen Projekte";
|
||||||
|
#elif L==3 // en
|
||||||
|
"View projects";
|
||||||
|
#elif L==4 // es
|
||||||
|
"Ver proyectos";
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Voir projets";
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Ver proyectos"; // Okoteve traducción
|
||||||
|
#elif L==7 // it
|
||||||
|
"Vedi progetti";
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Zobacz projekty";
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Ver projetos";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_View_record_and_office_hours =
|
const char *Txt_View_record_and_office_hours =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Veure fitxa i horari de tutories";
|
"Veure fitxa i horari de tutories";
|
||||||
|
|
|
@ -6200,7 +6200,8 @@ void Usr_PutFormToSelectUsrsToGoToAct (Act_Action_t NextAction,void (*FuncParams
|
||||||
FuncParams ();
|
FuncParams ();
|
||||||
Grp_PutParamsCodGrps ();
|
Grp_PutParamsCodGrps ();
|
||||||
Gbl.FileBrowser.FullTree = true; // By default, show all files
|
Gbl.FileBrowser.FullTree = true; // By default, show all files
|
||||||
Brw_PutHiddenParamFullTreeIfSelected ();
|
Brw_PutHiddenParamFullTreeIfSelected (); // TODO: Put this parameter only in file browser
|
||||||
|
Par_PutHiddenParamChar ("SelectedUsrs",'Y');
|
||||||
|
|
||||||
/* Put list of users to select some of them */
|
/* Put list of users to select some of them */
|
||||||
HTM_TABLE_BeginCenter ();
|
HTM_TABLE_BeginCenter ();
|
||||||
|
@ -9747,7 +9748,7 @@ void Usr_PutWhoIcon (Usr_Who_t Who)
|
||||||
"ICO_HIGHLIGHT PHOTO15x20");
|
"ICO_HIGHLIGHT PHOTO15x20");
|
||||||
break;
|
break;
|
||||||
case Usr_WHO_SELECTED:
|
case Usr_WHO_SELECTED:
|
||||||
Par_PutHiddenParamChar ("SelUsrs",'Y');
|
Par_PutHiddenParamChar ("RequestUsrs",'Y');
|
||||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg",
|
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg",
|
||||||
Txt_WHO[Who],
|
Txt_WHO[Who],
|
||||||
"ICO_HIGHLIGHT ICOx20");
|
"ICO_HIGHLIGHT ICOx20");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user