Version 22.88: Mar 31, 2023 Code refactoring in resources.

This commit is contained in:
acanas 2023-03-31 09:49:09 +02:00
parent bb2bbe0163
commit 74709e02b3
8 changed files with 121 additions and 212 deletions

View File

@ -1851,7 +1851,7 @@ a:hover img.CENTER_PHOTO_SHOW
.PRG_LNK_DARK {color:#afc4cc; font-size:13pt;}
/***************************** Resource clipboard ****************************/
.SRC_CLIPBOARD
.RSC_CLIPBOARD
{
box-sizing:border-box;
list-style-type:none;

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.87.1 (2023-03-31)"
#define CSS_FILE "swad22.86.css"
#define Log_PLATFORM_VERSION "SWAD 22.88 (2023-03-31)"
#define CSS_FILE "swad22.88.css"
#define JS_FILE "swad22.49.js"
/*
Version 22.88: Mar 31, 2023 Code refactoring in resources. (338538 lines)
Version 22.87.1: Mar 31, 2023 Some messages translated. (338610 lines)
Version 22.87: Mar 30, 2023 Code refactoring in select forms. (338607 lines)
Version 22.86.3: Mar 30, 2023 Code refactoring in forms. (338710 lines)

View File

@ -92,7 +92,6 @@ static bool PrgRsc_ExchangeResources (const struct Prg_ResourceHierarchy *Rsc1,
static void PrgRsc_ShowClipboard (void);
static void PrgRsc_PutIconsClipboard (__attribute__((unused)) void *Args);
static void PrgRsc_ShowClipboardToChangeLink (struct Prg_Item *Item);
/*****************************************************************************/
/****************************** View resources *******************************/
@ -436,8 +435,13 @@ static void PrgRsc_WriteRowEditResource (unsigned NumRsc,unsigned NumResources,
/* Edit link showing clipboard / Show current link */
if (EditLink)
{
/* Show clipboard to change resource link */
PrgRsc_ShowClipboardToChangeLink (Item);
Frm_BeginFormAnchor (ActChgLnkPrgRsc,PrgRsc_RESOURCE_SECTION_ID);
ParCod_PutPar (ParCod_Rsc,Item->Resource.Hierarchy.RscCod);
Rsc_ShowClipboardToChangeLink (&Item->Resource.Link);
Frm_EndForm ();
}
else
/* Show current link */
Rsc_WriteLinkName (&Item->Resource.Link,
@ -494,7 +498,10 @@ static void PrgRsc_WriteRowNewResource (unsigned NumResources,
HTM_BR ();
/* Show clipboard to change resource link */
PrgRsc_ShowClipboardToChangeLink (Item);
Frm_BeginFormAnchor (ActChgLnkPrgRsc,PrgRsc_RESOURCE_SECTION_ID);
ParCod_PutPar (ParCod_Itm,Item->Hierarchy.ItmCod);
Rsc_ShowClipboardToChangeLink (&Item->Resource.Link);
Frm_EndForm ();
}
HTM_TD_End ();
@ -920,64 +927,6 @@ void PrgRsc_EditProgramWithClipboard (void)
/***************** Show clipboard to change resource link ********************/
/*****************************************************************************/
static void PrgRsc_ShowClipboardToChangeLink (struct Prg_Item *Item)
{
MYSQL_RES *mysql_res;
unsigned NumLink;
unsigned NumLinks;
struct Rsc_Link Link;
static const struct Rsc_Link EmptyLink =
{
.Type = Rsc_NONE,
.Cod = -1L,
};
/***** Begin form *****/
Frm_BeginFormAnchor (ActChgLnkPrgRsc,PrgRsc_RESOURCE_SECTION_ID);
if (Item->Resource.Hierarchy.RscCod > 0)
ParCod_PutPar (ParCod_Rsc,Item->Resource.Hierarchy.RscCod);
else
/* No resource selected, so it's a new resource at the end of the item */
ParCod_PutPar (ParCod_Itm,Item->Hierarchy.ItmCod);
/***** Begin list *****/
HTM_UL_Begin ("class=\"SRC_CLIPBOARD\"");
/***** Current link (empty or not) *****/
Rsc_WriteRowClipboard (&Item->Resource.Link,
HTM_DONT_SUBMIT_ON_CLICK,
true); // Checked
/***** Row with empty link to remove the current link *****/
if (Item->Resource.Link.Type != Rsc_NONE)
Rsc_WriteRowClipboard (&EmptyLink,
HTM_SUBMIT_ON_CLICK,
false); // Not checked
/***** Get links in clipboard from database and write them *****/
NumLinks = Rsc_DB_GetClipboard (&mysql_res);
for (NumLink = 1;
NumLink <= NumLinks;
NumLink++)
{
Rsc_GetLinkDataFromRow (mysql_res,&Link);
Rsc_WriteRowClipboard (&Link,
HTM_SUBMIT_ON_CLICK,
false); // Not checked
}
DB_FreeMySQLResult (&mysql_res);
/***** End list *****/
HTM_UL_End ();
/***** End form *****/
Frm_EndForm ();
}
/*****************************************************************************/
/***************** Show clipboard to change resource link ********************/
/*****************************************************************************/
void PrgRsc_ChangeLink (void)
{
struct Prg_Item Item;

View File

@ -118,7 +118,7 @@ void Rsc_ShowClipboard (void)
struct Rsc_Link Link;
/***** Begin list *****/
HTM_UL_Begin ("class=\"SRC_CLIPBOARD\"");
HTM_UL_Begin ("class=\"RSC_CLIPBOARD\"");
/***** Get links in clipboard from database and write them *****/
NumLinks = Rsc_DB_GetClipboard (&mysql_res);
@ -140,6 +140,61 @@ void Rsc_ShowClipboard (void)
HTM_UL_End ();
}
/*****************************************************************************/
/***************** Show clipboard to change resource link ********************/
/*****************************************************************************/
void Rsc_ShowClipboardToChangeLink (const struct Rsc_Link *CurrentLink)
{
MYSQL_RES *mysql_res;
unsigned NumLink;
unsigned NumLinks;
struct Rsc_Link Link;
static const struct Rsc_Link EmptyLink =
{
.Type = Rsc_NONE,
.Cod = -1L,
};
/***** Begin list *****/
HTM_UL_Begin ("class=\"RSC_CLIPBOARD\"");
if (CurrentLink) // Editing an existing element
{
/***** Current link (empty or not) *****/
Rsc_WriteRowClipboard (CurrentLink,
HTM_DONT_SUBMIT_ON_CLICK,
true); // Checked
/***** Row with empty link to remove the current link *****/
if (CurrentLink->Type != Rsc_NONE)
Rsc_WriteRowClipboard (&EmptyLink,
HTM_SUBMIT_ON_CLICK,
false); // Not checked
}
else // Inside form to create a new element
/***** Row with empty link *****/
Rsc_WriteRowClipboard (&EmptyLink,
HTM_DONT_SUBMIT_ON_CLICK,
true); // Checked
/***** Get links in clipboard from database and write them *****/
NumLinks = Rsc_DB_GetClipboard (&mysql_res);
for (NumLink = 1;
NumLink <= NumLinks;
NumLink++)
{
Rsc_GetLinkDataFromRow (mysql_res,&Link);
Rsc_WriteRowClipboard (&Link,
HTM_SUBMIT_ON_CLICK,
false); // Checked
}
DB_FreeMySQLResult (&mysql_res);
/***** End list *****/
HTM_UL_End ();
}
/*****************************************************************************/
/************************ Show one link from clipboard ***********************/
/*****************************************************************************/

View File

@ -74,6 +74,7 @@ struct Rsc_Link
/*****************************************************************************/
void Rsc_ShowClipboard (void);
void Rsc_ShowClipboardToChangeLink (const struct Rsc_Link *CurrentLink);
void Rsc_WriteRowClipboard (const struct Rsc_Link *Link,
HTM_SubmitOnClick_t SubmitOnClick,bool Checked);
void Rsc_WriteLinkName (const struct Rsc_Link *Link,bool PutFormToGo,

View File

@ -100,13 +100,6 @@ static void RubCri_GetAndCheckPars (struct Rub_Rubrics *Rubrics,
static void RubCri_ExchangeCriteria (long RubCod,
unsigned CriIndTop,unsigned CriIndBottom);
static void RubCri_ShowResource (struct Rub_Rubrics *Rubrics,
const struct RubCri_Criterion *Criterion,
bool Editing,const char *Anchor);
static void RubCri_ShowClipboard (struct Rub_Rubrics *Rubrics,
const struct RubCri_Criterion *Criterion,
const char *Anchor);
/*****************************************************************************/
/*************** Put parameter to edit one rubric criterion ******************/
/*****************************************************************************/
@ -158,15 +151,6 @@ static void RubCri_PutFormNewCriterion (struct Rub_Rubrics *Rubrics,
extern const char *Txt_New_criterion;
extern const char *Txt_Create_criterion;
RubCri_ValueRange_t ValueRange;
MYSQL_RES *mysql_res;
unsigned NumLink;
unsigned NumLinks;
struct Rsc_Link Link;
static const struct Rsc_Link EmptyLink =
{
.Type = Rsc_NONE,
.Cod = -1L,
};
/***** Begin form *****/
Frm_BeginForm (ActNewRubCri);
@ -203,32 +187,8 @@ static void RubCri_PutFormNewCriterion (struct Rub_Rubrics *Rubrics,
HTM_TD_End ();
/***** Link *****/
HTM_TD_Begin ("class=\"LT %s\"",The_GetColorRows ());
/***** Begin list *****/
HTM_UL_Begin ("class=\"SRC_CLIPBOARD\"");
/***** Row with empty link *****/
Rsc_WriteRowClipboard (&EmptyLink,
HTM_DONT_SUBMIT_ON_CLICK,
true); // Checked
/***** Get links in clipboard from database and write them *****/
NumLinks = Rsc_DB_GetClipboard (&mysql_res);
for (NumLink = 1;
NumLink <= NumLinks;
NumLink++)
{
Rsc_GetLinkDataFromRow (mysql_res,&Link);
Rsc_WriteRowClipboard (&Link,
HTM_DONT_SUBMIT_ON_CLICK,
false); // Not checked
}
DB_FreeMySQLResult (&mysql_res);
/***** End list *****/
HTM_UL_End ();
HTM_TD_Begin ("class=\"LT\"");
Rsc_ShowClipboardToChangeLink (NULL);
HTM_TD_End ();
/***** Minimum and maximum values of the criterion *****/
@ -682,8 +642,10 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics,
/***** Link to resource *****/
HTM_TD_Begin ("class=\"LT %s\"",The_GetColorRows ());
RubCri_ShowResource (Rubrics,&Criterion,
true,Anchor); // Editing
Frm_BeginFormAnchor (ActChgLnkRubCri,Anchor);
RubCri_PutParsOneCriterion (Rubrics);
Rsc_ShowClipboardToChangeLink (&Criterion.Link);
Frm_EndForm ();
HTM_TD_End ();
/***** Minimum and maximum values of criterion *****/
@ -1109,7 +1071,7 @@ static void RubCri_ExchangeCriteria (long RubCod,
/*****************************************************************************/
/************************** Show criterion resource **************************/
/*****************************************************************************/
/*
static void RubCri_ShowResource (struct Rub_Rubrics *Rubrics,
const struct RubCri_Criterion *Criterion,
bool Editing,const char *Anchor)
@ -1117,71 +1079,12 @@ static void RubCri_ShowResource (struct Rub_Rubrics *Rubrics,
extern const char *Rsc_ResourceTypesIcons[Rsc_NUM_TYPES];
extern const char *Txt_RESOURCE_TYPES[Rsc_NUM_TYPES];
if (Editing)
RubCri_ShowClipboard (Rubrics,Criterion,Anchor);
else
Rsc_WriteLinkName (&Criterion->Link,
true, // Put form to go
Rsc_ResourceTypesIcons[Criterion->Link.Type],
Txt_RESOURCE_TYPES[Criterion->Link.Type]);
}
/*****************************************************************************/
/***************** Show clipboard to change resource link ********************/
/*****************************************************************************/
static void RubCri_ShowClipboard (struct Rub_Rubrics *Rubrics,
const struct RubCri_Criterion *Criterion,
const char *Anchor)
{
MYSQL_RES *mysql_res;
unsigned NumLink;
unsigned NumLinks;
struct Rsc_Link Link;
static const struct Rsc_Link EmptyLink =
{
.Type = Rsc_NONE,
.Cod = -1L,
};
/***** Begin form *****/
Frm_BeginFormAnchor (ActChgLnkRubCri,Anchor);
RubCri_PutParsOneCriterion (Rubrics);
/***** Begin list *****/
HTM_UL_Begin ("class=\"SRC_CLIPBOARD\"");
/***** Current link (empty or not) *****/
Rsc_WriteRowClipboard (&Criterion->Link,
HTM_DONT_SUBMIT_ON_CLICK,
true); // Checked
/***** Row with empty link to remove the current link *****/
if (Criterion->Link.Type != Rsc_NONE)
Rsc_WriteRowClipboard (&EmptyLink,
HTM_SUBMIT_ON_CLICK,
false); // Checked
/***** Get links in clipboard from database and write them *****/
NumLinks = Rsc_DB_GetClipboard (&mysql_res);
for (NumLink = 1;
NumLink <= NumLinks;
NumLink++)
{
Rsc_GetLinkDataFromRow (mysql_res,&Link);
Rsc_WriteRowClipboard (&Link,
HTM_SUBMIT_ON_CLICK,
false); // Checked
}
DB_FreeMySQLResult (&mysql_res);
/***** End list *****/
HTM_UL_End ();
/***** End form *****/
Frm_EndForm ();
}
*/
/*****************************************************************************/
/***************** Show clipboard to change resource link ********************/

View File

@ -14663,7 +14663,7 @@ const char *Txt_folder =
#elif L==5 // fr
"r&eacute;pertoire";
#elif L==6 // gn
"carpeta"; // Okoteve traducción
"carpeta";
#elif L==7 // it
"cartella";
#elif L==8 // pl
@ -14671,7 +14671,7 @@ const char *Txt_folder =
#elif L==9 // pt
"diret&oacute;rio";
#elif L==10 // tr
"folder"; // Çeviri lazim!
"dosya";
#endif
const char *Txt_Folder_X_and_all_its_contents_removed = // Warning: it is very important to include %s in the following sentences
@ -14732,7 +14732,7 @@ const char *Txt_Folders =
#elif L==5 // fr
"R&eacute;pertoires";
#elif L==6 // gn
"Carpetas"; // Okoteve traducción
"Umi carpeta";
#elif L==7 // it
"Cartelle";
#elif L==8 // pl
@ -14740,7 +14740,7 @@ const char *Txt_Folders =
#elif L==9 // pt
"Diret&oacute;rios";
#elif L==10 // tr
"Folders"; // Çeviri lazim!
"Klas&ouml;rler";
#endif
const char *Txt_folders =
@ -14755,7 +14755,7 @@ const char *Txt_folders =
#elif L==5 // fr
"r&eacute;pertoires";
#elif L==6 // gn
"carpetas"; // Okoteve traducción
"umi carpeta";
#elif L==7 // it
"cartelle";
#elif L==8 // pl
@ -14763,7 +14763,7 @@ const char *Txt_folders =
#elif L==9 // pt
"diret&oacute;rios";
#elif L==10 // tr
"folders"; // Çeviri lazim!
"klas&ouml;rler";
#endif
const char *Txt_Folders_copied =
@ -21167,7 +21167,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
#if L==1 // ca
"Cercar"
#elif L==2 // de
"Suchen"
"Suche"
#elif L==3 // en
"Search"
#elif L==4 // es
@ -21179,11 +21179,11 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
#elif L==7 // it
"Cercare"
#elif L==8 // pl
"Szukaj"
"Szuka&cacute;"
#elif L==9 // pt
"Procurar"
#elif L==10 // tr
"Arama"
"Aramak"
#endif
,
// 2: ActSeeTmlGbl
@ -43024,7 +43024,7 @@ const char *Txt_Search =
#if L==1 // ca
"Cercar";
#elif L==2 // de
"Suchen";
"Suche";
#elif L==3 // en
"Search";
#elif L==4 // es
@ -43036,11 +43036,11 @@ const char *Txt_Search =
#elif L==7 // it
"Cercare";
#elif L==8 // pl
"Szukaj";
"Szuka&cacute;";
#elif L==9 // pt
"Procurar";
#elif L==10 // tr
"Arama";
"Aramak";
#endif
const char *Txt_See_full_notice =

View File

@ -384,48 +384,48 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] =
,
[ActReqSndNewPwd] =
#if L==1 // ca
"Request to send a new password" // Necessita traducció
"Sol&middot;licitar enviament de nova contrasenya"
#elif L==2 // de
"Request to send a new password" // Need Übersetzung
"Fordern Sie das Senden eines neuen Passworts an"
#elif L==3 // en
"Request to send a new password"
#elif L==4 // es
"Solicitar env&iacute;o de nueva contrase&ntilde;a"
#elif L==5 // fr
"Request to send a new password" // Besoin de traduction
"Demander l'envoi d'un nouveau mot de passe"
#elif L==6 // gn
"Solicitar env&iacute;o de nueva contrase&ntilde;a" // Okoteve traducción
"Ejerure emondo hag&gbreve;ua pete&itilde; &ntilde;e'&etilde;&ntilde;emi pyahu"
#elif L==7 // it
"Request to send a new password" // Bisogno di traduzione
"Richiedi l'invio di una nuova password"
#elif L==8 // pl
"Request to send a new password" // Potrzebujesz tlumaczenie
"Pro&sacute;ba o przes&lstrok;anie nowego has&lstrok;a"
#elif L==9 // pt
"Request to send a new password" // Precisa de tradução
"Solicitar o envio de uma nova senha"
#elif L==10 // tr
"Request to send a new password" // Çeviri lazim!
"Yeni bir &scedil;ifre g&ouml;nderme iste&gbreve;i"
#endif
,
[ActSndNewPwd] =
#if L==1 // ca
"Send new password" // Necessita traducció
"Enviar nova contrasenya"
#elif L==2 // de
"Send new password" // Need Übersetzung
"Neues Passwort senden"
#elif L==3 // en
"Send new password"
#elif L==4 // es
"Enviar nueva contrase&ntilde;a"
#elif L==5 // fr
"Send new password" // Besoin de traduction
"Envoyer un nouveau mot de passe"
#elif L==6 // gn
"Enviar nueva contrase&ntilde;a" // Okoteve traducción
"Emondo &ntilde;e'&etilde;&ntilde;emi pyahu"
#elif L==7 // it
"Send new password" // Bisogno di traduzione
"Invia nuova password"
#elif L==8 // pl
"Send new password" // Potrzebujesz tlumaczenie
"Wy&sacute;lij nowe has&lstrok;o"
#elif L==9 // pt
"Send new password" // Precisa de tradução
"Enviar nova senha"
#elif L==10 // tr
"Send new password" // Çeviri lazim!
"Yeni &scedil;ifre g&ouml;nder"
#endif
,
[ActLogOut] =
@ -448,30 +448,30 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] =
#elif L==9 // pt
"Fechar sess&atilde;o"
#elif L==10 // tr
"Log out" // Çeviri lazim!
"&Ccedil;&inodot;k&inodot;&scedil; yap"
#endif
,
[ActSch] =
#if L==1 // ca
"Search" // Necessita traducció
"Cercar"
#elif L==2 // de
"Search" // Need Übersetzung
"Suche"
#elif L==3 // en
"Search"
#elif L==4 // es
"Buscar"
#elif L==5 // fr
"Search" // Besoin de traduction
"Chercher"
#elif L==6 // gn
"Buscar" // Okoteve traducción
"Heka"
#elif L==7 // it
"Search" // Bisogno di traduzione
"Cercare"
#elif L==8 // pl
"Search" // Potrzebujesz tlumaczenie
"Szuka&cacute;"
#elif L==9 // pt
"Search" // Precisa de tradução
"Procurar"
#elif L==10 // tr
"Search" // Çeviri lazim!
"Aramak"
#endif
,
[ActRefNewPubGblTL] =