From 48f41a9357479913a2734835a181ebeeb157754c Mon Sep 17 00:00:00 2001 From: acanas Date: Tue, 23 Feb 2021 11:05:18 +0100 Subject: [PATCH] Version 20.35.1: Feb 23, 2021 Code refactoring in timeline related to sharing and faving. --- swad_changelog.h | 4 ++- swad_timeline_favourite.c | 72 +++++++++++++++++++-------------------- swad_timeline_form.c | 26 ++++++++------ swad_timeline_form.h | 19 ++++++----- swad_timeline_share.c | 36 ++++++++++---------- 5 files changed, 83 insertions(+), 74 deletions(-) diff --git a/swad_changelog.h b/swad_changelog.h index 9cdde77d6..607396127 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -553,7 +553,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 20.34.1 (2021-02-23)" +#define Log_PLATFORM_VERSION "SWAD 20.35.1 (2021-02-23)" #define CSS_FILE "swad20.33.9.css" #define JS_FILE "swad20.6.2.js" /* @@ -601,6 +601,8 @@ TODO: DNI de un estudiante sale err TODO: BUG: Cuando un tipo de grupo sólo tiene un grupo, inscribirse es voluntario, el estudiante sólo puede pertenecer a un grupo, y se inscribe en él, debería poder desapuntarse. Ahora no puede. TODO: Salvador Romero Cortés: @acanas opción para editar posts + Version 20.35.1: Feb 23, 2021 Code refactoring in timeline related to sharing and faving. (305021 lines) + Version 20.35: Feb 23, 2021 Code refactoring in timeline related to sharing and faving. (304986 lines) Version 20.34.1: Feb 23, 2021 Code refactoring in timeline related to sharing and faving. (305009 lines) Version 20.34: Feb 23, 2021 Code refactoring in timeline related to sharing and faving. (305011 lines) Version 20.33.11: Feb 23, 2021 Code refactoring in timeline. (305001 lines) diff --git a/swad_timeline_favourite.c b/swad_timeline_favourite.c index d171fc432..27c052dea 100644 --- a/swad_timeline_favourite.c +++ b/swad_timeline_favourite.c @@ -410,28 +410,28 @@ static void TL_Fav_PutFormToFavUnfNote (long NotCod) { extern const char *Txt_TIMELINE_Favourite; extern const char *Txt_TIMELINE_Mark_as_favourite; - bool FavUnf; - static TL_Frm_Action_t Action[2] = + struct TL_Form Form[2] = { - TL_Frm_FAV_NOTE, // Not faved ==> fav - TL_Frm_UNF_NOTE, // Faved ==> unfav + [false] = // I have not faved ==> fav + { + .Action = TL_Frm_FAV_NOTE, + .ParamFormat = "NotCod=%ld", + .ParamCod = NotCod, + .Icon = TL_Fav_ICON_FAV, + .Title = Txt_TIMELINE_Mark_as_favourite, + }, + [true] = // I have faved ==> unfav + { + .Action = TL_Frm_UNF_NOTE, + .ParamFormat = "NotCod=%ld", + .ParamCod = NotCod, + .Icon = TL_Fav_ICON_FAVED, + .Title = Txt_TIMELINE_Favourite, + }, }; - static const char *Icon[2] = - { - TL_Fav_ICON_FAV, // Not faved ==> put icon to fav - TL_Fav_ICON_FAVED, // Faved ==> put icon to unfav - }; - const char *Title[2] = - { - Txt_TIMELINE_Mark_as_favourite, // Not faved ==> put text to fav - Txt_TIMELINE_Favourite, // Faved ==> put text to unfav - }; - - /***** Select whether fav/unfav *****/ - FavUnf = TL_Fav_CheckIfNoteIsFavedByUsr (NotCod,Gbl.Usrs.Me.UsrDat.UsrCod); // I have favourited this note /***** Form and icon to fav/unfav note *****/ - TL_Frm_FormFavSha (Action[FavUnf],"NotCod=%ld",NotCod,Icon[FavUnf],Title[FavUnf]); + TL_Frm_FormFavSha (&Form[TL_Fav_CheckIfNoteIsFavedByUsr (NotCod,Gbl.Usrs.Me.UsrDat.UsrCod)]); } /*****************************************************************************/ @@ -442,28 +442,28 @@ static void TL_Fav_PutFormToFavUnfComm (long PubCod) { extern const char *Txt_TIMELINE_Favourite; extern const char *Txt_TIMELINE_Mark_as_favourite; - bool FavUnf; - static TL_Frm_Action_t Action[2] = + struct TL_Form Form[2] = { - TL_Frm_FAV_COMM, // Not faved ==> fav - TL_Frm_UNF_COMM, // Faved ==> unfav + [false] = // I have not faved ==> fav + { + .Action = TL_Frm_FAV_COMM, + .ParamFormat = "PubCod=%ld", + .ParamCod = PubCod, + .Icon = TL_Fav_ICON_FAV, + .Title = Txt_TIMELINE_Mark_as_favourite, + }, + [true] = // I have faved ==> unfav + { + .Action = TL_Frm_UNF_COMM, + .ParamFormat = "PubCod=%ld", + .ParamCod = PubCod, + .Icon = TL_Fav_ICON_FAVED, + .Title = Txt_TIMELINE_Favourite, + }, }; - static const char *Icon[2] = - { - TL_Fav_ICON_FAV, // Not faved ==> put icon to fav - TL_Fav_ICON_FAVED, // Faved ==> put icon to unfav - }; - const char *Title[2] = - { - Txt_TIMELINE_Mark_as_favourite, // Not faved ==> put text to fav - Txt_TIMELINE_Favourite, // Faved ==> put text to unfav - }; - - /***** Select whether fav/unfav *****/ - FavUnf = TL_Fav_CheckIfNoteIsFavedByUsr (PubCod,Gbl.Usrs.Me.UsrDat.UsrCod); // I have favourited this comment /***** Form and icon to fav/unfav *****/ - TL_Frm_FormFavSha (Action[FavUnf],"PubCod=%ld",PubCod,Icon[FavUnf],Title[FavUnf]); + TL_Frm_FormFavSha (&Form[TL_Fav_CheckIfNoteIsFavedByUsr (PubCod,Gbl.Usrs.Me.UsrDat.UsrCod)]); } /*****************************************************************************/ diff --git a/swad_timeline_form.c b/swad_timeline_form.c index 53a48cc37..f1b1967cf 100644 --- a/swad_timeline_form.c +++ b/swad_timeline_form.c @@ -128,15 +128,23 @@ void TL_Frm_PutFormToSeeAllFaversSharers (TL_Frm_Action_t Action, TL_Usr_HowManyUsrs_t HowManyUsrs) { extern const char *Txt_View_all_USERS; + struct TL_Form Form = + { + .Action = Action, + .ParamFormat = ParamFormat, + .ParamCod = ParamCod, + .Icon = TL_Frm_ICON_ELLIPSIS, + .Title = Txt_View_all_USERS, + }; switch (HowManyUsrs) { case TL_Usr_SHOW_FEW_USRS: - /***** Form and icon to mark note as favourite *****/ - TL_Frm_FormFavSha (Action,ParamFormat,ParamCod, - TL_Frm_ICON_ELLIPSIS,Txt_View_all_USERS); + /***** Form and icon to view all users *****/ + TL_Frm_FormFavSha (&Form); break; case TL_Usr_SHOW_ALL_USRS: + /***** Disabled icon *****/ Ico_PutIconOff (TL_Frm_ICON_ELLIPSIS,Txt_View_all_USERS); break; } @@ -146,15 +154,13 @@ void TL_Frm_PutFormToSeeAllFaversSharers (TL_Frm_Action_t Action, /******* Form to fav/unfav or share/unshare in global or user timeline *******/ /*****************************************************************************/ -void TL_Frm_FormFavSha (TL_Frm_Action_t Action, - const char *ParamFormat,long ParamCod, - const char *Icon,const char *Title) +void TL_Frm_FormFavSha (const struct TL_Form *Form) { char *OnSubmit; char ParamStr[7 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; /***** Create parameter string *****/ - sprintf (ParamStr,ParamFormat,ParamCod); + sprintf (ParamStr,Form->ParamFormat,Form->ParamCod); /* +---------------------------------------------------------------------------+ @@ -178,7 +184,7 @@ void TL_Frm_FormFavSha (TL_Frm_Action_t Action, if (asprintf (&OnSubmit,"updateDivFaversSharers(this," "'act=%ld&ses=%s&%s&OtherUsrCod=%s');" " return false;", // return false is necessary to not submit form - Act_GetActCod (TL_Frm_ActionUsr[Action]), + Act_GetActCod (TL_Frm_ActionUsr[Form->Action]), Gbl.Session.Id, ParamStr, Gbl.Usrs.Other.UsrDat.EnUsrCod) < 0) @@ -190,13 +196,13 @@ void TL_Frm_FormFavSha (TL_Frm_Action_t Action, if (asprintf (&OnSubmit,"updateDivFaversSharers(this," "'act=%ld&ses=%s&%s');" " return false;", // return false is necessary to not submit form - Act_GetActCod (TL_Frm_ActionGbl[Action]), + Act_GetActCod (TL_Frm_ActionGbl[Form->Action]), Gbl.Session.Id, ParamStr) < 0) Lay_NotEnoughMemoryExit (); Frm_StartFormUniqueAnchorOnSubmit (ActUnk,NULL,OnSubmit); } - Ico_PutIconLink (Icon,Title); + Ico_PutIconLink (Form->Icon,Form->Title); Frm_EndForm (); /* Free allocated memory */ diff --git a/swad_timeline_form.h b/swad_timeline_form.h index 366e0f431..144a0294e 100644 --- a/swad_timeline_form.h +++ b/swad_timeline_form.h @@ -27,12 +27,6 @@ /********************************** Headers **********************************/ /*****************************************************************************/ -// #include "swad_form.h" -// #include "swad_media.h" -// #include "swad_notification.h" -// #include "swad_user.h" -// #include "swad_timeline_user.h" - /*****************************************************************************/ /****************************** Public constants *****************************/ /*****************************************************************************/ @@ -70,6 +64,15 @@ typedef enum TL_Frm_SHO_HID_COMM, // Show / hide comments } TL_Frm_Action_t; +struct TL_Form + { + TL_Frm_Action_t Action; + const char *ParamFormat; + long ParamCod; + const char *Icon; + const char *Title; + }; + /*****************************************************************************/ /****************************** Public prototypes ****************************/ /*****************************************************************************/ @@ -79,9 +82,7 @@ void TL_Frm_FormStart (const struct TL_Timeline *Timeline,TL_Frm_Action_t Action void TL_Frm_PutFormToSeeAllFaversSharers (TL_Frm_Action_t Action, const char *ParamFormat,long ParamCod, TL_Usr_HowManyUsrs_t HowManyUsrs); -void TL_Frm_FormFavSha (TL_Frm_Action_t Action, - const char *ParamFormat,long ParamCod, - const char *Icon,const char *Title); +void TL_Frm_FormFavSha (const struct TL_Form *Form); void TL_Frm_FormToShowHiddenComments (long NotCod, char IdComments[Frm_MAX_BYTES_ID + 1], diff --git a/swad_timeline_share.c b/swad_timeline_share.c index 03eb6d163..80ebf6379 100644 --- a/swad_timeline_share.c +++ b/swad_timeline_share.c @@ -254,28 +254,28 @@ static void TL_Sha_PutFormToShaUnsNote (long NotCod) { extern const char *Txt_TIMELINE_Shared; extern const char *Txt_TIMELINE_Share; - bool ShaUns; - static TL_Frm_Action_t Action[2] = + struct TL_Form Form[2] = { - TL_Frm_SHA_NOTE, // Not shared ==> share - TL_Frm_UNS_NOTE, // Shared ==> unshare + [false] = // I have not shared ==> share + { + .Action = TL_Frm_SHA_NOTE, + .ParamFormat = "NotCod=%ld", + .ParamCod = NotCod, + .Icon = TL_Sha_ICON_SHARE, + .Title = Txt_TIMELINE_Share, + }, + [true] = // I have shared ==> unshare + { + .Action = TL_Frm_UNS_NOTE, + .ParamFormat = "NotCod=%ld", + .ParamCod = NotCod, + .Icon = TL_Sha_ICON_SHARED, + .Title = Txt_TIMELINE_Shared, + }, }; - static const char *Icon[2] = - { - TL_Sha_ICON_SHARE, // Not shared ==> put icon to share - TL_Sha_ICON_SHARED, // Shared ==> put icon to unshare - }; - const char *Title[2] = - { - Txt_TIMELINE_Share, // Not shared ==> put text to share - Txt_TIMELINE_Shared, // Shared ==> put text to unshare - }; - - /***** Select whether share/unshare *****/ - ShaUns = TL_Sha_CheckIfNoteIsSharedByUsr (NotCod,Gbl.Usrs.Me.UsrDat.UsrCod); // I have shared this note /***** Form and icon to share/unshare note *****/ - TL_Frm_FormFavSha (Action[ShaUns],"NotCod=%ld",NotCod,Icon[ShaUns],Title[ShaUns]); + TL_Frm_FormFavSha (&Form[TL_Sha_CheckIfNoteIsSharedByUsr (NotCod,Gbl.Usrs.Me.UsrDat.UsrCod)]); } /*****************************************************************************/