Version19.66.2

This commit is contained in:
Antonio Cañas Vargas 2019-11-13 09:49:52 +01:00
parent 8ca04e79a5
commit 3521819e73
6 changed files with 64 additions and 76 deletions

View File

@ -2062,13 +2062,13 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActHidAsg */{ 964,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_HideAssignment ,NULL}, /* ActHidAsg */{ 964,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_HideAssignment ,NULL},
/* ActShoAsg */{ 965,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_ShowAssignment ,NULL}, /* ActShoAsg */{ 965,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_ShowAssignment ,NULL},
/* ActSeeTblAllPrj */{1696,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_ShowTableAllProjects ,NULL}, /* ActSeeTblAllPrj */{1696,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_ShowTableSelectedProjects ,NULL},
/* ActCfgPrj */{1803,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ShowFormConfig ,NULL}, /* ActCfgPrj */{1803,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ShowFormConfig ,NULL},
/* ActRcvCfgPrj */{1804,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReceiveConfigPrj ,NULL}, /* ActRcvCfgPrj */{1804,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReceiveConfigPrj ,NULL},
/* ActReqLckAllPrj */{1775,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqLockAllProjectsEdition ,NULL}, /* ActReqLckAllPrj */{1775,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqLockSelectedProjectsEdition ,NULL},
/* ActReqUnlAllPrj */{1776,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqUnlockAllProjectsEdition,NULL}, /* ActReqUnlAllPrj */{1776,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqUnlockSelectedProjectsEdition,NULL},
/* ActLckAllPrj */{1777,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_LockAllProjectsEdition ,NULL}, /* ActLckAllPrj */{1777,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_LockSelectedProjectsEdition ,NULL},
/* ActUnlAllPrj */{1778,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_UnlockAllProjectsEdition ,NULL}, /* ActUnlAllPrj */{1778,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_UnlockSelectedProjectsEdition ,NULL},
/* ActFrmNewPrj */{1675,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestCreatePrj ,NULL}, /* ActFrmNewPrj */{1675,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestCreatePrj ,NULL},
/* ActEdiOnePrj */{1676,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestEditPrj ,NULL}, /* ActEdiOnePrj */{1676,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestEditPrj ,NULL},
/* ActPrnOnePrj */{1677,-1,TabUnk,ActSeePrj ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_PrintOneProject ,NULL}, /* ActPrnOnePrj */{1677,-1,TabUnk,ActSeePrj ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_PrintOneProject ,NULL},

View File

@ -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.66 (2019-11-12)" #define Log_PLATFORM_VERSION "SWAD 19.66.2 (2019-11-13)"
#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,9 @@ 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.3: Nov 13, 2019 Filter projects by selected users. (? lines)
Version 19.66.2: Nov 13, 2019 Fixed bug in edition of test question. (246628 lines)
Version 19.66.1: Nov 13, 2019 Filter projects by selected users. Not finished. (246627 lines)
Version 19.66: Nov 13, 2019 Changes in selection of which users in projects. (246638 lines) 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)

View File

@ -125,7 +125,6 @@ struct Prj_Faults
/*****************************************************************************/ /*****************************************************************************/
static void Prj_ReqListUsrsToSelect (void); static void Prj_ReqListUsrsToSelect (void);
static void Prj_ShowProjectsOfSelectedUsrs (void);
static void Prj_GetListSelectedUsrCods (unsigned NumUsrsInList,long **LstSelectedUsrCods); static void Prj_GetListSelectedUsrCods (unsigned NumUsrsInList,long **LstSelectedUsrCods);
static void Prj_ShowProjectsInCurrentPage (void); static void Prj_ShowProjectsInCurrentPage (void);
@ -207,6 +206,8 @@ static void Prj_PutFormsToRemEditOnePrj (const struct Project *Prj,
static bool Prj_CheckIfICanEditProject (const struct Project *Prj); static bool Prj_CheckIfICanEditProject (const struct Project *Prj);
static void Prj_GetListProjects (void);
static void Prj_ResetProject (struct Project *Prj); static void Prj_ResetProject (struct Project *Prj);
static void Prj_RequestCreatOrEditPrj (long PrjCod); static void Prj_RequestCreatOrEditPrj (long PrjCod);
@ -244,16 +245,16 @@ void Prj_SeeProjects (void)
{ {
case Usr_WHO_ME: case Usr_WHO_ME:
case Usr_WHO_ALL: case Usr_WHO_ALL:
/***** Show projects *****/ /* Show my projects / all projects */
Prj_ShowProjectsInCurrentPage (); Prj_ShowProjectsInCurrentPage ();
break; break;
case Usr_WHO_SELECTED: case Usr_WHO_SELECTED:
if (Gbl.Prjs.Filter.ReqUsrs) if (Gbl.Prjs.Filter.ReqUsrs) // Request the selection of users
/***** List users to select some of them *****/ /* List users to select some of them */
Prj_ReqListUsrsToSelect (); Prj_ReqListUsrsToSelect ();
if (Gbl.Prjs.Filter.SelUsrs) // Some users should have been selected if (Gbl.Prjs.Filter.SelUsrs) // Some users should have been selected
/***** Show projects *****/ /* Show projects of selected users */
Prj_ShowProjectsOfSelectedUsrs (); Prj_ShowProjectsInCurrentPage ();
break; break;
default: default:
break; break;
@ -277,47 +278,6 @@ static void Prj_ReqListUsrsToSelect (void)
Txt_View_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 *************/ /************* Get list of users selected to show their projects *************/
/*****************************************************************************/ /*****************************************************************************/
@ -351,10 +311,10 @@ static void Prj_GetListSelectedUsrCods (unsigned NumUsrsInList,long **LstSelecte
} }
/*****************************************************************************/ /*****************************************************************************/
/************************ Show all projects in a table ***********************/ /********************** Show selected projects in a table ********************/
/*****************************************************************************/ /*****************************************************************************/
void Prj_ShowTableAllProjects (void) void Prj_ShowTableSelectedProjects (void)
{ {
extern const char *Txt_No_projects; extern const char *Txt_No_projects;
unsigned NumPrj; unsigned NumPrj;
@ -2694,7 +2654,7 @@ static bool Prj_CheckIfICanEditProject (const struct Project *Prj)
/************************** List all the projects ****************************/ /************************** List all the projects ****************************/
/*****************************************************************************/ /*****************************************************************************/
void Prj_GetListProjects (void) static void Prj_GetListProjects (void)
{ {
char *PreNonSubQuery; char *PreNonSubQuery;
char *HidVisSubQuery; char *HidVisSubQuery;
@ -2720,6 +2680,8 @@ void Prj_GetListProjects (void)
}; };
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
unsigned NumUsrsInList;
long *LstSelectedUsrCods;
unsigned long NumRows = 0; // Initialized to avoid warning unsigned long NumRows = 0; // Initialized to avoid warning
unsigned NumPrjsFromDB; unsigned NumPrjsFromDB;
unsigned NumPrjsAfterFilter = 0; unsigned NumPrjsAfterFilter = 0;
@ -2727,10 +2689,20 @@ void Prj_GetListProjects (void)
struct Prj_Faults Faults; struct Prj_Faults Faults;
long PrjCod; long PrjCod;
/***** Get list of selected users' codes if not already got *****/
Usr_GetListsSelectedUsrsCods ();
NumUsrsInList = Usr_CountNumUsrsInListOfSelectedUsrs ();
/***** Get list of users selected to show their projects *****/
if (NumUsrsInList)
Prj_GetListSelectedUsrCods (NumUsrsInList,&LstSelectedUsrCods);
// TODO: Filter by selected users if any
/***** Get list of projects from database *****/
if (Gbl.Prjs.LstIsRead) if (Gbl.Prjs.LstIsRead)
Prj_FreeListProjects (); Prj_FreeListProjects ();
/***** Get list of projects from database *****/
if (Gbl.Prjs.Filter.Assign && // Any selector is on if (Gbl.Prjs.Filter.Assign && // Any selector is on
Gbl.Prjs.Filter.Hidden && // Any selector is on Gbl.Prjs.Filter.Hidden && // Any selector is on
Gbl.Prjs.Filter.Faulti) // Any selector is on Gbl.Prjs.Filter.Faulti) // Any selector is on
@ -2919,6 +2891,13 @@ void Prj_GetListProjects (void)
Gbl.Prjs.Num = NumPrjsAfterFilter; Gbl.Prjs.Num = NumPrjsAfterFilter;
Gbl.Prjs.LstIsRead = true; Gbl.Prjs.LstIsRead = true;
/***** Free list of user codes *****/
if (NumUsrsInList)
free (LstSelectedUsrCods);
/***** Free memory used by list of selected users' codes *****/
Usr_FreeListsSelectedUsrsCods ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -4001,10 +3980,10 @@ static void Prj_PutIconsToLockUnlockAllProjects (void)
} }
/*****************************************************************************/ /*****************************************************************************/
/************ Request locking/unlocking edition of all projects **************/ /********** Request locking/unlocking edition of selected projects ***********/
/*****************************************************************************/ /*****************************************************************************/
void Prj_ReqLockAllProjectsEdition (void) void Prj_ReqLockSelectedProjectsEdition (void)
{ {
extern const char *Txt_Lock_editing; extern const char *Txt_Lock_editing;
extern const char *Txt_Do_you_want_to_lock_the_editing_of_the_X_selected_projects; extern const char *Txt_Do_you_want_to_lock_the_editing_of_the_X_selected_projects;
@ -4038,7 +4017,7 @@ void Prj_ReqLockAllProjectsEdition (void)
Prj_ShowProjectsInCurrentPage (); Prj_ShowProjectsInCurrentPage ();
} }
void Prj_ReqUnlockAllProjectsEdition (void) void Prj_ReqUnlockSelectedProjectsEdition (void)
{ {
extern const char *Txt_Unlock_editing; extern const char *Txt_Unlock_editing;
extern const char *Txt_Do_you_want_to_unlock_the_editing_of_the_X_selected_projects; extern const char *Txt_Do_you_want_to_unlock_the_editing_of_the_X_selected_projects;
@ -4073,10 +4052,10 @@ void Prj_ReqUnlockAllProjectsEdition (void)
} }
/*****************************************************************************/ /*****************************************************************************/
/******************* Lock/unlock edition of all projects *********************/ /***************** Lock/unlock edition of selected projects ******************/
/*****************************************************************************/ /*****************************************************************************/
void Prj_LockAllProjectsEdition (void) void Prj_LockSelectedProjectsEdition (void)
{ {
extern const char *Txt_No_projects; extern const char *Txt_No_projects;
unsigned NumPrj; unsigned NumPrj;
@ -4109,7 +4088,7 @@ void Prj_LockAllProjectsEdition (void)
Prj_ShowProjectsInCurrentPage (); Prj_ShowProjectsInCurrentPage ();
} }
void Prj_UnlockAllProjectsEdition (void) void Prj_UnlockSelectedProjectsEdition (void)
{ {
extern const char *Txt_No_projects; extern const char *Txt_No_projects;
unsigned NumPrj; unsigned NumPrj;

View File

@ -159,7 +159,7 @@ struct Project
/*****************************************************************************/ /*****************************************************************************/
void Prj_SeeProjects (void); void Prj_SeeProjects (void);
void Prj_ShowTableAllProjects (void); void Prj_ShowTableSelectedProjects (void);
void Prj_PutParams (struct Prj_Filter *Filter, void Prj_PutParams (struct Prj_Filter *Filter,
Prj_Order_t Order, Prj_Order_t Order,
@ -199,7 +199,6 @@ void Prj_RequestEditPrj (void);
void Prj_AllocMemProject (struct Project *Prj); void Prj_AllocMemProject (struct Project *Prj);
void Prj_FreeMemProject (struct Project *Prj); void Prj_FreeMemProject (struct Project *Prj);
void Prj_GetListProjects (void);
void Prj_GetDataOfProjectByCod (struct Project *Prj); void Prj_GetDataOfProjectByCod (struct Project *Prj);
long Prj_GetCourseOfProject (long PrjCod); long Prj_GetCourseOfProject (long PrjCod);
void Prj_FreeListProjects (void); void Prj_FreeListProjects (void);
@ -215,10 +214,10 @@ void Prj_RecFormProject (void);
void Prj_ShowFormConfig (void); void Prj_ShowFormConfig (void);
void Prj_ReceiveConfigPrj (void); void Prj_ReceiveConfigPrj (void);
void Prj_ReqLockAllProjectsEdition (void); void Prj_ReqLockSelectedProjectsEdition (void);
void Prj_ReqUnlockAllProjectsEdition (void); void Prj_ReqUnlockSelectedProjectsEdition (void);
void Prj_LockAllProjectsEdition (void); void Prj_LockSelectedProjectsEdition (void);
void Prj_UnlockAllProjectsEdition (void); void Prj_UnlockSelectedProjectsEdition (void);
void Prj_LockProjectEdition (void); void Prj_LockProjectEdition (void);
void Prj_UnlockProjectEdition (void); void Prj_UnlockProjectEdition (void);

View File

@ -5183,8 +5183,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
"TagTxt%u", "TagTxt%u",
NumTag); NumTag);
HTM_INPUT_TEXT (StrTagTxt,Tst_MAX_CHARS_TAG,Gbl.Test.Tags.Txt[NumTag],false, HTM_INPUT_TEXT (StrTagTxt,Tst_MAX_CHARS_TAG,Gbl.Test.Tags.Txt[NumTag],false,
"class=\"TAG_TXT\" onchange=\"changeSelTag('%u')\"", "id=\"%s\" class=\"TAG_TXT\" onchange=\"changeSelTag('%u')\"",
NumTag); StrTagTxt,NumTag);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();

View File

@ -6188,20 +6188,27 @@ void Usr_PutFormToSelectUsrsToGoToAct (Act_Action_t NextAction,void (*FuncParams
{ {
if (Usr_GetIfShowBigList (NumTotalUsrs,FuncParams,NULL)) if (Usr_GetIfShowBigList (NumTotalUsrs,FuncParams,NULL))
{ {
/* Form to select type of list used for select several users */ /***** Form to select type of list used for select several users *****/
Usr_ShowFormsToSelectUsrListType (FuncParams); Usr_ShowFormsToSelectUsrListType (FuncParams);
/***** Put link to register students *****/ /***** Link to register students *****/
Enr_CheckStdsAndPutButtonToRegisterStdsInCurrentCrs (); Enr_CheckStdsAndPutButtonToRegisterStdsInCurrentCrs ();
/***** Form to select users ****/
/* Begin form */ /* Begin form */
Frm_StartForm (NextAction); Frm_StartForm (NextAction);
/* Hidden parameters */
if (FuncParams) if (FuncParams)
FuncParams (); FuncParams ();
Grp_PutParamsCodGrps (); Grp_PutParamsCodGrps ();
Gbl.FileBrowser.FullTree = true; // By default, show all files Par_PutHiddenParamChar ("SelectedUsrs",'Y'); // This parameter says to receiver of form
Brw_PutHiddenParamFullTreeIfSelected (); // TODO: Put this parameter only in file browser // that some users should be selected
Par_PutHiddenParamChar ("SelectedUsrs",'Y'); if (NextAction == ActAdmAsgWrkCrs)
{
Gbl.FileBrowser.FullTree = true; // By default, show all files
Brw_PutHiddenParamFullTreeIfSelected ();
}
/* Put list of users to select some of them */ /* Put list of users to select some of them */
HTM_TABLE_BeginCenter (); HTM_TABLE_BeginCenter ();