mirror of https://github.com/acanas/swad-core.git
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:
|
||||
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 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: 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.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)
|
||||
|
|
|
@ -284,7 +284,7 @@ void Frm_LinkFormSubmitAnimated (const char *Title,const char *LinkClass,
|
|||
if (OnSubmit) // JavaScript function to be called
|
||||
// before submitting the form
|
||||
if (OnSubmit[0])
|
||||
HTM_TxtF ("%s;",OnSubmit);
|
||||
HTM_TxtF ("%s",OnSubmit);
|
||||
HTM_TxtF ("AnimateIcon(%d);"
|
||||
"document.getElementById('%s').submit();return false;\">",
|
||||
Gbl.Form.Num,
|
||||
|
|
|
@ -409,7 +409,8 @@ void Grp_ShowFormToSelectSeveralGroups (void (*FuncParams) (void),
|
|||
HTM_DIV_Begin ("class=\"CM\" style=\"padding-top:12px;\"");
|
||||
Frm_LinkFormSubmitAnimated (Txt_Update_users,
|
||||
The_ClassFormInBoxBold[Gbl.Prefs.Theme],
|
||||
"CopyMessageToHiddenFields();");
|
||||
Gbl.Action.Act == ActReqMsgUsr ? "CopyMessageToHiddenFields();" :
|
||||
NULL);
|
||||
Ico_PutCalculateIconWithText (Txt_Update_users);
|
||||
Frm_LinkFormEnd ();
|
||||
HTM_DIV_End ();
|
||||
|
|
128
swad_project.c
128
swad_project.c
|
@ -124,6 +124,10 @@ struct Prj_Faults
|
|||
/***************************** 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_ShowFormToFilterByMy_All (void);
|
||||
|
@ -227,7 +231,7 @@ static void Prj_LockProjectEditionInDB (long PrjCod);
|
|||
static void Prj_UnlockProjectEditionInDB (long PrjCod);
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************************* List projects *******************************/
|
||||
/******************************* Show projects *******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Prj_SeeProjects (void)
|
||||
|
@ -235,12 +239,115 @@ void Prj_SeeProjects (void)
|
|||
/***** Get parameters *****/
|
||||
Prj_GetParams ();
|
||||
|
||||
/***** Select users? *****/
|
||||
if (Gbl.Prjs.Filter.SelUsrs)
|
||||
Ale_ShowAlert (Ale_INFO,"Vamos a seleccionar usuarios...");
|
||||
/***** Show projects *****/
|
||||
switch (Gbl.Prjs.Filter.Who)
|
||||
{
|
||||
case Usr_WHO_ME:
|
||||
case Usr_WHO_ALL:
|
||||
/***** Show projects *****/
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
/***** Show all the projects *****/
|
||||
Prj_ShowProjectsInCurrentPage ();
|
||||
/*****************************************************************************/
|
||||
/**************************** 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)
|
||||
Usr_PutHiddenParamWho (Filter->Who);
|
||||
|
||||
if (Filter->Who == Usr_WHO_SELECTED)
|
||||
Par_PutHiddenParamChar ("SelUsrs",'Y');
|
||||
|
||||
if (Filter->Assign != ((unsigned) Prj_FILTER_ASSIGNED_DEFAULT |
|
||||
(unsigned) Prj_FILTER_NONASSIG_DEFAULT))
|
||||
Prj_PutHiddenParamAssign (Filter->Assign);
|
||||
|
@ -766,9 +876,13 @@ static void Prj_GetParamWho (void)
|
|||
Gbl.Prjs.Filter.Who = Prj_FILTER_WHO_DEFAULT;
|
||||
|
||||
/***** Select users? *****/
|
||||
Gbl.Prjs.Filter.ReqUsrs = false;
|
||||
Gbl.Prjs.Filter.SelUsrs = false;
|
||||
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
|
||||
{
|
||||
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 Hidden; // Show hidden / visible 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";
|
||||
#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 =
|
||||
#if L==1 // ca
|
||||
"Veure fitxa i horari de tutories";
|
||||
|
|
|
@ -6200,7 +6200,8 @@ void Usr_PutFormToSelectUsrsToGoToAct (Act_Action_t NextAction,void (*FuncParams
|
|||
FuncParams ();
|
||||
Grp_PutParamsCodGrps ();
|
||||
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 */
|
||||
HTM_TABLE_BeginCenter ();
|
||||
|
@ -9747,7 +9748,7 @@ void Usr_PutWhoIcon (Usr_Who_t Who)
|
|||
"ICO_HIGHLIGHT PHOTO15x20");
|
||||
break;
|
||||
case Usr_WHO_SELECTED:
|
||||
Par_PutHiddenParamChar ("SelUsrs",'Y');
|
||||
Par_PutHiddenParamChar ("RequestUsrs",'Y');
|
||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg",
|
||||
Txt_WHO[Who],
|
||||
"ICO_HIGHLIGHT ICOx20");
|
||||
|
|
Loading…
Reference in New Issue