Version 23.0: Sep 11, 2023 Code refactoring related to hidden-visible.

This commit is contained in:
acanas 2023-09-11 17:41:31 +02:00
parent 87bd725069
commit f1b5cd4537
14 changed files with 162 additions and 141 deletions

View File

@ -2310,7 +2310,7 @@ int swad__getAttendanceEvents (struct soap *soap,
getAttendanceEventsOut->eventsArray.__ptr[NumAttEvent].attendanceEventCode = (int) Event.AttCod;
getAttendanceEventsOut->eventsArray.__ptr[NumAttEvent].hidden = (Event.HiddenOrVisible == HidVis_HIDDEN) ? 1 :
0;
0;
Gbl.Usrs.Other.UsrDat.UsrCod = Event.UsrCod;
if (API_GetSomeUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat,Gbl.Hierarchy.Crs.CrsCod)) // Get some user's data from database
{
@ -2497,7 +2497,7 @@ int swad__sendAttendanceEvent (struct soap *soap,
/* Are teacher's comments visible? */
Event.CommentTchVisible = (commentsTeachersVisible ? true :
false);
false);
/* Title */
if (!title[0])

View File

@ -278,13 +278,14 @@ void Agd_DB_UpdateEvent (const struct Agd_Event *AgdEvent,const char *Txt)
void Agd_DB_HideOrUnhideEvent (long AgdCod,long UsrCod,
HidVis_HiddenOrVisible_t HiddenOrVisible)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide event",
"UPDATE agd_agendas"
" SET Hidden='%c'"
" WHERE AgdCod=%ld"
" AND UsrCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[HiddenOrVisible],
AgdCod,
UsrCod);
}

View File

@ -506,14 +506,14 @@ static void Asg_ShowAssignmentRow (struct Asg_Assignments *Assignments,
if (PrintView)
HTM_TD_Begin ("id=\"%s\" class=\"LB %s_%s\"",
Id,
Assignments->Asg.Open == HidVis_HIDDEN ? HidVis_DateGreenClass[Assignments->Asg.HiddenOrVisible] :
HidVis_DateRedClass[Assignments->Asg.HiddenOrVisible],
Assignments->Asg.Open ? HidVis_DateGreenClass[Assignments->Asg.HiddenOrVisible] :
HidVis_DateRedClass[Assignments->Asg.HiddenOrVisible],
The_GetSuffix ());
else
HTM_TD_Begin ("id=\"%s\" class=\"LB %s_%s %s\"",
Id,
Assignments->Asg.Open == HidVis_HIDDEN ? HidVis_DateGreenClass[Assignments->Asg.HiddenOrVisible] :
HidVis_DateRedClass[Assignments->Asg.HiddenOrVisible],
Assignments->Asg.Open ? HidVis_DateGreenClass[Assignments->Asg.HiddenOrVisible] :
HidVis_DateRedClass[Assignments->Asg.HiddenOrVisible],
The_GetSuffix (),
The_GetColorRows ());
Dat_WriteLocalDateHMSFromUTC (Id,Assignments->Asg.TimeUTC[StartEndTime],

View File

@ -301,13 +301,14 @@ void Asg_DB_UpdateAssignment (const struct Asg_Assignment *Asg,const char *Txt)
void Asg_DB_HideOrUnhideAssignment (long AsgCod,
HidVis_HiddenOrVisible_t HiddenOrVisible)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide assignment",
"UPDATE asg_assignments"
" SET Hidden='%c'"
" WHERE AsgCod=%ld"
" AND CrsCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[HiddenOrVisible],
AsgCod,
Gbl.Hierarchy.Crs.CrsCod);
}

View File

@ -243,6 +243,8 @@ bool Att_DB_CheckIfSimilarEventExists (const char *Field,const char *Value,long
long Att_DB_CreateEvent (const struct Att_Event *Event,const char *Description)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
return
DB_QueryINSERTandReturnCode ("can not create new attendance event",
"INSERT INTO att_events"
@ -254,8 +256,7 @@ long Att_DB_CreateEvent (const struct Att_Event *Event,const char *Description)
"FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld),"
"'%c','%s','%s')",
Gbl.Hierarchy.Crs.CrsCod,
Event->HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[Event->HiddenOrVisible],
Gbl.Usrs.Me.UsrDat.UsrCod,
Event->TimeUTC[Dat_STR_TIME],
Event->TimeUTC[Dat_END_TIME],
@ -271,6 +272,8 @@ long Att_DB_CreateEvent (const struct Att_Event *Event,const char *Description)
void Att_DB_UpdateEvent (const struct Att_Event *Event,const char *Description)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not update attendance event",
"UPDATE att_events"
" SET Hidden='%c',"
@ -281,8 +284,7 @@ void Att_DB_UpdateEvent (const struct Att_Event *Event,const char *Description)
"Txt='%s'"
" WHERE AttCod=%ld"
" AND CrsCod=%ld", // Extra check
Event->HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[Event->HiddenOrVisible],
Event->TimeUTC[Dat_STR_TIME],
Event->TimeUTC[Dat_END_TIME],
Event->CommentTchVisible ? 'Y' :
@ -300,13 +302,14 @@ void Att_DB_UpdateEvent (const struct Att_Event *Event,const char *Description)
void Att_DB_HideOrUnhideEvent (long AttCod,
HidVis_HiddenOrVisible_t HiddenOrVisible)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide assignment",
"UPDATE att_events"
" SET Hidden='%c'"
" WHERE AttCod=%ld"
" AND CrsCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[HiddenOrVisible],
AttCod,
Gbl.Hierarchy.Crs.CrsCod);
}

View File

@ -151,12 +151,13 @@ void Ban_DB_CreateBanner (const struct Ban_Banner *Ban)
void Ban_DB_HideOrUnhideBanner (long BanCod,HidVis_HiddenOrVisible_t HiddenOrVisible)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide banner",
"UPDATE ban_banners"
" SET Hidden='%c'"
" WHERE BanCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[HiddenOrVisible],
BanCod);
}

View File

@ -2276,6 +2276,7 @@ unsigned Brw_DB_GetNumFileViewsUsr (long UsrCod)
void Brw_DB_HideOrUnhideFileOrFolder (const char Path[PATH_MAX + 1],
HidVis_HiddenOrVisible_t HiddenOrVisible)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
long Cod = Brw_GetCodForFileBrowser ();
long ZoneUsrCod = Brw_GetZoneUsrCodForFileBrowser ();
@ -2287,8 +2288,7 @@ void Brw_DB_HideOrUnhideFileOrFolder (const char Path[PATH_MAX + 1],
" AND Cod=%ld"
" AND ZoneUsrCod=%ld"
" AND Path='%s'",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[HiddenOrVisible],
(unsigned) Brw_DB_FileBrowserForDB_files[Gbl.FileBrowser.Type],
Cod,
ZoneUsrCod,

View File

@ -629,10 +629,11 @@ TODO: Emilce Barrera Mesa: Podr
TODO: Emilce Barrera Mesa: Mis estudiantes presentan muchas dificultades a la hora de poner la foto porque la plataforma es muy exigente respecto al fondo de la imagen.
*/
#define Log_PLATFORM_VERSION "SWAD 22.120.17 (2023-09-10)"
#define Log_PLATFORM_VERSION "SWAD 23.0 (2023-09-11)"
#define CSS_FILE "swad22.120.4.css"
#define JS_FILE "swad22.49.js"
/*
Version 23.0: Sep 11, 2023 Code refactoring related to hidden-visible. (337588 lines)
Version 22.120.17:Sep 10, 2023 Code refactoring related to hidden-visible in surveys. (337563 lines)
Version 22.120.16:Sep 10, 2023 Code refactoring in project visibility. (337575 lines)
Version 22.120.15:Sep 10, 2023 Code refactoring related to hidden-visible in projects. (337580 lines)

View File

@ -108,12 +108,13 @@ void Exa_DB_UpdateExam (const struct Exa_Exam *Exam,const char *Txt)
void Exa_DB_HideOrUnhideExam (long ExaCod,
HidVis_HiddenOrVisible_t HiddenOrVisible)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide exam",
"UPDATE exa_exams"
" SET Hidden='%c'"
" WHERE ExaCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[HiddenOrVisible],
ExaCod);
}
@ -1285,6 +1286,8 @@ void Exa_DB_RemoveAllSetAnswersFromCrs (long CrsCod)
long Exa_DB_CreateSession (const struct ExaSes_Session *Session)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
return
DB_QueryINSERTandReturnCode ("can not create exam session",
"INSERT exa_sessions"
@ -1304,9 +1307,8 @@ long Exa_DB_CreateSession (const struct ExaSes_Session *Session)
"'%s'," // Title
"'N')", // ShowUsrResults: Don't show user results initially
Session->ExaCod,
Session->HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
Gbl.Usrs.Me.UsrDat.UsrCod, // Session creator
HidVis_YN[Session->HiddenOrVisible],
Gbl.Usrs.Me.UsrDat.UsrCod, // Session creator
Session->TimeUTC[Dat_STR_TIME], // Start time
Session->TimeUTC[Dat_END_TIME], // End time
Session->Title);
@ -1318,6 +1320,8 @@ long Exa_DB_CreateSession (const struct ExaSes_Session *Session)
void Exa_DB_UpdateSession (const struct ExaSes_Session *Session)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
/***** Insert this new exam session into database *****/
DB_QueryUPDATE ("can not update exam session",
"UPDATE exa_sessions,"
@ -1331,8 +1335,7 @@ void Exa_DB_UpdateSession (const struct ExaSes_Session *Session)
" AND exa_sessions.ExaCod=%ld" // Extra check
" AND exa_sessions.ExaCod=exa_exams.ExaCod"
" AND exa_exams.CrsCod=%ld", // Extra check
Session->HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[Session->HiddenOrVisible],
Session->TimeUTC[Dat_STR_TIME], // Start time
Session->TimeUTC[Dat_END_TIME], // End time
Session->Title,
@ -1533,6 +1536,8 @@ void Exa_DB_ToggleVisResultsSesUsr (const struct ExaSes_Session *Session)
void Exa_DB_HideUnhideSession (const struct ExaSes_Session *Session,
HidVis_HiddenOrVisible_t HiddenOrVisible)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide exam sessions",
"UPDATE exa_sessions,"
"exa_exams"
@ -1541,8 +1546,7 @@ void Exa_DB_HideUnhideSession (const struct ExaSes_Session *Session,
" AND exa_sessions.ExaCod=%ld" // Extra check
" AND exa_sessions.ExaCod=exa_exams.ExaCod"
" AND exa_exams.CrsCod=%ld", // Extra check
HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[HiddenOrVisible],
Session->SesCod,
Session->ExaCod,
Gbl.Hierarchy.Crs.CrsCod);

View File

@ -99,12 +99,13 @@ void Gam_DB_UpdateGame (const struct Gam_Game *Game,const char *Txt)
void Gam_DB_HideOrUnhideGame (long GamCod,
HidVis_HiddenOrVisible_t HiddenOrVisible)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide game",
"UPDATE gam_games"
" SET Hidden='%c'"
" WHERE GamCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[HiddenOrVisible],
GamCod);
}

View File

@ -91,13 +91,14 @@ void Prg_DB_UpdateItem (const struct Prg_Item *Item,const char *Txt)
void Prg_DB_HideOrUnhideItem (long ItmCod,
HidVis_HiddenOrVisible_t HiddenOrVisible)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide program item",
"UPDATE prg_items"
" SET Hidden='%c'"
" WHERE ItmCod=%ld"
" AND CrsCod=%ld", // Extra check
HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[HiddenOrVisible],
ItmCod,
Gbl.Hierarchy.Crs.CrsCod);
}
@ -594,12 +595,13 @@ void Prg_DB_RemoveResource (const struct Prg_Item *Item)
void Prg_DB_HideOrUnhideResource (long RscCod,
HidVis_HiddenOrVisible_t HiddenOrVisible)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide item resource",
"UPDATE prg_resources"
" SET Hidden='%c'"
" WHERE RscCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[HiddenOrVisible],
RscCod);
}

View File

@ -222,20 +222,20 @@ static void Prj_ShowFirstRow (struct Prj_Projects *Projects,
static void Prj_ShowProjectDepartment (const struct Prj_Projects *Projects,
const char *ClassData);
static void Prj_ShowReviewStatus (struct Prj_Projects *Projects,
const char *ClassLabel,
const char *ClassData,
const struct Prj_Faults *Faults,
const char *Anchor);
const char *ClassLabel,
const char *ClassData,
const struct Prj_Faults *Faults,
const char *Anchor);
static void Prj_PutSelectorReviewStatus (struct Prj_Projects *Projects);
static bool Prj_CheckIfICanReviewProjects (void);
static void Prj_ShowAssigned (const struct Prj_Projects *Projects,
const char *ClassLabel,
const char *ClassData,
const struct Prj_Faults *Faults);
const char *ClassLabel,
const char *ClassData,
const struct Prj_Faults *Faults);
static void Prj_ShowNumStds (const struct Prj_Projects *Projects,
const char *ClassLabel,
const char *ClassData,
const struct Prj_Faults *Faults);
const char *ClassLabel,
const char *ClassData,
const struct Prj_Faults *Faults);
static void Prj_ShowMembers (struct Prj_Projects *Projects);
static void Prj_ShowProjectMembersWithARole (struct Prj_Projects *Projects,
Prj_RoleInProject_t RoleInPrj);
@ -1439,16 +1439,14 @@ void Prj_PrintOneProject (void)
static void Prj_ShowProjectRow (struct Prj_Projects *Projects)
{
extern const char *HidVis_LabelClass[HidVis_NUM_HIDDEN_VISIBLE];
extern const char *HidVis_DataClass[HidVis_NUM_HIDDEN_VISIBLE];
extern const char *Txt_Description;
extern const char *Txt_Required_knowledge;
extern const char *Txt_Required_materials;
struct Prj_Faults Faults;
static unsigned UniqueId = 0;
char *Anchor = NULL;
const char *ClassLabel = (Projects->Prj.Hidden == HidVis_HIDDEN) ? "ASG_LABEL_LIGHT" :
"ASG_LABEL";
const char *ClassData = (Projects->Prj.Hidden == HidVis_HIDDEN) ? "DAT_LIGHT" :
"DAT";
/***** Set anchor string *****/
Frm_SetAnchorStr ((long) Projects->NumIndex,&Anchor);
@ -1458,33 +1456,53 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects)
/***** First row with main data (dates, title...) *****/
UniqueId++;
Prj_ShowFirstRow (Projects,ClassData,&Faults,UniqueId,Anchor);
Prj_ShowFirstRow (Projects,HidVis_DataClass[Projects->Prj.Hidden],
&Faults,UniqueId,Anchor);
/***** Data always visible *****/
Prj_ShowReviewStatus (Projects,ClassLabel,ClassData,&Faults,Anchor);
Prj_ShowAssigned (Projects,ClassLabel,ClassData,&Faults);
Prj_ShowNumStds (Projects,ClassLabel,ClassData,&Faults);
Prj_ShowReviewStatus (Projects,
HidVis_LabelClass[Projects->Prj.Hidden],
HidVis_DataClass[Projects->Prj.Hidden],
&Faults,Anchor);
Prj_ShowAssigned (Projects,
HidVis_LabelClass[Projects->Prj.Hidden],
HidVis_DataClass[Projects->Prj.Hidden],
&Faults);
Prj_ShowNumStds (Projects,
HidVis_LabelClass[Projects->Prj.Hidden],
HidVis_DataClass[Projects->Prj.Hidden],
&Faults);
Prj_ShowMembers (Projects);
/***** Link to show hidden info *****/
Prj_PutLinkToShowHiddenInfo (Projects,UniqueId);
/***** Hiddeable data ******/
Prj_ShowProposal (Projects,ClassLabel,ClassData,UniqueId);
Prj_ShowTxtField (Projects,ClassLabel,ClassData,"prj_dsc_",UniqueId,
Prj_ShowProposal (Projects,
HidVis_LabelClass[Projects->Prj.Hidden],
HidVis_DataClass[Projects->Prj.Hidden],UniqueId);
Prj_ShowTxtField (Projects,
HidVis_LabelClass[Projects->Prj.Hidden],
HidVis_DataClass[Projects->Prj.Hidden],"prj_dsc_",UniqueId,
Txt_Description, // Description of the project
Projects->Prj.Description,
Faults.WrongDescription ? Prj_PUT_WARNING :
Prj_DONT_PUT_WARNING);
Prj_ShowTxtField (Projects,ClassLabel,ClassData,"prj_knw_",UniqueId,
Prj_ShowTxtField (Projects,
HidVis_LabelClass[Projects->Prj.Hidden],
HidVis_DataClass[Projects->Prj.Hidden],"prj_knw_",UniqueId,
Txt_Required_knowledge, // Required knowledge
Projects->Prj.Knowledge,
Prj_DONT_PUT_WARNING);
Prj_ShowTxtField (Projects,ClassLabel,ClassData,"prj_mtr_",UniqueId,
Prj_ShowTxtField (Projects,
HidVis_LabelClass[Projects->Prj.Hidden],
HidVis_DataClass[Projects->Prj.Hidden],"prj_mtr_",UniqueId,
Txt_Required_materials, // Required materials
Projects->Prj.Materials,
Prj_DONT_PUT_WARNING);
Prj_ShowURL (Projects,ClassLabel,ClassData,"prj_url_",UniqueId);
Prj_ShowURL (Projects,
HidVis_LabelClass[Projects->Prj.Hidden],
HidVis_DataClass[Projects->Prj.Hidden],"prj_url_",UniqueId);
/***** Free anchor string *****/
Frm_FreeAnchorStr (&Anchor);
@ -1495,16 +1513,16 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects)
/*****************************************************************************/
static void Prj_ShowFirstRow (struct Prj_Projects *Projects,
const char *ClassData,
const struct Prj_Faults *Faults,
unsigned UniqueId,
const char *Anchor)
const char *ClassData,
const struct Prj_Faults *Faults,
unsigned UniqueId,
const char *Anchor)
{
extern const char *HidVis_DateBlueClass[HidVis_NUM_HIDDEN_VISIBLE];
extern const char *HidVis_TitleClass[HidVis_NUM_HIDDEN_VISIBLE];
extern const char *Txt_Actions[ActLst_NUM_ACTIONS];
char *Id;
Act_Action_t NextAction;
const char *ClassDate = (Projects->Prj.Hidden == HidVis_HIDDEN) ? "DATE_BLUE_LIGHT" :
"DATE_BLUE";
/***** Write first row of data of this project *****/
HTM_TR_Begin (NULL);
@ -1549,13 +1567,13 @@ static void Prj_ShowFirstRow (struct Prj_Projects *Projects,
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("id=\"%s\" class=\"LT %s_%s %s\"",
Id,
ClassDate,The_GetSuffix (),
HidVis_DateBlueClass[Projects->Prj.Hidden],The_GetSuffix (),
The_GetColorRows ());
break;
default:
HTM_TD_Begin ("id=\"%s\" class=\"LT %s_%s\"",
Id,
ClassDate,The_GetSuffix ());
HidVis_DateBlueClass[Projects->Prj.Hidden],The_GetSuffix ());
break;
}
Dat_WriteLocalDateHMSFromUTC (Id,Projects->Prj.CreatTime,
@ -1573,13 +1591,13 @@ static void Prj_ShowFirstRow (struct Prj_Projects *Projects,
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("id=\"%s\" class=\"LT %s_%s %s\"",
Id,
ClassDate,The_GetSuffix (),
HidVis_DateBlueClass[Projects->Prj.Hidden],The_GetSuffix (),
The_GetColorRows ());
break;
default:
HTM_TD_Begin ("id=\"%s\" class=\"LT %s_%s\"",
Id,
ClassDate,The_GetSuffix ());
HidVis_DateBlueClass[Projects->Prj.Hidden],The_GetSuffix ());
break;
}
Dat_WriteLocalDateHMSFromUTC (Id,Projects->Prj.ModifTime,
@ -1607,8 +1625,7 @@ static void Prj_ShowFirstRow (struct Prj_Projects *Projects,
Prj_PutCurrentPars (Projects);
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
"class=\"LT BT_LINK %s_%s\"",
Projects->Prj.Hidden == HidVis_HIDDEN ? "ASG_TITLE_LIGHT" :
"ASG_TITLE",
HidVis_TitleClass[Projects->Prj.Hidden],
The_GetSuffix ());
HTM_Txt (Projects->Prj.Title);
HTM_BUTTON_End ();
@ -1669,10 +1686,10 @@ static void Prj_ShowProjectDepartment (const struct Prj_Projects *Projects,
/*****************************************************************************/
static void Prj_ShowReviewStatus (struct Prj_Projects *Projects,
const char *ClassLabel,
const char *ClassData,
const struct Prj_Faults *Faults,
const char *Anchor)
const char *ClassLabel,
const char *ClassData,
const struct Prj_Faults *Faults,
const char *Anchor)
{
extern const char *Txt_Review;
extern const char *Txt_PROJECT_REVIEW_SINGUL[Prj_NUM_REVIEW_STATUS];
@ -1863,9 +1880,9 @@ static bool Prj_CheckIfICanReviewProjects (void)
/*****************************************************************************/
static void Prj_ShowAssigned (const struct Prj_Projects *Projects,
const char *ClassLabel,
const char *ClassData,
const struct Prj_Faults *Faults)
const char *ClassLabel,
const char *ClassData,
const struct Prj_Faults *Faults)
{
extern const char *Txt_Assigned_QUESTION;
extern const char *Txt_Yes;
@ -1917,9 +1934,9 @@ static void Prj_ShowAssigned (const struct Prj_Projects *Projects,
/*****************************************************************************/
static void Prj_ShowNumStds (const struct Prj_Projects *Projects,
const char *ClassLabel,
const char *ClassData,
const struct Prj_Faults *Faults)
const char *ClassLabel,
const char *ClassData,
const struct Prj_Faults *Faults)
{
extern const char *Txt_Number_of_students;
@ -1979,7 +1996,9 @@ static void Prj_ShowMembers (struct Prj_Projects *Projects)
static void Prj_ShowProjectMembersWithARole (struct Prj_Projects *Projects,
Prj_RoleInProject_t RoleInPrj)
{
;
extern const char *HidVis_LabelClass[HidVis_NUM_HIDDEN_VISIBLE];
extern const char *HidVis_DataClass[HidVis_NUM_HIDDEN_VISIBLE];
extern const char *HidVis_MsgClass[HidVis_NUM_HIDDEN_VISIBLE];
extern const char *Txt_PROJECT_ROLES_SINGUL_Abc[Prj_NUM_ROLES_IN_PROJECT];
extern const char *Txt_PROJECT_ROLES_PLURAL_Abc[Prj_NUM_ROLES_IN_PROJECT];
static const Act_Action_t ActionReqRemUsr[Prj_NUM_ROLES_IN_PROJECT] =
@ -2008,10 +2027,6 @@ static void Prj_ShowProjectMembersWithARole (struct Prj_Projects *Projects,
bool WriteRow;
unsigned NumUsr;
unsigned NumUsrs;
const char *ClassLabel = (Projects->Prj.Hidden == HidVis_HIDDEN) ? "ASG_LABEL_LIGHT" :
"ASG_LABEL";
const char *ClassData = (Projects->Prj.Hidden == HidVis_HIDDEN) ? "DAT_LIGHT" :
"DAT";
/***** Get users in project from database *****/
NumUsrs = Prj_DB_GetUsrsInPrj (&mysql_res,Projects->Prj.PrjCod,RoleInPrj);
@ -2028,20 +2043,23 @@ static void Prj_ShowProjectMembersWithARole (struct Prj_Projects *Projects,
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s_%s %s\"",
ClassLabel,The_GetSuffix (),The_GetColorRows ());
HidVis_LabelClass[Projects->Prj.Hidden],
The_GetSuffix (),The_GetColorRows ());
HTM_TxtColon (NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInPrj] :
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInPrj]);
break;
case Prj_VIEW_ONE_PROJECT:
case Prj_PRINT_ONE_PROJECT:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s_%s\"",
ClassLabel,The_GetSuffix ());
HidVis_LabelClass[Projects->Prj.Hidden],
The_GetSuffix ());
HTM_TxtColon (NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInPrj] :
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInPrj]);
break;
case Prj_EDIT_ONE_PROJECT:
HTM_TD_Begin ("class=\"RT %s_%s\"",
ClassLabel,The_GetSuffix ());
HidVis_LabelClass[Projects->Prj.Hidden],
The_GetSuffix ());
HTM_TxtColon (Txt_PROJECT_ROLES_PLURAL_Abc[RoleInPrj]);
break;
}
@ -2052,13 +2070,15 @@ static void Prj_ShowProjectMembersWithARole (struct Prj_Projects *Projects,
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (),
HidVis_DataClass[Projects->Prj.Hidden],
The_GetSuffix (),
The_GetColorRows ());
break;
case Prj_VIEW_ONE_PROJECT:
case Prj_PRINT_ONE_PROJECT:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s_%s\"",
ClassData,The_GetSuffix ());
HidVis_DataClass[Projects->Prj.Hidden],
The_GetSuffix ());
break;
case Prj_EDIT_ONE_PROJECT:
HTM_TD_Begin ("colspan=\"2\" class=\"LT DAT_%s\"",
@ -2104,8 +2124,7 @@ static void Prj_ShowProjectMembersWithARole (struct Prj_Projects *Projects,
/* Write user's name */
HTM_TD_Begin ("class=\"LM %s_%s\"",
Projects->Prj.Hidden == HidVis_HIDDEN ? "MSG_AUT_LIGHT" :
"MSG_AUT",
HidVis_MsgClass[Projects->Prj.Hidden],
The_GetSuffix ());
HTM_Txt (Gbl.Usrs.Other.UsrDat.FullName);
HTM_TD_End ();
@ -2497,24 +2516,18 @@ static void Prj_PutIconToToggleProject (unsigned UniqueId,
static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
{
extern const char *HidVis_DateBlueClass[HidVis_NUM_HIDDEN_VISIBLE];
extern const char *HidVis_DataClass[HidVis_NUM_HIDDEN_VISIBLE];
extern const char *Txt_Yes;
extern const char *Txt_No;
extern const char *Txt_PROJECT_STATUS[Prj_NUM_PROPOSAL_TYPES];
unsigned NumRoleToShow;
const char *ClassDate;
const char *ClassData;
static unsigned UniqueId = 0;
char *Id;
/***** Get data of this project *****/
Prj_GetProjectDataByCod (Prj);
/***** Set CSS classes *****/
ClassDate = (Prj->Hidden == HidVis_HIDDEN) ? "DATE_BLUE_LIGHT" :
"DATE_BLUE";
ClassData = (Prj->Hidden == HidVis_HIDDEN) ? "DAT_LIGHT" :
"DAT";
/***** Begin row *****/
HTM_TR_Begin (NULL);
@ -2523,7 +2536,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
if (asprintf (&Id,"prj_creat_%u",UniqueId) < 0)
Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"LT %s %s\"",
Id,ClassDate,The_GetColorRows ());
Id,HidVis_DateBlueClass[Prj->Hidden],The_GetColorRows ());
Dat_WriteLocalDateHMSFromUTC (Id,Prj->CreatTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7);
@ -2535,7 +2548,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
if (asprintf (&Id,"prj_modif_%u",UniqueId) < 0)
Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"LT %s %s\"",
Id,ClassDate,The_GetColorRows ());
Id,HidVis_DateBlueClass[Prj->Hidden],The_GetColorRows ());
Dat_WriteLocalDateHMSFromUTC (Id,Prj->ModifTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7);
@ -2544,7 +2557,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
/***** Project title *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (),The_GetColorRows ());
HidVis_DataClass[Prj->Hidden],The_GetSuffix (),The_GetColorRows ());
HTM_Txt (Prj->Title);
HTM_TD_End ();
@ -2553,14 +2566,16 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
/***** Assigned? *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (),The_GetColorRows ());
HidVis_DataClass[Prj->Hidden],The_GetSuffix (),
The_GetColorRows ());
HTM_Txt ((Prj->Assigned == Prj_ASSIGNED) ? Txt_Yes :
Txt_No);
HTM_TD_End ();
/***** Number of students *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (),The_GetColorRows ());
HidVis_DataClass[Prj->Hidden],The_GetSuffix (),
The_GetColorRows ());
HTM_Unsigned (Prj->NumStds);
HTM_TD_End ();
@ -2572,7 +2587,8 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
/***** Proposal *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (),The_GetColorRows ());
HidVis_DataClass[Prj->Hidden],The_GetSuffix (),
The_GetColorRows ());
HTM_Txt (Txt_PROJECT_STATUS[Prj->Proposal]);
HTM_TD_End ();
@ -2599,12 +2615,8 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
static void Prj_ShowTableAllProjectsDepartment (const struct Prj_Project *Prj)
{
extern const char *HidVis_DataClass[HidVis_NUM_HIDDEN_VISIBLE];
struct Dpt_Department Dpt;
const char *ClassData;
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == HidVis_HIDDEN) ? "DAT_LIGHT" :
"DAT";
/***** Get data of department *****/
Dpt.DptCod = Prj->DptCod;
@ -2612,7 +2624,8 @@ static void Prj_ShowTableAllProjectsDepartment (const struct Prj_Project *Prj)
/***** Show department *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (),The_GetColorRows ());
HidVis_DataClass[Prj->Hidden],The_GetSuffix (),
The_GetColorRows ());
HTM_Txt (Dpt.FullName);
HTM_TD_End ();
}
@ -2624,11 +2637,7 @@ static void Prj_ShowTableAllProjectsDepartment (const struct Prj_Project *Prj)
static void Prj_ShowTableAllProjectsTxtField (struct Prj_Project *Prj,
char *TxtField)
{
const char *ClassData;
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == HidVis_HIDDEN) ? "DAT_LIGHT" :
"DAT";
extern const char *HidVis_DataClass[HidVis_NUM_HIDDEN_VISIBLE];
/***** Change format *****/
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
@ -2636,7 +2645,8 @@ static void Prj_ShowTableAllProjectsTxtField (struct Prj_Project *Prj,
/***** Write text *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (),The_GetColorRows ());
HidVis_DataClass[Prj->Hidden],The_GetSuffix (),
The_GetColorRows ());
HTM_Txt (TxtField);
HTM_TD_End ();
}
@ -2647,15 +2657,12 @@ static void Prj_ShowTableAllProjectsTxtField (struct Prj_Project *Prj,
static void Prj_ShowTableAllProjectsURL (const struct Prj_Project *Prj)
{
const char *ClassData;
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == HidVis_HIDDEN) ? "DAT_LIGHT" :
"DAT";
extern const char *HidVis_DataClass[HidVis_NUM_HIDDEN_VISIBLE];
/***** Show URL *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (),The_GetColorRows ());
HidVis_DataClass[Prj->Hidden],The_GetSuffix (),
The_GetColorRows ());
HTM_Txt (Prj->URL);
HTM_TD_End ();
}
@ -2667,22 +2674,19 @@ static void Prj_ShowTableAllProjectsURL (const struct Prj_Project *Prj)
static void Prj_ShowTableAllProjectsMembersWithARole (const struct Prj_Project *Prj,
Prj_RoleInProject_t RoleInPrj)
{
extern const char *HidVis_DataClass[HidVis_NUM_HIDDEN_VISIBLE];
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned NumUsr;
unsigned NumUsrs;
const char *ClassData;
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == HidVis_HIDDEN) ? "DAT_LIGHT" :
"DAT";
/***** Get users in project from database *****/
NumUsrs = Prj_DB_GetUsrsInPrj (&mysql_res,Prj->PrjCod,RoleInPrj);
/***** Begin column with list of all members with this role *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (),The_GetColorRows ());
HidVis_DataClass[Prj->Hidden],The_GetSuffix (),
The_GetColorRows ());
if (NumUsrs)
{
@ -3173,8 +3177,7 @@ static void Prj_PutIconsToRemEditOnePrj (struct Prj_Projects *Projects,
/***** Icon to hide/unhide project *****/
Ico_PutContextualIconToHideUnhide (ActionHideUnhide,Anchor,
Prj_PutCurrentPars,Projects,
Projects->Prj.Hidden == HidVis_HIDDEN ? HidVis_HIDDEN :
HidVis_VISIBLE);
Projects->Prj.Hidden);
/***** Icon to edit project *****/
Ico_PutContextualIconToEdit (ActEdiOnePrj,NULL,

View File

@ -104,6 +104,8 @@ void Prj_DB_UnlockProjectEdition (long PrjCod)
long Prj_DB_CreateProject (const struct Prj_Project *Prj)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
return
DB_QueryINSERTandReturnCode ("can not create new project",
"INSERT INTO prj_projects"
@ -118,8 +120,7 @@ long Prj_DB_CreateProject (const struct Prj_Project *Prj)
"'%s',FROM_UNIXTIME(%ld),'%s')",
Gbl.Hierarchy.Crs.CrsCod,
Prj->DptCod,
Prj->Hidden == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[Prj->Hidden],
Prj->Assigned == Prj_ASSIGNED ? 'Y' :
'N',
Prj->NumStds,
@ -142,6 +143,8 @@ long Prj_DB_CreateProject (const struct Prj_Project *Prj)
void Prj_DB_UpdateProject (const struct Prj_Project *Prj)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not update project",
"UPDATE prj_projects"
" SET DptCod=%ld,"
@ -158,8 +161,7 @@ void Prj_DB_UpdateProject (const struct Prj_Project *Prj)
" WHERE PrjCod=%ld"
" AND CrsCod=%ld", // Extra check
Prj->DptCod,
Prj->Hidden == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[Prj->Hidden],
Prj->Assigned == Prj_ASSIGNED ? 'Y' :
'N',
Prj->NumStds,
@ -197,13 +199,14 @@ void Prj_DB_AddUsrToPrj (long PrjCod,Prj_RoleInProject_t RoleInProject,long UsrC
void Prj_DB_HideOrUnhideProject (long PrjCod,
HidVis_HiddenOrVisible_t HiddenOrVisible)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide project",
"UPDATE prj_projects"
" SET Hidden='%c'"
" WHERE PrjCod=%ld"
" AND CrsCod=%ld", // Extra check
HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[HiddenOrVisible],
PrjCod,
Gbl.Hierarchy.Crs.CrsCod);
}

View File

@ -111,12 +111,13 @@ void Svy_DB_UpdateSurvey (const struct Svy_Survey *Svy,const char *Txt)
void Svy_DB_HideOrUnhideSurvey (long SvyCod,
HidVis_HiddenOrVisible_t HiddenOrVisible)
{
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide survey",
"UPDATE svy_surveys"
" SET Hidden='%c'"
" WHERE SvyCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' :
'N',
HidVis_YN[HiddenOrVisible],
SvyCod);
}