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].attendanceEventCode = (int) Event.AttCod;
getAttendanceEventsOut->eventsArray.__ptr[NumAttEvent].hidden = (Event.HiddenOrVisible == HidVis_HIDDEN) ? 1 : getAttendanceEventsOut->eventsArray.__ptr[NumAttEvent].hidden = (Event.HiddenOrVisible == HidVis_HIDDEN) ? 1 :
0; 0;
Gbl.Usrs.Other.UsrDat.UsrCod = Event.UsrCod; 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 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? */ /* Are teacher's comments visible? */
Event.CommentTchVisible = (commentsTeachersVisible ? true : Event.CommentTchVisible = (commentsTeachersVisible ? true :
false); false);
/* Title */ /* Title */
if (!title[0]) 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, void Agd_DB_HideOrUnhideEvent (long AgdCod,long UsrCod,
HidVis_HiddenOrVisible_t HiddenOrVisible) HidVis_HiddenOrVisible_t HiddenOrVisible)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide event", DB_QueryUPDATE ("can not hide/unhide event",
"UPDATE agd_agendas" "UPDATE agd_agendas"
" SET Hidden='%c'" " SET Hidden='%c'"
" WHERE AgdCod=%ld" " WHERE AgdCod=%ld"
" AND UsrCod=%ld", " AND UsrCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[HiddenOrVisible],
'N',
AgdCod, AgdCod,
UsrCod); UsrCod);
} }

View File

@ -506,14 +506,14 @@ static void Asg_ShowAssignmentRow (struct Asg_Assignments *Assignments,
if (PrintView) if (PrintView)
HTM_TD_Begin ("id=\"%s\" class=\"LB %s_%s\"", HTM_TD_Begin ("id=\"%s\" class=\"LB %s_%s\"",
Id, Id,
Assignments->Asg.Open == HidVis_HIDDEN ? HidVis_DateGreenClass[Assignments->Asg.HiddenOrVisible] : Assignments->Asg.Open ? HidVis_DateGreenClass[Assignments->Asg.HiddenOrVisible] :
HidVis_DateRedClass[Assignments->Asg.HiddenOrVisible], HidVis_DateRedClass[Assignments->Asg.HiddenOrVisible],
The_GetSuffix ()); The_GetSuffix ());
else else
HTM_TD_Begin ("id=\"%s\" class=\"LB %s_%s %s\"", HTM_TD_Begin ("id=\"%s\" class=\"LB %s_%s %s\"",
Id, Id,
Assignments->Asg.Open == HidVis_HIDDEN ? HidVis_DateGreenClass[Assignments->Asg.HiddenOrVisible] : Assignments->Asg.Open ? HidVis_DateGreenClass[Assignments->Asg.HiddenOrVisible] :
HidVis_DateRedClass[Assignments->Asg.HiddenOrVisible], HidVis_DateRedClass[Assignments->Asg.HiddenOrVisible],
The_GetSuffix (), The_GetSuffix (),
The_GetColorRows ()); The_GetColorRows ());
Dat_WriteLocalDateHMSFromUTC (Id,Assignments->Asg.TimeUTC[StartEndTime], 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, void Asg_DB_HideOrUnhideAssignment (long AsgCod,
HidVis_HiddenOrVisible_t HiddenOrVisible) HidVis_HiddenOrVisible_t HiddenOrVisible)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide assignment", DB_QueryUPDATE ("can not hide/unhide assignment",
"UPDATE asg_assignments" "UPDATE asg_assignments"
" SET Hidden='%c'" " SET Hidden='%c'"
" WHERE AsgCod=%ld" " WHERE AsgCod=%ld"
" AND CrsCod=%ld", " AND CrsCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[HiddenOrVisible],
'N',
AsgCod, AsgCod,
Gbl.Hierarchy.Crs.CrsCod); 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) long Att_DB_CreateEvent (const struct Att_Event *Event,const char *Description)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
return return
DB_QueryINSERTandReturnCode ("can not create new attendance event", DB_QueryINSERTandReturnCode ("can not create new attendance event",
"INSERT INTO att_events" "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)," "FROM_UNIXTIME(%ld),FROM_UNIXTIME(%ld),"
"'%c','%s','%s')", "'%c','%s','%s')",
Gbl.Hierarchy.Crs.CrsCod, Gbl.Hierarchy.Crs.CrsCod,
Event->HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[Event->HiddenOrVisible],
'N',
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
Event->TimeUTC[Dat_STR_TIME], Event->TimeUTC[Dat_STR_TIME],
Event->TimeUTC[Dat_END_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) 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", DB_QueryUPDATE ("can not update attendance event",
"UPDATE att_events" "UPDATE att_events"
" SET Hidden='%c'," " SET Hidden='%c',"
@ -281,8 +284,7 @@ void Att_DB_UpdateEvent (const struct Att_Event *Event,const char *Description)
"Txt='%s'" "Txt='%s'"
" WHERE AttCod=%ld" " WHERE AttCod=%ld"
" AND CrsCod=%ld", // Extra check " AND CrsCod=%ld", // Extra check
Event->HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[Event->HiddenOrVisible],
'N',
Event->TimeUTC[Dat_STR_TIME], Event->TimeUTC[Dat_STR_TIME],
Event->TimeUTC[Dat_END_TIME], Event->TimeUTC[Dat_END_TIME],
Event->CommentTchVisible ? 'Y' : 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, void Att_DB_HideOrUnhideEvent (long AttCod,
HidVis_HiddenOrVisible_t HiddenOrVisible) HidVis_HiddenOrVisible_t HiddenOrVisible)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide assignment", DB_QueryUPDATE ("can not hide/unhide assignment",
"UPDATE att_events" "UPDATE att_events"
" SET Hidden='%c'" " SET Hidden='%c'"
" WHERE AttCod=%ld" " WHERE AttCod=%ld"
" AND CrsCod=%ld", " AND CrsCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[HiddenOrVisible],
'N',
AttCod, AttCod,
Gbl.Hierarchy.Crs.CrsCod); 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) 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", DB_QueryUPDATE ("can not hide/unhide banner",
"UPDATE ban_banners" "UPDATE ban_banners"
" SET Hidden='%c'" " SET Hidden='%c'"
" WHERE BanCod=%ld", " WHERE BanCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[HiddenOrVisible],
'N',
BanCod); BanCod);
} }

View File

@ -2276,6 +2276,7 @@ unsigned Brw_DB_GetNumFileViewsUsr (long UsrCod)
void Brw_DB_HideOrUnhideFileOrFolder (const char Path[PATH_MAX + 1], void Brw_DB_HideOrUnhideFileOrFolder (const char Path[PATH_MAX + 1],
HidVis_HiddenOrVisible_t HiddenOrVisible) HidVis_HiddenOrVisible_t HiddenOrVisible)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
long Cod = Brw_GetCodForFileBrowser (); long Cod = Brw_GetCodForFileBrowser ();
long ZoneUsrCod = Brw_GetZoneUsrCodForFileBrowser (); long ZoneUsrCod = Brw_GetZoneUsrCodForFileBrowser ();
@ -2287,8 +2288,7 @@ void Brw_DB_HideOrUnhideFileOrFolder (const char Path[PATH_MAX + 1],
" AND Cod=%ld" " AND Cod=%ld"
" AND ZoneUsrCod=%ld" " AND ZoneUsrCod=%ld"
" AND Path='%s'", " AND Path='%s'",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[HiddenOrVisible],
'N',
(unsigned) Brw_DB_FileBrowserForDB_files[Gbl.FileBrowser.Type], (unsigned) Brw_DB_FileBrowserForDB_files[Gbl.FileBrowser.Type],
Cod, Cod,
ZoneUsrCod, 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. 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 CSS_FILE "swad22.120.4.css"
#define JS_FILE "swad22.49.js" #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.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.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) 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, void Exa_DB_HideOrUnhideExam (long ExaCod,
HidVis_HiddenOrVisible_t HiddenOrVisible) HidVis_HiddenOrVisible_t HiddenOrVisible)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide exam", DB_QueryUPDATE ("can not hide/unhide exam",
"UPDATE exa_exams" "UPDATE exa_exams"
" SET Hidden='%c'" " SET Hidden='%c'"
" WHERE ExaCod=%ld", " WHERE ExaCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[HiddenOrVisible],
'N',
ExaCod); ExaCod);
} }
@ -1285,6 +1286,8 @@ void Exa_DB_RemoveAllSetAnswersFromCrs (long CrsCod)
long Exa_DB_CreateSession (const struct ExaSes_Session *Session) long Exa_DB_CreateSession (const struct ExaSes_Session *Session)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
return return
DB_QueryINSERTandReturnCode ("can not create exam session", DB_QueryINSERTandReturnCode ("can not create exam session",
"INSERT exa_sessions" "INSERT exa_sessions"
@ -1304,9 +1307,8 @@ long Exa_DB_CreateSession (const struct ExaSes_Session *Session)
"'%s'," // Title "'%s'," // Title
"'N')", // ShowUsrResults: Don't show user results initially "'N')", // ShowUsrResults: Don't show user results initially
Session->ExaCod, Session->ExaCod,
Session->HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[Session->HiddenOrVisible],
'N', Gbl.Usrs.Me.UsrDat.UsrCod, // Session creator
Gbl.Usrs.Me.UsrDat.UsrCod, // Session creator
Session->TimeUTC[Dat_STR_TIME], // Start time Session->TimeUTC[Dat_STR_TIME], // Start time
Session->TimeUTC[Dat_END_TIME], // End time Session->TimeUTC[Dat_END_TIME], // End time
Session->Title); Session->Title);
@ -1318,6 +1320,8 @@ long Exa_DB_CreateSession (const struct ExaSes_Session *Session)
void Exa_DB_UpdateSession (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 *****/ /***** Insert this new exam session into database *****/
DB_QueryUPDATE ("can not update exam session", DB_QueryUPDATE ("can not update exam session",
"UPDATE exa_sessions," "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=%ld" // Extra check
" AND exa_sessions.ExaCod=exa_exams.ExaCod" " AND exa_sessions.ExaCod=exa_exams.ExaCod"
" AND exa_exams.CrsCod=%ld", // Extra check " AND exa_exams.CrsCod=%ld", // Extra check
Session->HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[Session->HiddenOrVisible],
'N',
Session->TimeUTC[Dat_STR_TIME], // Start time Session->TimeUTC[Dat_STR_TIME], // Start time
Session->TimeUTC[Dat_END_TIME], // End time Session->TimeUTC[Dat_END_TIME], // End time
Session->Title, Session->Title,
@ -1533,6 +1536,8 @@ void Exa_DB_ToggleVisResultsSesUsr (const struct ExaSes_Session *Session)
void Exa_DB_HideUnhideSession (const struct ExaSes_Session *Session, void Exa_DB_HideUnhideSession (const struct ExaSes_Session *Session,
HidVis_HiddenOrVisible_t HiddenOrVisible) HidVis_HiddenOrVisible_t HiddenOrVisible)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide exam sessions", DB_QueryUPDATE ("can not hide exam sessions",
"UPDATE exa_sessions," "UPDATE exa_sessions,"
"exa_exams" "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=%ld" // Extra check
" AND exa_sessions.ExaCod=exa_exams.ExaCod" " AND exa_sessions.ExaCod=exa_exams.ExaCod"
" AND exa_exams.CrsCod=%ld", // Extra check " AND exa_exams.CrsCod=%ld", // Extra check
HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[HiddenOrVisible],
'N',
Session->SesCod, Session->SesCod,
Session->ExaCod, Session->ExaCod,
Gbl.Hierarchy.Crs.CrsCod); 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, void Gam_DB_HideOrUnhideGame (long GamCod,
HidVis_HiddenOrVisible_t HiddenOrVisible) HidVis_HiddenOrVisible_t HiddenOrVisible)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide game", DB_QueryUPDATE ("can not hide/unhide game",
"UPDATE gam_games" "UPDATE gam_games"
" SET Hidden='%c'" " SET Hidden='%c'"
" WHERE GamCod=%ld", " WHERE GamCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[HiddenOrVisible],
'N',
GamCod); 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, void Prg_DB_HideOrUnhideItem (long ItmCod,
HidVis_HiddenOrVisible_t HiddenOrVisible) HidVis_HiddenOrVisible_t HiddenOrVisible)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide program item", DB_QueryUPDATE ("can not hide/unhide program item",
"UPDATE prg_items" "UPDATE prg_items"
" SET Hidden='%c'" " SET Hidden='%c'"
" WHERE ItmCod=%ld" " WHERE ItmCod=%ld"
" AND CrsCod=%ld", // Extra check " AND CrsCod=%ld", // Extra check
HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[HiddenOrVisible],
'N',
ItmCod, ItmCod,
Gbl.Hierarchy.Crs.CrsCod); Gbl.Hierarchy.Crs.CrsCod);
} }
@ -594,12 +595,13 @@ void Prg_DB_RemoveResource (const struct Prg_Item *Item)
void Prg_DB_HideOrUnhideResource (long RscCod, void Prg_DB_HideOrUnhideResource (long RscCod,
HidVis_HiddenOrVisible_t HiddenOrVisible) HidVis_HiddenOrVisible_t HiddenOrVisible)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide item resource", DB_QueryUPDATE ("can not hide/unhide item resource",
"UPDATE prg_resources" "UPDATE prg_resources"
" SET Hidden='%c'" " SET Hidden='%c'"
" WHERE RscCod=%ld", " WHERE RscCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[HiddenOrVisible],
'N',
RscCod); RscCod);
} }

View File

@ -222,20 +222,20 @@ static void Prj_ShowFirstRow (struct Prj_Projects *Projects,
static void Prj_ShowProjectDepartment (const struct Prj_Projects *Projects, static void Prj_ShowProjectDepartment (const struct Prj_Projects *Projects,
const char *ClassData); const char *ClassData);
static void Prj_ShowReviewStatus (struct Prj_Projects *Projects, static void Prj_ShowReviewStatus (struct Prj_Projects *Projects,
const char *ClassLabel, const char *ClassLabel,
const char *ClassData, const char *ClassData,
const struct Prj_Faults *Faults, const struct Prj_Faults *Faults,
const char *Anchor); const char *Anchor);
static void Prj_PutSelectorReviewStatus (struct Prj_Projects *Projects); static void Prj_PutSelectorReviewStatus (struct Prj_Projects *Projects);
static bool Prj_CheckIfICanReviewProjects (void); static bool Prj_CheckIfICanReviewProjects (void);
static void Prj_ShowAssigned (const struct Prj_Projects *Projects, static void Prj_ShowAssigned (const struct Prj_Projects *Projects,
const char *ClassLabel, const char *ClassLabel,
const char *ClassData, const char *ClassData,
const struct Prj_Faults *Faults); const struct Prj_Faults *Faults);
static void Prj_ShowNumStds (const struct Prj_Projects *Projects, static void Prj_ShowNumStds (const struct Prj_Projects *Projects,
const char *ClassLabel, const char *ClassLabel,
const char *ClassData, const char *ClassData,
const struct Prj_Faults *Faults); const struct Prj_Faults *Faults);
static void Prj_ShowMembers (struct Prj_Projects *Projects); static void Prj_ShowMembers (struct Prj_Projects *Projects);
static void Prj_ShowProjectMembersWithARole (struct Prj_Projects *Projects, static void Prj_ShowProjectMembersWithARole (struct Prj_Projects *Projects,
Prj_RoleInProject_t RoleInPrj); Prj_RoleInProject_t RoleInPrj);
@ -1439,16 +1439,14 @@ void Prj_PrintOneProject (void)
static void Prj_ShowProjectRow (struct Prj_Projects *Projects) 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_Description;
extern const char *Txt_Required_knowledge; extern const char *Txt_Required_knowledge;
extern const char *Txt_Required_materials; extern const char *Txt_Required_materials;
struct Prj_Faults Faults; struct Prj_Faults Faults;
static unsigned UniqueId = 0; static unsigned UniqueId = 0;
char *Anchor = NULL; 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 *****/ /***** Set anchor string *****/
Frm_SetAnchorStr ((long) Projects->NumIndex,&Anchor); 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...) *****/ /***** First row with main data (dates, title...) *****/
UniqueId++; UniqueId++;
Prj_ShowFirstRow (Projects,ClassData,&Faults,UniqueId,Anchor); Prj_ShowFirstRow (Projects,HidVis_DataClass[Projects->Prj.Hidden],
&Faults,UniqueId,Anchor);
/***** Data always visible *****/ /***** Data always visible *****/
Prj_ShowReviewStatus (Projects,ClassLabel,ClassData,&Faults,Anchor); Prj_ShowReviewStatus (Projects,
Prj_ShowAssigned (Projects,ClassLabel,ClassData,&Faults); HidVis_LabelClass[Projects->Prj.Hidden],
Prj_ShowNumStds (Projects,ClassLabel,ClassData,&Faults); 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); Prj_ShowMembers (Projects);
/***** Link to show hidden info *****/ /***** Link to show hidden info *****/
Prj_PutLinkToShowHiddenInfo (Projects,UniqueId); Prj_PutLinkToShowHiddenInfo (Projects,UniqueId);
/***** Hiddeable data ******/ /***** Hiddeable data ******/
Prj_ShowProposal (Projects,ClassLabel,ClassData,UniqueId); Prj_ShowProposal (Projects,
Prj_ShowTxtField (Projects,ClassLabel,ClassData,"prj_dsc_",UniqueId, 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 Txt_Description, // Description of the project
Projects->Prj.Description, Projects->Prj.Description,
Faults.WrongDescription ? Prj_PUT_WARNING : Faults.WrongDescription ? Prj_PUT_WARNING :
Prj_DONT_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 Txt_Required_knowledge, // Required knowledge
Projects->Prj.Knowledge, Projects->Prj.Knowledge,
Prj_DONT_PUT_WARNING); 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 Txt_Required_materials, // Required materials
Projects->Prj.Materials, Projects->Prj.Materials,
Prj_DONT_PUT_WARNING); 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 *****/ /***** Free anchor string *****/
Frm_FreeAnchorStr (&Anchor); Frm_FreeAnchorStr (&Anchor);
@ -1495,16 +1513,16 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects)
/*****************************************************************************/ /*****************************************************************************/
static void Prj_ShowFirstRow (struct Prj_Projects *Projects, static void Prj_ShowFirstRow (struct Prj_Projects *Projects,
const char *ClassData, const char *ClassData,
const struct Prj_Faults *Faults, const struct Prj_Faults *Faults,
unsigned UniqueId, unsigned UniqueId,
const char *Anchor) 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]; extern const char *Txt_Actions[ActLst_NUM_ACTIONS];
char *Id; char *Id;
Act_Action_t NextAction; 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 *****/ /***** Write first row of data of this project *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
@ -1549,13 +1567,13 @@ static void Prj_ShowFirstRow (struct Prj_Projects *Projects,
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("id=\"%s\" class=\"LT %s_%s %s\"", HTM_TD_Begin ("id=\"%s\" class=\"LT %s_%s %s\"",
Id, Id,
ClassDate,The_GetSuffix (), HidVis_DateBlueClass[Projects->Prj.Hidden],The_GetSuffix (),
The_GetColorRows ()); The_GetColorRows ());
break; break;
default: default:
HTM_TD_Begin ("id=\"%s\" class=\"LT %s_%s\"", HTM_TD_Begin ("id=\"%s\" class=\"LT %s_%s\"",
Id, Id,
ClassDate,The_GetSuffix ()); HidVis_DateBlueClass[Projects->Prj.Hidden],The_GetSuffix ());
break; break;
} }
Dat_WriteLocalDateHMSFromUTC (Id,Projects->Prj.CreatTime, Dat_WriteLocalDateHMSFromUTC (Id,Projects->Prj.CreatTime,
@ -1573,13 +1591,13 @@ static void Prj_ShowFirstRow (struct Prj_Projects *Projects,
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("id=\"%s\" class=\"LT %s_%s %s\"", HTM_TD_Begin ("id=\"%s\" class=\"LT %s_%s %s\"",
Id, Id,
ClassDate,The_GetSuffix (), HidVis_DateBlueClass[Projects->Prj.Hidden],The_GetSuffix (),
The_GetColorRows ()); The_GetColorRows ());
break; break;
default: default:
HTM_TD_Begin ("id=\"%s\" class=\"LT %s_%s\"", HTM_TD_Begin ("id=\"%s\" class=\"LT %s_%s\"",
Id, Id,
ClassDate,The_GetSuffix ()); HidVis_DateBlueClass[Projects->Prj.Hidden],The_GetSuffix ());
break; break;
} }
Dat_WriteLocalDateHMSFromUTC (Id,Projects->Prj.ModifTime, Dat_WriteLocalDateHMSFromUTC (Id,Projects->Prj.ModifTime,
@ -1607,8 +1625,7 @@ static void Prj_ShowFirstRow (struct Prj_Projects *Projects,
Prj_PutCurrentPars (Projects); Prj_PutCurrentPars (Projects);
HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction], HTM_BUTTON_Submit_Begin (Txt_Actions[NextAction],
"class=\"LT BT_LINK %s_%s\"", "class=\"LT BT_LINK %s_%s\"",
Projects->Prj.Hidden == HidVis_HIDDEN ? "ASG_TITLE_LIGHT" : HidVis_TitleClass[Projects->Prj.Hidden],
"ASG_TITLE",
The_GetSuffix ()); The_GetSuffix ());
HTM_Txt (Projects->Prj.Title); HTM_Txt (Projects->Prj.Title);
HTM_BUTTON_End (); HTM_BUTTON_End ();
@ -1669,10 +1686,10 @@ static void Prj_ShowProjectDepartment (const struct Prj_Projects *Projects,
/*****************************************************************************/ /*****************************************************************************/
static void Prj_ShowReviewStatus (struct Prj_Projects *Projects, static void Prj_ShowReviewStatus (struct Prj_Projects *Projects,
const char *ClassLabel, const char *ClassLabel,
const char *ClassData, const char *ClassData,
const struct Prj_Faults *Faults, const struct Prj_Faults *Faults,
const char *Anchor) const char *Anchor)
{ {
extern const char *Txt_Review; extern const char *Txt_Review;
extern const char *Txt_PROJECT_REVIEW_SINGUL[Prj_NUM_REVIEW_STATUS]; 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, static void Prj_ShowAssigned (const struct Prj_Projects *Projects,
const char *ClassLabel, const char *ClassLabel,
const char *ClassData, const char *ClassData,
const struct Prj_Faults *Faults) const struct Prj_Faults *Faults)
{ {
extern const char *Txt_Assigned_QUESTION; extern const char *Txt_Assigned_QUESTION;
extern const char *Txt_Yes; 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, static void Prj_ShowNumStds (const struct Prj_Projects *Projects,
const char *ClassLabel, const char *ClassLabel,
const char *ClassData, const char *ClassData,
const struct Prj_Faults *Faults) const struct Prj_Faults *Faults)
{ {
extern const char *Txt_Number_of_students; 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, static void Prj_ShowProjectMembersWithARole (struct Prj_Projects *Projects,
Prj_RoleInProject_t RoleInPrj) 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_SINGUL_Abc[Prj_NUM_ROLES_IN_PROJECT];
extern const char *Txt_PROJECT_ROLES_PLURAL_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] = 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; bool WriteRow;
unsigned NumUsr; unsigned NumUsr;
unsigned NumUsrs; 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 *****/ /***** Get users in project from database *****/
NumUsrs = Prj_DB_GetUsrsInPrj (&mysql_res,Projects->Prj.PrjCod,RoleInPrj); 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: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s_%s %s\"", 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] : HTM_TxtColon (NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInPrj] :
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInPrj]); Txt_PROJECT_ROLES_PLURAL_Abc[RoleInPrj]);
break; break;
case Prj_VIEW_ONE_PROJECT: case Prj_VIEW_ONE_PROJECT:
case Prj_PRINT_ONE_PROJECT: case Prj_PRINT_ONE_PROJECT:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s_%s\"", 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] : HTM_TxtColon (NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInPrj] :
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInPrj]); Txt_PROJECT_ROLES_PLURAL_Abc[RoleInPrj]);
break; break;
case Prj_EDIT_ONE_PROJECT: case Prj_EDIT_ONE_PROJECT:
HTM_TD_Begin ("class=\"RT %s_%s\"", 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]); HTM_TxtColon (Txt_PROJECT_ROLES_PLURAL_Abc[RoleInPrj]);
break; break;
} }
@ -2052,13 +2070,15 @@ static void Prj_ShowProjectMembersWithARole (struct Prj_Projects *Projects,
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s_%s %s\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (), HidVis_DataClass[Projects->Prj.Hidden],
The_GetSuffix (),
The_GetColorRows ()); The_GetColorRows ());
break; break;
case Prj_VIEW_ONE_PROJECT: case Prj_VIEW_ONE_PROJECT:
case Prj_PRINT_ONE_PROJECT: case Prj_PRINT_ONE_PROJECT:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s_%s\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s_%s\"",
ClassData,The_GetSuffix ()); HidVis_DataClass[Projects->Prj.Hidden],
The_GetSuffix ());
break; break;
case Prj_EDIT_ONE_PROJECT: case Prj_EDIT_ONE_PROJECT:
HTM_TD_Begin ("colspan=\"2\" class=\"LT DAT_%s\"", 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 */ /* Write user's name */
HTM_TD_Begin ("class=\"LM %s_%s\"", HTM_TD_Begin ("class=\"LM %s_%s\"",
Projects->Prj.Hidden == HidVis_HIDDEN ? "MSG_AUT_LIGHT" : HidVis_MsgClass[Projects->Prj.Hidden],
"MSG_AUT",
The_GetSuffix ()); The_GetSuffix ());
HTM_Txt (Gbl.Usrs.Other.UsrDat.FullName); HTM_Txt (Gbl.Usrs.Other.UsrDat.FullName);
HTM_TD_End (); HTM_TD_End ();
@ -2497,24 +2516,18 @@ static void Prj_PutIconToToggleProject (unsigned UniqueId,
static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj) 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_Yes;
extern const char *Txt_No; extern const char *Txt_No;
extern const char *Txt_PROJECT_STATUS[Prj_NUM_PROPOSAL_TYPES]; extern const char *Txt_PROJECT_STATUS[Prj_NUM_PROPOSAL_TYPES];
unsigned NumRoleToShow; unsigned NumRoleToShow;
const char *ClassDate;
const char *ClassData;
static unsigned UniqueId = 0; static unsigned UniqueId = 0;
char *Id; char *Id;
/***** Get data of this project *****/ /***** Get data of this project *****/
Prj_GetProjectDataByCod (Prj); 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 *****/ /***** Begin row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
@ -2523,7 +2536,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
if (asprintf (&Id,"prj_creat_%u",UniqueId) < 0) if (asprintf (&Id,"prj_creat_%u",UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"LT %s %s\"", 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, Dat_WriteLocalDateHMSFromUTC (Id,Prj->CreatTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7); true,true,false,0x7);
@ -2535,7 +2548,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
if (asprintf (&Id,"prj_modif_%u",UniqueId) < 0) if (asprintf (&Id,"prj_modif_%u",UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"LT %s %s\"", 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, Dat_WriteLocalDateHMSFromUTC (Id,Prj->ModifTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7); true,true,false,0x7);
@ -2544,7 +2557,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
/***** Project title *****/ /***** Project title *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"", 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_Txt (Prj->Title);
HTM_TD_End (); HTM_TD_End ();
@ -2553,14 +2566,16 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
/***** Assigned? *****/ /***** Assigned? *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"", 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 : HTM_Txt ((Prj->Assigned == Prj_ASSIGNED) ? Txt_Yes :
Txt_No); Txt_No);
HTM_TD_End (); HTM_TD_End ();
/***** Number of students *****/ /***** Number of students *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"", 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_Unsigned (Prj->NumStds);
HTM_TD_End (); HTM_TD_End ();
@ -2572,7 +2587,8 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
/***** Proposal *****/ /***** Proposal *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"", 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_Txt (Txt_PROJECT_STATUS[Prj->Proposal]);
HTM_TD_End (); HTM_TD_End ();
@ -2599,12 +2615,8 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
static void Prj_ShowTableAllProjectsDepartment (const 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; struct Dpt_Department Dpt;
const char *ClassData;
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == HidVis_HIDDEN) ? "DAT_LIGHT" :
"DAT";
/***** Get data of department *****/ /***** Get data of department *****/
Dpt.DptCod = Prj->DptCod; Dpt.DptCod = Prj->DptCod;
@ -2612,7 +2624,8 @@ static void Prj_ShowTableAllProjectsDepartment (const struct Prj_Project *Prj)
/***** Show department *****/ /***** Show department *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"", 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_Txt (Dpt.FullName);
HTM_TD_End (); HTM_TD_End ();
} }
@ -2624,11 +2637,7 @@ static void Prj_ShowTableAllProjectsDepartment (const struct Prj_Project *Prj)
static void Prj_ShowTableAllProjectsTxtField (struct Prj_Project *Prj, static void Prj_ShowTableAllProjectsTxtField (struct Prj_Project *Prj,
char *TxtField) char *TxtField)
{ {
const char *ClassData; extern const char *HidVis_DataClass[HidVis_NUM_HIDDEN_VISIBLE];
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == HidVis_HIDDEN) ? "DAT_LIGHT" :
"DAT";
/***** Change format *****/ /***** Change format *****/
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
@ -2636,7 +2645,8 @@ static void Prj_ShowTableAllProjectsTxtField (struct Prj_Project *Prj,
/***** Write text *****/ /***** Write text *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"", 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_Txt (TxtField);
HTM_TD_End (); HTM_TD_End ();
} }
@ -2647,15 +2657,12 @@ static void Prj_ShowTableAllProjectsTxtField (struct Prj_Project *Prj,
static void Prj_ShowTableAllProjectsURL (const struct Prj_Project *Prj) static void Prj_ShowTableAllProjectsURL (const struct Prj_Project *Prj)
{ {
const char *ClassData; extern const char *HidVis_DataClass[HidVis_NUM_HIDDEN_VISIBLE];
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == HidVis_HIDDEN) ? "DAT_LIGHT" :
"DAT";
/***** Show URL *****/ /***** Show URL *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"", 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_Txt (Prj->URL);
HTM_TD_End (); 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, static void Prj_ShowTableAllProjectsMembersWithARole (const struct Prj_Project *Prj,
Prj_RoleInProject_t RoleInPrj) Prj_RoleInProject_t RoleInPrj)
{ {
extern const char *HidVis_DataClass[HidVis_NUM_HIDDEN_VISIBLE];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
unsigned NumUsr; unsigned NumUsr;
unsigned NumUsrs; unsigned NumUsrs;
const char *ClassData;
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == HidVis_HIDDEN) ? "DAT_LIGHT" :
"DAT";
/***** Get users in project from database *****/ /***** Get users in project from database *****/
NumUsrs = Prj_DB_GetUsrsInPrj (&mysql_res,Prj->PrjCod,RoleInPrj); NumUsrs = Prj_DB_GetUsrsInPrj (&mysql_res,Prj->PrjCod,RoleInPrj);
/***** Begin column with list of all members with this role *****/ /***** Begin column with list of all members with this role *****/
HTM_TD_Begin ("class=\"LT %s_%s %s\"", HTM_TD_Begin ("class=\"LT %s_%s %s\"",
ClassData,The_GetSuffix (),The_GetColorRows ()); HidVis_DataClass[Prj->Hidden],The_GetSuffix (),
The_GetColorRows ());
if (NumUsrs) if (NumUsrs)
{ {
@ -3173,8 +3177,7 @@ static void Prj_PutIconsToRemEditOnePrj (struct Prj_Projects *Projects,
/***** Icon to hide/unhide project *****/ /***** Icon to hide/unhide project *****/
Ico_PutContextualIconToHideUnhide (ActionHideUnhide,Anchor, Ico_PutContextualIconToHideUnhide (ActionHideUnhide,Anchor,
Prj_PutCurrentPars,Projects, Prj_PutCurrentPars,Projects,
Projects->Prj.Hidden == HidVis_HIDDEN ? HidVis_HIDDEN : Projects->Prj.Hidden);
HidVis_VISIBLE);
/***** Icon to edit project *****/ /***** Icon to edit project *****/
Ico_PutContextualIconToEdit (ActEdiOnePrj,NULL, 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) long Prj_DB_CreateProject (const struct Prj_Project *Prj)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
return return
DB_QueryINSERTandReturnCode ("can not create new project", DB_QueryINSERTandReturnCode ("can not create new project",
"INSERT INTO prj_projects" "INSERT INTO prj_projects"
@ -118,8 +120,7 @@ long Prj_DB_CreateProject (const struct Prj_Project *Prj)
"'%s',FROM_UNIXTIME(%ld),'%s')", "'%s',FROM_UNIXTIME(%ld),'%s')",
Gbl.Hierarchy.Crs.CrsCod, Gbl.Hierarchy.Crs.CrsCod,
Prj->DptCod, Prj->DptCod,
Prj->Hidden == HidVis_HIDDEN ? 'Y' : HidVis_YN[Prj->Hidden],
'N',
Prj->Assigned == Prj_ASSIGNED ? 'Y' : Prj->Assigned == Prj_ASSIGNED ? 'Y' :
'N', 'N',
Prj->NumStds, Prj->NumStds,
@ -142,6 +143,8 @@ long Prj_DB_CreateProject (const struct Prj_Project *Prj)
void Prj_DB_UpdateProject (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", DB_QueryUPDATE ("can not update project",
"UPDATE prj_projects" "UPDATE prj_projects"
" SET DptCod=%ld," " SET DptCod=%ld,"
@ -158,8 +161,7 @@ void Prj_DB_UpdateProject (const struct Prj_Project *Prj)
" WHERE PrjCod=%ld" " WHERE PrjCod=%ld"
" AND CrsCod=%ld", // Extra check " AND CrsCod=%ld", // Extra check
Prj->DptCod, Prj->DptCod,
Prj->Hidden == HidVis_HIDDEN ? 'Y' : HidVis_YN[Prj->Hidden],
'N',
Prj->Assigned == Prj_ASSIGNED ? 'Y' : Prj->Assigned == Prj_ASSIGNED ? 'Y' :
'N', 'N',
Prj->NumStds, Prj->NumStds,
@ -197,13 +199,14 @@ void Prj_DB_AddUsrToPrj (long PrjCod,Prj_RoleInProject_t RoleInProject,long UsrC
void Prj_DB_HideOrUnhideProject (long PrjCod, void Prj_DB_HideOrUnhideProject (long PrjCod,
HidVis_HiddenOrVisible_t HiddenOrVisible) HidVis_HiddenOrVisible_t HiddenOrVisible)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide project", DB_QueryUPDATE ("can not hide/unhide project",
"UPDATE prj_projects" "UPDATE prj_projects"
" SET Hidden='%c'" " SET Hidden='%c'"
" WHERE PrjCod=%ld" " WHERE PrjCod=%ld"
" AND CrsCod=%ld", // Extra check " AND CrsCod=%ld", // Extra check
HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[HiddenOrVisible],
'N',
PrjCod, PrjCod,
Gbl.Hierarchy.Crs.CrsCod); 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, void Svy_DB_HideOrUnhideSurvey (long SvyCod,
HidVis_HiddenOrVisible_t HiddenOrVisible) HidVis_HiddenOrVisible_t HiddenOrVisible)
{ {
extern const char HidVis_YN[HidVis_NUM_HIDDEN_VISIBLE];
DB_QueryUPDATE ("can not hide/unhide survey", DB_QueryUPDATE ("can not hide/unhide survey",
"UPDATE svy_surveys" "UPDATE svy_surveys"
" SET Hidden='%c'" " SET Hidden='%c'"
" WHERE SvyCod=%ld", " WHERE SvyCod=%ld",
HiddenOrVisible == HidVis_HIDDEN ? 'Y' : HidVis_YN[HiddenOrVisible],
'N',
SvyCod); SvyCod);
} }