Version 23.43.1: Nov 06, 2023 Code refactoring in forms.

This commit is contained in:
acanas 2023-11-06 10:37:33 +01:00
parent 91152dcf24
commit 396a36d8f1
4 changed files with 150 additions and 120 deletions

View File

@ -633,10 +633,12 @@ Me sale este error, no s
"can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod') "can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod')
*/ */
#define Log_PLATFORM_VERSION "SWAD 23.42.1 (2023-11-05)" #define Log_PLATFORM_VERSION "SWAD 23.43.1 (2023-11-06)"
#define CSS_FILE "swad23.35.1.css" #define CSS_FILE "swad23.35.1.css"
#define JS_FILE "swad22.49.js" #define JS_FILE "swad22.49.js"
/* /*
Version 23.43.1: Nov 06, 2023 Code refactoring in forms. (335583 lines)
Version 23.43: Nov 06, 2023 Code refactoring in forms. (335551 lines)
Version 23.42.1: Nov 05, 2023 Code refactoring in notifications. (335447 lines) Version 23.42.1: Nov 05, 2023 Code refactoring in notifications. (335447 lines)
Version 23.42: Oct 29, 2023 Code refactoring in view/edit/print. (335453 lines) Version 23.42: Oct 29, 2023 Code refactoring in view/edit/print. (335453 lines)
Version 23.41.2: Oct 29, 2023 Code refactoring in class photo. (335361 lines) Version 23.41.2: Oct 29, 2023 Code refactoring in class photo. (335361 lines)

View File

@ -651,11 +651,12 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
time_t TimeDiff; time_t TimeDiff;
const char *ClassTxt; const char *ClassTxt;
struct Usr_Data UsrDat; struct Usr_Data UsrDat;
bool PutLinkToRecord = (Gbl.Hierarchy.Level == Hie_CRS && // Course selected Frm_PutForm_t PutFormRecord = (Gbl.Hierarchy.Level == Hie_CRS && // Course selected
Gbl.Scope.Current == Hie_CRS && // Scope is current course Gbl.Scope.Current == Hie_CRS && // Scope is current course
(Role == Rol_STD || // Role is student,... (Role == Rol_STD || // Role is student,...
Role == Rol_NET || // ...non-editing teacher... Role == Rol_NET || // ...non-editing teacher...
Role == Rol_TCH)); // ...or teacher Role == Rol_TCH)) ? Frm_PUT_FORM : // ...or teacher
Frm_DONT_PUT_FORM;
/***** Get connected users who belong to current location from database *****/ /***** Get connected users who belong to current location from database *****/
if ((NumUsrs = Con_DB_GetConnectedFromCurrentLocation (&mysql_res,Role))) if ((NumUsrs = Con_DB_GetConnectedFromCurrentLocation (&mysql_res,Role)))
@ -697,23 +698,21 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
HTM_TD_Begin ("class=\"%s %s\"", HTM_TD_Begin ("class=\"%s %s\"",
ClassTxt,The_GetColorRows ()); ClassTxt,The_GetColorRows ());
if (PutLinkToRecord) if (PutFormRecord == Frm_PUT_FORM)
{ {
if (!NextAction[Role]) if (!NextAction[Role])
Err_WrongRoleExit (); Err_WrongRoleExit ();
Frm_BeginForm (NextAction[Role]); Frm_BeginForm (NextAction[Role]);
Usr_PutParUsrCodEncrypted (UsrDat.EnUsrCod); Usr_PutParUsrCodEncrypted (UsrDat.EnUsrCod);
HTM_BUTTON_Submit_Begin (UsrDat.FullName,
"class=\"LT BT_LINK\"");
} }
if (PutLinkToRecord)
HTM_BUTTON_Submit_Begin (UsrDat.FullName,
"class=\"LT BT_LINK\"");
Usr_WriteFirstNameBRSurnames (&UsrDat); Usr_WriteFirstNameBRSurnames (&UsrDat);
if (PutLinkToRecord) if (PutFormRecord == Frm_PUT_FORM)
HTM_BUTTON_End (); {
HTM_BUTTON_End ();
if (PutLinkToRecord)
Frm_EndForm (); Frm_EndForm ();
}
HTM_TD_End (); HTM_TD_End ();

View File

@ -314,6 +314,7 @@ static void Ntf_GetParsNotifyEvents (void);
void Ntf_ShowMyNotifications (void) void Ntf_ShowMyNotifications (void)
{ {
extern const char **Hie_TxtLevel[Hie_NUM_LEVELS];
extern const char *Hlp_START_Notifications; extern const char *Hlp_START_Notifications;
extern const char *Txt_Settings; extern const char *Txt_Settings;
extern const char *Txt_Domains; extern const char *Txt_Domains;
@ -326,10 +327,6 @@ void Ntf_ShowMyNotifications (void)
extern const char *Txt_Email; extern const char *Txt_Email;
extern const char *Txt_NOTIFY_EVENTS_SINGULAR[Ntf_NUM_NOTIFY_EVENTS]; extern const char *Txt_NOTIFY_EVENTS_SINGULAR[Ntf_NUM_NOTIFY_EVENTS];
extern const char *Txt_Forum; extern const char *Txt_Forum;
extern const char *Txt_Course;
extern const char *Txt_Degree;
extern const char *Txt_Center;
extern const char *Txt_Institution;
extern const char *Txt_NOTIFICATION_STATUS[Ntf_NUM_STATUS_TXT]; extern const char *Txt_NOTIFICATION_STATUS[Ntf_NUM_STATUS_TXT];
extern const char *Txt_You_have_no_notifications; extern const char *Txt_You_have_no_notifications;
extern const char *Txt_You_have_no_unread_notifications; extern const char *Txt_You_have_no_unread_notifications;
@ -349,12 +346,16 @@ void Ntf_ShowMyNotifications (void)
Ntf_StatusTxt_t StatusTxt; Ntf_StatusTxt_t StatusTxt;
char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1]; char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1];
char *ContentStr; char *ContentStr;
const char *ClassTxt; struct
const char *ClassLink; {
const char *ClassAuthor; const char *Txt;
const char *ClassBg; const char *Link;
bool PutLink; const char *Author;
const char *Bg;
} Class;
Frm_PutForm_t PutForm;
Act_Action_t Action = ActUnk; Act_Action_t Action = ActUnk;
Hie_Level_t Level;
/***** Get my notifications from database *****/ /***** Get my notifications from database *****/
AllNotifications = Ntf_GetAllNotificationsFromForm (); AllNotifications = Ntf_GetAllNotificationsFromForm ();
@ -457,27 +458,29 @@ void Ntf_ShowMyNotifications (void)
if (Status & Ntf_STATUS_BIT_REMOVED) // The source of the notification was removed if (Status & Ntf_STATUS_BIT_REMOVED) // The source of the notification was removed
{ {
ClassTxt = "MSG_TIT_REM"; Class.Txt = "MSG_TIT_REM";
ClassLink = "BT_LINK MSG_TIT_REM"; Class.Link = "BT_LINK MSG_TIT_REM";
ClassAuthor = "MSG_AUT_LIGHT"; Class.Author = "MSG_AUT_LIGHT";
ClassBg = "MSG_BG_REM"; Class.Bg = "MSG_BG_REM";
PutLink = false; PutForm = Frm_DONT_PUT_FORM;
} }
else if (Status & Ntf_STATUS_BIT_READ) // I have already seen the source of the notification else
{ {
ClassTxt = "MSG_TIT"; if (Status & Ntf_STATUS_BIT_READ) // I have already seen the source of the notification
ClassLink = "LT BT_LINK MSG_TIT"; {
ClassAuthor = "MSG_AUT"; Class.Txt = "MSG_TIT";
ClassBg = "MSG_BG"; Class.Link = "LT BT_LINK MSG_TIT";
PutLink = true; Class.Author = "MSG_AUT";
} Class.Bg = "MSG_BG";
else // I have not seen the source of the notification }
{ else // I have not seen the source of the notification
ClassTxt = "MSG_TIT_NEW"; {
ClassLink = "LT BT_LINK MSG_TIT_NEW"; Class.Txt = "MSG_TIT_NEW";
ClassAuthor = "MSG_AUT_NEW"; Class.Link = "LT BT_LINK MSG_TIT_NEW";
ClassBg = "MSG_BG_NEW"; Class.Author = "MSG_AUT_NEW";
PutLink = true; Class.Bg = "MSG_BG_NEW";
}
PutForm = Frm_PUT_FORM;
} }
/***** Write row for this notification *****/ /***** Write row for this notification *****/
@ -485,131 +488,156 @@ void Ntf_ShowMyNotifications (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"LT %s_%s\" style=\"width:25px;\"", HTM_TD_Begin ("class=\"LT %s_%s\" style=\"width:25px;\"",
ClassBg,The_GetSuffix ()); Class.Bg,The_GetSuffix ());
if (PutLink) if (PutForm == Frm_PUT_FORM)
{ {
Action = Ntf_StartFormGoToAction (NotifyEvent,Hie[Hie_CRS].HieCod,&UsrDat,Cod,&Forums); Action = Ntf_StartFormGoToAction (NotifyEvent,Hie[Hie_CRS].HieCod,&UsrDat,Cod,&Forums);
PutLink = Frm_CheckIfInside (); PutForm = Frm_CheckIfInside () ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
} }
switch (PutForm)
if (PutLink)
{ {
Ico_PutIconLink (Ntf_Icons[NotifyEvent],Ico_BLACK,Action); case Frm_DONT_PUT_FORM:
Frm_EndForm (); Ico_PutIconOff (Ntf_Icons[NotifyEvent],Ico_BLACK,
Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent]);
break;
case Frm_PUT_FORM:
Ico_PutIconLink (Ntf_Icons[NotifyEvent],Ico_BLACK,Action);
Frm_EndForm ();
break;
} }
else
Ico_PutIconOff (Ntf_Icons[NotifyEvent],Ico_BLACK,
Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent]);
HTM_TD_End (); HTM_TD_End ();
/* Write event type */ /* Write event type */
HTM_TD_Begin ("class=\"LT %s_%s\"",ClassBg,The_GetSuffix ()); HTM_TD_Begin ("class=\"LT %s_%s\"",Class.Bg,The_GetSuffix ());
if (PutLink) switch (PutForm)
{ {
Action = Ntf_StartFormGoToAction (NotifyEvent,Hie[Hie_CRS].HieCod,&UsrDat,Cod,&Forums); case Frm_DONT_PUT_FORM:
PutLink = Frm_CheckIfInside (); HTM_SPAN_Begin ("class=\"%s\"",Class.Txt);
HTM_BUTTON_Submit_Begin (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent],
"class=\"LT %s_%s\"",
ClassLink,The_GetSuffix ());
HTM_Txt (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent]); HTM_Txt (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent]);
HTM_BUTTON_End (); HTM_SPAN_End ();
Frm_EndForm (); break;
} case Frm_PUT_FORM:
else Action = Ntf_StartFormGoToAction (NotifyEvent,Hie[Hie_CRS].HieCod,&UsrDat,Cod,&Forums);
{ PutForm = Frm_CheckIfInside () ? Frm_PUT_FORM :
HTM_SPAN_Begin ("class=\"%s\"",ClassTxt); Frm_DONT_PUT_FORM;
HTM_Txt (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent]);
HTM_SPAN_End (); HTM_BUTTON_Submit_Begin (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent],
"class=\"LT %s_%s\"",
Class.Link,The_GetSuffix ());
HTM_Txt (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent]);
HTM_BUTTON_End ();
Frm_EndForm ();
break;
} }
HTM_TD_End (); HTM_TD_End ();
/* Write user (from) */ /* Write user (from) */
HTM_TD_Begin ("class=\"LT %s_%s %s_%s\"", HTM_TD_Begin ("class=\"LT %s_%s %s_%s\"",
ClassAuthor,The_GetSuffix (), Class.Author,The_GetSuffix (),
ClassBg,The_GetSuffix ()); Class.Bg,The_GetSuffix ());
Usr_WriteAuthor (&UsrDat,Cns_ENABLED); Usr_WriteAuthor (&UsrDat,Cns_ENABLED);
HTM_TD_End (); HTM_TD_End ();
/* Write location */ /* Write location */
HTM_TD_Begin ("class=\"LT %s_%s\"", HTM_TD_Begin ("class=\"LT %s_%s\"",Class.Bg,The_GetSuffix ());
ClassBg,The_GetSuffix ());
if (NotifyEvent == Ntf_EVENT_FORUM_POST_COURSE || if (NotifyEvent == Ntf_EVENT_FORUM_POST_COURSE ||
NotifyEvent == Ntf_EVENT_FORUM_REPLY) NotifyEvent == Ntf_EVENT_FORUM_REPLY)
{ {
if (PutLink) if (PutForm == Frm_PUT_FORM)
{ {
Action = Ntf_StartFormGoToAction (NotifyEvent,Hie[Hie_CRS].HieCod,&UsrDat,Cod,&Forums); Action = Ntf_StartFormGoToAction (NotifyEvent,Hie[Hie_CRS].HieCod,&UsrDat,Cod,&Forums);
PutLink = Frm_CheckIfInside (); PutForm = Frm_CheckIfInside () ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
} }
if (PutLink) switch (PutForm)
HTM_BUTTON_Submit_Begin (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent],
"class=\"LT %s_%s\"",
ClassLink,The_GetSuffix ());
else
HTM_SPAN_Begin ("class=\"%s_%s\"",
ClassTxt,The_GetSuffix ());
HTM_TxtF ("%s: %s",Txt_Forum,ForumName);
if (PutLink)
{ {
HTM_BUTTON_End (); case Frm_DONT_PUT_FORM:
Frm_EndForm (); HTM_SPAN_Begin ("class=\"%s_%s\"",
Class.Txt,The_GetSuffix ());
break;
case Frm_PUT_FORM:
HTM_BUTTON_Submit_Begin (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent],
"class=\"LT %s_%s\"",
Class.Link,The_GetSuffix ());
break;
}
HTM_TxtF ("%s: %s",Txt_Forum,ForumName);
switch (PutForm)
{
case Frm_DONT_PUT_FORM:
HTM_SPAN_End ();
break;
case Frm_PUT_FORM:
HTM_BUTTON_End ();
Frm_EndForm ();
break;
} }
else
HTM_SPAN_End ();
} }
else else
{ {
if (PutLink) if (PutForm == Frm_PUT_FORM)
{ {
Action = Ntf_StartFormGoToAction (NotifyEvent,Hie[Hie_CRS].HieCod,&UsrDat,Cod,&Forums); Action = Ntf_StartFormGoToAction (NotifyEvent,Hie[Hie_CRS].HieCod,&UsrDat,Cod,&Forums);
PutLink = Frm_CheckIfInside (); PutForm = Frm_CheckIfInside () ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
} }
if (PutLink) switch (PutForm)
HTM_BUTTON_Submit_Begin (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent], {
"class=\"LT %s_%s\"", case Frm_DONT_PUT_FORM:
ClassLink,The_GetSuffix ()); HTM_SPAN_Begin ("class=\"%s_%s\"",
else Class.Txt,The_GetSuffix ());
HTM_SPAN_Begin ("class=\"%s_%s\"", break;
ClassTxt,The_GetSuffix ()); case Frm_PUT_FORM:
HTM_BUTTON_Submit_Begin (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent],
"class=\"LT %s_%s\"",
Class.Link,The_GetSuffix ());
break;
}
if (Hie[Hie_CRS].HieCod > 0) for (Level = Hie_CRS;
HTM_TxtF ("%s: %s",Txt_Course,Hie[Hie_CRS].ShrtName); Level >= Hie_INS;
else if (Hie[Hie_DEG].HieCod > 0) Level--)
HTM_TxtF ("%s: %s",Txt_Degree,Hie[Hie_DEG].ShrtName); if (Hie[Level].HieCod > 0)
else if (Hie[Hie_CTR].HieCod > 0) {
HTM_TxtF ("%s: %s",Txt_Center,Hie[Hie_CTR].ShrtName); HTM_TxtF ("%s: %s",
else if (Hie[Hie_INS].HieCod > 0) *Hie_TxtLevel[Level],
HTM_TxtF ("%s: %s",Txt_Institution,Hie[Hie_INS].ShrtName); Hie[Level].ShrtName);
else break;
}
if (Level < Hie_INS)
HTM_Hyphen (); HTM_Hyphen ();
if (PutLink) switch (PutForm)
{ {
HTM_BUTTON_End (); case Frm_DONT_PUT_FORM:
Frm_EndForm (); HTM_SPAN_End ();
break;
case Frm_PUT_FORM:
HTM_BUTTON_End ();
Frm_EndForm ();
break;
} }
else
HTM_SPAN_End ();
} }
HTM_TD_End (); HTM_TD_End ();
/* Write date and time */ /* Write date and time */
Msg_WriteMsgDate (DateTimeUTC,ClassTxt,ClassBg); Msg_WriteMsgDate (DateTimeUTC,Class.Txt,Class.Bg);
/* Write status (sent by email / pending to be sent by email) */ /* Write status (sent by email / pending to be sent by email) */
HTM_TD_Begin ("class=\"LT %s_%s %s_%s\"", HTM_TD_Begin ("class=\"LT %s_%s %s_%s\"",
ClassTxt,The_GetSuffix (), Class.Txt,The_GetSuffix (),
ClassBg,The_GetSuffix ()); Class.Bg,The_GetSuffix ());
HTM_Txt (Txt_NOTIFICATION_STATUS[StatusTxt]); HTM_Txt (Txt_NOTIFICATION_STATUS[StatusTxt]);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
/***** Write content of the event *****/ /***** Write content of the event *****/
if (PutLink) if (PutForm == Frm_PUT_FORM)
{ {
ContentStr = NULL; ContentStr = NULL;

View File

@ -1275,13 +1275,14 @@ void Pho_ShowUsrPhoto (const struct Usr_Data *UsrDat,const char *PhotoURL,
bool BrowserTabIs1stTab = (BrowserTab == Act_BRW_1ST_TAB || bool BrowserTabIs1stTab = (BrowserTab == Act_BRW_1ST_TAB ||
BrowserTab == Act_AJAX_NORMAL || BrowserTab == Act_AJAX_NORMAL ||
BrowserTab == Act_AJAX_RFRESH); BrowserTab == Act_AJAX_RFRESH);
bool PutLinkToPublicProfile = !Frm_CheckIfInside () && // Only if not inside another form Frm_PutForm_t PutFormPublicProfile = (!Frm_CheckIfInside () && // Only if not inside another form
BrowserTabIs1stTab; // Only in main browser tab (or AJAX) BrowserTabIs1stTab) ? Frm_PUT_FORM : // Only in main browser tab (or AJAX)
Frm_DONT_PUT_FORM;
char *CaptionStr; char *CaptionStr;
char *ImgStr; char *ImgStr;
/***** Begin form to go to public profile *****/ /***** Begin form to go to public profile *****/
if (PutLinkToPublicProfile) if (PutFormPublicProfile == Frm_PUT_FORM)
{ {
Frm_BeginForm (ActSeeOthPubPrf); Frm_BeginForm (ActSeeOthPubPrf);
Usr_PutParUsrCodEncrypted (UsrDat->EnUsrCod); Usr_PutParUsrCodEncrypted (UsrDat->EnUsrCod);
@ -1299,7 +1300,7 @@ void Pho_ShowUsrPhoto (const struct Usr_Data *UsrDat,const char *PhotoURL,
free (CaptionStr); free (CaptionStr);
/***** End form to go to public profile *****/ /***** End form to go to public profile *****/
if (PutLinkToPublicProfile) if (PutFormPublicProfile == Frm_PUT_FORM)
{ {
HTM_BUTTON_End (); HTM_BUTTON_End ();
Frm_EndForm (); Frm_EndForm ();