mirror of https://github.com/acanas/swad-core.git
Version 17.11.5
This commit is contained in:
parent
8aabf9bfaf
commit
2b67c53850
|
@ -1176,9 +1176,13 @@ void Asg_RequestCreatOrEditAsg (void)
|
|||
Box_StartBoxTable (NULL,Txt_New_assignment,NULL,
|
||||
Hlp_ASSESSMENT_Assignments_new_assignment,Box_NOT_CLOSABLE,2);
|
||||
else
|
||||
Box_StartBoxTable (NULL,Txt_Edit_assignment,NULL,
|
||||
Box_StartBoxTable (NULL,
|
||||
Asg.Title[0] ? Asg.Title :
|
||||
Txt_Edit_assignment,
|
||||
NULL,
|
||||
Hlp_ASSESSMENT_Assignments_edit_assignment,Box_NOT_CLOSABLE,2);
|
||||
|
||||
|
||||
/***** Assignment title *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"RIGHT_MIDDLE\">"
|
||||
|
|
|
@ -1091,7 +1091,10 @@ void Att_RequestCreatOrEditAttEvent (void)
|
|||
Box_StartBoxTable (NULL,Txt_New_event,NULL,
|
||||
Hlp_USERS_Attendance_new_event,Box_NOT_CLOSABLE,2);
|
||||
else
|
||||
Box_StartBoxTable (NULL,Txt_Edit_event,NULL,
|
||||
Box_StartBoxTable (NULL,
|
||||
Att.Title[0] ? Att.Title :
|
||||
Txt_Edit_event,
|
||||
NULL,
|
||||
Hlp_USERS_Attendance_edit_event,Box_NOT_CLOSABLE,2);
|
||||
|
||||
/***** Attendance event title *****/
|
||||
|
|
|
@ -252,17 +252,19 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 17.11.4 (2017-09-30)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 17.11.5 (2017-10-01)"
|
||||
#define CSS_FILE "swad17.0.css"
|
||||
#define JS_FILE "swad16.206.3.js"
|
||||
|
||||
// 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
|
||||
/*
|
||||
Version 17.11.4: Sep 29, 2017 Changes in edition of a project. (231521 lines)
|
||||
Version 17.11.3: Sep 29, 2017 Changes in layout of projects. (231517 lines)
|
||||
Version 17.11.2: Sep 29, 2017 Changes in layout of projects. (231511 lines)
|
||||
Version 17.11.1: Sep 29, 2017 Code refactoring in projects. (231510 lines)
|
||||
Version 17.11.5: Oct 01, 2017 Changes in order of roles in projects.
|
||||
Changes in edition of assignments, surveys and attendance events. (231536 lines)
|
||||
Version 17.11.4: Sep 30, 2017 Changes in edition of a project. (231521 lines)
|
||||
Version 17.11.3: Sep 30, 2017 Changes in layout of projects. (231517 lines)
|
||||
Version 17.11.2: Sep 30, 2017 Changes in layout of projects. (231511 lines)
|
||||
Version 17.11.1: Sep 30, 2017 Code refactoring in projects. (231510 lines)
|
||||
Version 17.11: Sep 29, 2017 Select which projects to show: only my projects or all projects. (231531 lines)
|
||||
Version 17.10.7: Sep 29, 2017 Icons to select which projects to show: only my projects or all projects. (231456 lines)
|
||||
Version 17.10.6: Sep 25, 2017 Fixed bug when receiving projects. (231357 lines)
|
||||
|
|
215
swad_project.c
215
swad_project.c
|
@ -61,6 +61,14 @@ typedef enum
|
|||
|
||||
#define Prj_INTERVAL_DEFAULT ((time_t) 365 * (time_t) 24 * (time_t) 60 * (time_t) 60) // 1 year
|
||||
|
||||
const Prj_RoleInProject_t Prj_RolesToShow[] =
|
||||
{
|
||||
Prj_ROLE_TUT, // Tutor
|
||||
Prj_ROLE_STD, // Student
|
||||
Prj_ROLE_EVA, // Evaluator
|
||||
};
|
||||
const unsigned Brw_NUM_ROLES_TO_SHOW = sizeof (Prj_RolesToShow) / sizeof (Prj_RolesToShow[0]);
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Private variables *****************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -96,15 +104,14 @@ static void Prj_ShowTableAllProjectsTxtField (struct Project *Prj,
|
|||
static void Prj_ShowOneProjectURL (const struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView);
|
||||
static void Prj_ShowTableAllProjectsURL (const struct Project *Prj);
|
||||
static void Prj_ShowOneProjectUsrs (const struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView,
|
||||
Prj_RoleInProject_t RoleInProject);
|
||||
static void Prj_ShowTableAllProjectsUsrs (const struct Project *Prj,
|
||||
Prj_RoleInProject_t RoleInProject);
|
||||
static void Prj_ShowOneProjectWriteUsrs (long PrjCod,Prj_ProjectView_t ProjectView,
|
||||
Prj_RoleInProject_t RoleInProject);
|
||||
static void Prj_ShowTableAllProjectsWriteUsrs (long PrjCod,
|
||||
Prj_RoleInProject_t RoleInProject);
|
||||
static void Prj_ShowOneProjectMembers (struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView);
|
||||
static void Prj_ShowOneProjectMembersWithARole (const struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView,
|
||||
Prj_RoleInProject_t RoleInProject);
|
||||
static void Prj_ShowTableAllProjectsMembersWithARole (const struct Project *Prj,
|
||||
Prj_RoleInProject_t RoleInProject);
|
||||
|
||||
static unsigned Prj_GetUsrsInPrj (long PrjCod,Prj_RoleInProject_t RoleInProject,
|
||||
MYSQL_RES **mysql_res);
|
||||
|
||||
|
@ -408,7 +415,7 @@ static void Prj_ShowTableAllProjectsHead (void)
|
|||
extern const char *Txt_Preassigned_QUESTION;
|
||||
extern const char *Txt_PROJECT_ROLES_PLURAL_Abc[Prj_NUM_ROLES_IN_PROJECT];
|
||||
Prj_Order_t Order;
|
||||
Prj_RoleInProject_t RoleInProject;
|
||||
unsigned NumRoleToShow;
|
||||
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
for (Order = (Prj_Order_t) 0;
|
||||
|
@ -428,11 +435,11 @@ static void Prj_ShowTableAllProjectsHead (void)
|
|||
fprintf (Gbl.F.Out,"<th class=\"LEFT_TOP DAT_N\">%s</th>",
|
||||
Txt_Preassigned_QUESTION);
|
||||
|
||||
for (RoleInProject = Prj_ROLE_STD;
|
||||
RoleInProject <= Prj_ROLE_EVA;
|
||||
RoleInProject++)
|
||||
for (NumRoleToShow = 0;
|
||||
NumRoleToShow < Brw_NUM_ROLES_TO_SHOW;
|
||||
NumRoleToShow++)
|
||||
fprintf (Gbl.F.Out,"<th class=\"LEFT_TOP DAT_N\">%s</th>",
|
||||
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]);
|
||||
Txt_PROJECT_ROLES_PLURAL_Abc[Prj_RolesToShow[NumRoleToShow]]);
|
||||
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
}
|
||||
|
@ -570,7 +577,6 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie
|
|||
extern const char *Txt_Required_knowledge;
|
||||
extern const char *Txt_Required_materials;
|
||||
extern const char *Txt_Preassigned_QUESTION;
|
||||
Prj_RoleInProject_t RoleInProject;
|
||||
static unsigned UniqueId = 0;
|
||||
|
||||
/***** Get data of this project *****/
|
||||
|
@ -579,7 +585,7 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie
|
|||
/***** Write first row of data of this project *****/
|
||||
/* Forms to remove/edit this project */
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td rowspan=\"9\" class=\"CONTEXT_COL");
|
||||
"<td class=\"CONTEXT_COL");
|
||||
if (ProjectView == Prj_LIST_PROJECTS)
|
||||
{
|
||||
fprintf (Gbl.F.Out," COLOR%u\">",Gbl.RowEvenOdd);
|
||||
|
@ -591,7 +597,7 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie
|
|||
|
||||
/* Start date/time */
|
||||
UniqueId++;
|
||||
fprintf (Gbl.F.Out,"<td id=\"asg_date_start_%u\" class=\"%s LEFT_BOTTOM",
|
||||
fprintf (Gbl.F.Out,"<td id=\"asg_date_start_%u\" class=\"%s LEFT_TOP",
|
||||
UniqueId,
|
||||
Prj->Hidden ? (Prj->Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT") :
|
||||
|
@ -610,7 +616,7 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie
|
|||
|
||||
/* End date/time */
|
||||
UniqueId++;
|
||||
fprintf (Gbl.F.Out,"<td id=\"asg_date_end_%u\" class=\"%s LEFT_BOTTOM",
|
||||
fprintf (Gbl.F.Out,"<td id=\"asg_date_end_%u\" class=\"%s LEFT_TOP",
|
||||
UniqueId,
|
||||
Prj->Hidden ? (Prj->Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT") :
|
||||
|
@ -621,7 +627,7 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie
|
|||
fprintf (Gbl.F.Out,"\">"
|
||||
"<script type=\"text/javascript\">"
|
||||
"writeLocalDateHMSFromUTC('asg_date_end_%u',%ld,"
|
||||
"%u,'<br />','%s',false,true,0x7);"
|
||||
"%u,'<br />','%s',true,true,0x7);"
|
||||
"</script>"
|
||||
"</td>",
|
||||
UniqueId,Prj->TimeUTC[Dat_END_TIME],
|
||||
|
@ -659,7 +665,7 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie
|
|||
|
||||
/* Preassigned? */
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td colspan=\"2\" class=\"RIGHT_TOP");
|
||||
"<td colspan=\"3\" class=\"RIGHT_TOP");
|
||||
if (ProjectView == Prj_LIST_PROJECTS)
|
||||
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
|
||||
fprintf (Gbl.F.Out," %s\">"
|
||||
|
@ -681,10 +687,7 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie
|
|||
Txt_No);
|
||||
|
||||
/* Project members */
|
||||
for (RoleInProject = Prj_ROLE_STD;
|
||||
RoleInProject <= Prj_ROLE_EVA;
|
||||
RoleInProject++)
|
||||
Prj_ShowOneProjectUsrs (Prj,ProjectView,RoleInProject);
|
||||
Prj_ShowOneProjectMembers (Prj,ProjectView);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
|
@ -702,7 +705,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
|
|||
extern const char *Txt_Required_knowledge;
|
||||
extern const char *Txt_Required_materials;
|
||||
extern const char *Txt_Preassigned_QUESTION;
|
||||
Prj_RoleInProject_t RoleInProject;
|
||||
unsigned NumRoleToShow;
|
||||
static unsigned UniqueId = 0;
|
||||
|
||||
/***** Get data of this project *****/
|
||||
|
@ -733,7 +736,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
|
|||
fprintf (Gbl.F.Out,"<td id=\"asg_date_end_%u\" class=\"LEFT_TOP COLOR%u %s\">"
|
||||
"<script type=\"text/javascript\">"
|
||||
"writeLocalDateHMSFromUTC('asg_date_end_%u',%ld,"
|
||||
"%u,'<br />','%s',false,true,0x7);"
|
||||
"%u,'<br />','%s',true,true,0x7);"
|
||||
"</script>"
|
||||
"</td>",
|
||||
UniqueId,
|
||||
|
@ -781,10 +784,10 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
|
|||
Txt_No);
|
||||
|
||||
/* Project members */
|
||||
for (RoleInProject = Prj_ROLE_STD;
|
||||
RoleInProject <= Prj_ROLE_EVA;
|
||||
RoleInProject++)
|
||||
Prj_ShowTableAllProjectsUsrs (Prj,RoleInProject);
|
||||
for (NumRoleToShow = 0;
|
||||
NumRoleToShow < Brw_NUM_ROLES_TO_SHOW;
|
||||
NumRoleToShow++)
|
||||
Prj_ShowTableAllProjectsMembersWithARole (Prj,Prj_RolesToShow[NumRoleToShow]);
|
||||
|
||||
/***** End row *****/
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
|
@ -862,7 +865,7 @@ static void Prj_ShowOneProjectTxtField (struct Project *Prj,
|
|||
|
||||
/***** Write row with label and text *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td colspan=\"2\" class=\"RIGHT_TOP");
|
||||
"<td colspan=\"3\" class=\"RIGHT_TOP");
|
||||
if (ProjectView == Prj_LIST_PROJECTS)
|
||||
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
|
||||
fprintf (Gbl.F.Out," %s\">"
|
||||
|
@ -914,7 +917,7 @@ static void Prj_ShowOneProjectURL (const struct Project *Prj,
|
|||
PutLink = (ProjectView == Prj_LIST_PROJECTS && Prj->URL[0]);
|
||||
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td colspan=\"2\" class=\"RIGHT_TOP");
|
||||
"<td colspan=\"3\" class=\"RIGHT_TOP");
|
||||
if (ProjectView == Prj_LIST_PROJECTS)
|
||||
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
|
||||
fprintf (Gbl.F.Out," %s\">"
|
||||
|
@ -954,70 +957,31 @@ static void Prj_ShowTableAllProjectsURL (const struct Project *Prj)
|
|||
Prj->URL);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** Show projects members when showing one project ***************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prj_ShowOneProjectMembers (struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView)
|
||||
{
|
||||
unsigned NumRoleToShow;
|
||||
|
||||
for (NumRoleToShow = 0;
|
||||
NumRoleToShow < Brw_NUM_ROLES_TO_SHOW;
|
||||
NumRoleToShow++)
|
||||
Prj_ShowOneProjectMembersWithARole (Prj,ProjectView,
|
||||
Prj_RolesToShow[NumRoleToShow]);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************* Show users row in a project ***********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prj_ShowOneProjectUsrs (const struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView,
|
||||
Prj_RoleInProject_t RoleInProject)
|
||||
static void Prj_ShowOneProjectMembersWithARole (const struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView,
|
||||
Prj_RoleInProject_t RoleInProject)
|
||||
{
|
||||
extern const char *Txt_PROJECT_ROLES_PLURAL_Abc[Prj_NUM_ROLES_IN_PROJECT];
|
||||
|
||||
/***** Row with label and listing of users *****/
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
switch (ProjectView)
|
||||
{
|
||||
case Prj_LIST_PROJECTS:
|
||||
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"RIGHT_TOP COLOR%u %s\">%s:</td>"
|
||||
"<td colspan=\"2\" class=\"LEFT_TOP COLOR%u %s\">",
|
||||
Gbl.RowEvenOdd,
|
||||
Prj->Hidden ? "ASG_LABEL_LIGHT" :
|
||||
"ASG_LABEL",
|
||||
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject],
|
||||
Gbl.RowEvenOdd,
|
||||
Prj->Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
break;
|
||||
case Prj_PRINT_ONE_PROJECT:
|
||||
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"RIGHT_TOP %s\">%s:</td>"
|
||||
"<td colspan=\"2\" class=\"LEFT_TOP %s\">",
|
||||
Prj->Hidden ? "ASG_LABEL_LIGHT" :
|
||||
"ASG_LABEL",
|
||||
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject],
|
||||
Prj->Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
break;
|
||||
case Prj_EDIT_ONE_PROJECT:
|
||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP ASG_LABEL\">%s:</td>"
|
||||
"<td colspan=\"2\" class=\"LEFT_TOP DAT\">",
|
||||
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]);
|
||||
break;
|
||||
}
|
||||
Prj_ShowOneProjectWriteUsrs (Prj->PrjCod,ProjectView,RoleInProject);
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
}
|
||||
|
||||
static void Prj_ShowTableAllProjectsUsrs (const struct Project *Prj,
|
||||
Prj_RoleInProject_t RoleInProject)
|
||||
{
|
||||
/***** Listing of users *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">",
|
||||
Gbl.RowEvenOdd,
|
||||
Prj->Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
Prj_ShowTableAllProjectsWriteUsrs (Prj->PrjCod,RoleInProject);
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*************** Write list of users with a role in a project ****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prj_ShowOneProjectWriteUsrs (long PrjCod,Prj_ProjectView_t ProjectView,
|
||||
Prj_RoleInProject_t RoleInProject)
|
||||
{
|
||||
extern const char *Txt_Remove;
|
||||
extern const char *Txt_Add_USER;
|
||||
extern const char *Txt_PROJECT_ROLES_SINGUL_abc[Prj_NUM_ROLES_IN_PROJECT];
|
||||
|
@ -1043,9 +1007,40 @@ static void Prj_ShowOneProjectWriteUsrs (long PrjCod,Prj_ProjectView_t ProjectVi
|
|||
};
|
||||
|
||||
/***** Get users in project from database *****/
|
||||
NumUsrs = Prj_GetUsrsInPrj (PrjCod,RoleInProject,&mysql_res);
|
||||
NumUsrs = Prj_GetUsrsInPrj (Prj->PrjCod,RoleInProject,&mysql_res);
|
||||
|
||||
/***** Start table *****/
|
||||
/***** Start row with label and listing of users *****/
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
switch (ProjectView)
|
||||
{
|
||||
case Prj_LIST_PROJECTS:
|
||||
fprintf (Gbl.F.Out,"<td colspan=\"3\" class=\"RIGHT_TOP COLOR%u %s\">%s:</td>"
|
||||
"<td colspan=\"2\" class=\"LEFT_TOP COLOR%u %s\">",
|
||||
Gbl.RowEvenOdd,
|
||||
Prj->Hidden ? "ASG_LABEL_LIGHT" :
|
||||
"ASG_LABEL",
|
||||
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject],
|
||||
Gbl.RowEvenOdd,
|
||||
Prj->Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
break;
|
||||
case Prj_PRINT_ONE_PROJECT:
|
||||
fprintf (Gbl.F.Out,"<td colspan=\"3\" class=\"RIGHT_TOP %s\">%s:</td>"
|
||||
"<td colspan=\"2\" class=\"LEFT_TOP %s\">",
|
||||
Prj->Hidden ? "ASG_LABEL_LIGHT" :
|
||||
"ASG_LABEL",
|
||||
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject],
|
||||
Prj->Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
break;
|
||||
case Prj_EDIT_ONE_PROJECT:
|
||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP ASG_LABEL\">%s:</td>"
|
||||
"<td colspan=\"2\" class=\"LEFT_TOP DAT\">",
|
||||
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]);
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Start table with all members with this role *****/
|
||||
Tbl_StartTable (2);
|
||||
|
||||
/***** Write users *****/
|
||||
|
@ -1104,7 +1099,7 @@ static void Prj_ShowOneProjectWriteUsrs (long PrjCod,Prj_ProjectView_t ProjectVi
|
|||
{
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"CENTER_TOP\" style=\"width:30px;\">");
|
||||
Gbl.Prjs.PrjCodToEdit = PrjCod; // Used to pass project code as a parameter
|
||||
Gbl.Prjs.PrjCodToEdit = Prj->PrjCod; // Used to pass project code as a parameter
|
||||
sprintf (Gbl.Title,Txt_Add_USER,Txt_PROJECT_ROLES_SINGUL_abc[RoleInProject]);
|
||||
Lay_PutContextualLink (ActionReqAddUsr[RoleInProject],NULL,Prj_PutParams,
|
||||
"plus64x64.png",
|
||||
|
@ -1119,15 +1114,19 @@ static void Prj_ShowOneProjectWriteUsrs (long PrjCod,Prj_ProjectView_t ProjectVi
|
|||
"</tr>");
|
||||
}
|
||||
|
||||
/***** End table *****/
|
||||
/***** End table with all members with this role *****/
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
|
||||
/***** End row with label and listing of users *****/
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
}
|
||||
|
||||
static void Prj_ShowTableAllProjectsWriteUsrs (long PrjCod,
|
||||
Prj_RoleInProject_t RoleInProject)
|
||||
static void Prj_ShowTableAllProjectsMembersWithARole (const struct Project *Prj,
|
||||
Prj_RoleInProject_t RoleInProject)
|
||||
{
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
|
@ -1135,13 +1134,19 @@ static void Prj_ShowTableAllProjectsWriteUsrs (long PrjCod,
|
|||
unsigned NumUsrs;
|
||||
|
||||
/***** Get users in project from database *****/
|
||||
NumUsrs = Prj_GetUsrsInPrj (PrjCod,RoleInProject,&mysql_res);
|
||||
NumUsrs = Prj_GetUsrsInPrj (Prj->PrjCod,RoleInProject,&mysql_res);
|
||||
|
||||
/***** Start column with list of all members with this role *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">",
|
||||
Gbl.RowEvenOdd,
|
||||
Prj->Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
|
||||
if (NumUsrs)
|
||||
{
|
||||
/***** Write users *****/
|
||||
fprintf (Gbl.F.Out,"<ul>");
|
||||
|
||||
/***** Write users *****/
|
||||
for (NumUsr = 0;
|
||||
NumUsr < NumUsrs;
|
||||
NumUsr++)
|
||||
|
@ -1176,6 +1181,9 @@ static void Prj_ShowTableAllProjectsWriteUsrs (long PrjCod,
|
|||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
|
||||
/***** End column with list of all members with this role *****/
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -2170,7 +2178,7 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
|
|||
extern const char *Txt_Create_project;
|
||||
extern const char *Txt_Save;
|
||||
extern const char *Txt_Members;
|
||||
Prj_RoleInProject_t RoleInProject;
|
||||
unsigned NumRoleToShow;
|
||||
|
||||
/***** Start box and form *****/
|
||||
if (ItsANewProject)
|
||||
|
@ -2197,10 +2205,11 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
|
|||
{
|
||||
Box_StartBoxTable (NULL,Txt_Members,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,2);
|
||||
for (RoleInProject = Prj_ROLE_STD;
|
||||
RoleInProject <= Prj_ROLE_EVA;
|
||||
RoleInProject++)
|
||||
Prj_ShowOneProjectUsrs (Prj,Prj_EDIT_ONE_PROJECT,RoleInProject);
|
||||
for (NumRoleToShow = 0;
|
||||
NumRoleToShow < Brw_NUM_ROLES_TO_SHOW;
|
||||
NumRoleToShow++)
|
||||
Prj_ShowOneProjectMembersWithARole (Prj,Prj_EDIT_ONE_PROJECT,
|
||||
Prj_RolesToShow[NumRoleToShow]);
|
||||
Box_EndBoxTable ();
|
||||
}
|
||||
|
||||
|
|
|
@ -1824,7 +1824,10 @@ void Svy_RequestCreatOrEditSvy (void)
|
|||
Box_StartBoxTable (NULL,Txt_New_survey,NULL,
|
||||
Hlp_ASSESSMENT_Surveys_new_survey,Box_NOT_CLOSABLE,2);
|
||||
else
|
||||
Box_StartBoxTable (NULL,Txt_Edit_survey,NULL,
|
||||
Box_StartBoxTable (NULL,
|
||||
Svy.Title[0] ? Svy.Title :
|
||||
Txt_Edit_survey,
|
||||
NULL,
|
||||
Hlp_ASSESSMENT_Surveys_edit_survey,Box_NOT_CLOSABLE,2);
|
||||
|
||||
/***** Scope of the survey *****/
|
||||
|
|
Loading…
Reference in New Issue