Version 21.103: Jun 29, 2022 Text in buttons got from text of actions.

This commit is contained in:
acanas 2022-06-29 18:04:45 +02:00
parent 8ccdd0d671
commit 668d873713
51 changed files with 526 additions and 1435 deletions

View File

@ -57,13 +57,10 @@ extern struct Globals Gbl;
void QR_PutLinkToPrintQRCode (Act_Action_t Action,
void (*FuncParams) (void *Args),void *Args)
{
extern const char *Txt_QR_code;
/***** Link to print QR *****/
Lay_PutContextualLinkOnlyIcon (Action,NULL,
FuncParams,Args,
"qrcode.svg",Ico_BLACK,
Txt_QR_code);
Act_GetActionText (Action));
}
/*****************************************************************************/

View File

@ -571,13 +571,11 @@ void Acc_ShowFormChgOtherUsrAccount (void)
void Acc_PutLinkToRemoveMyAccount (__attribute__((unused)) void *Args)
{
extern const char *Txt_Remove_account;
if (Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Me.UsrDat.UsrCod))
Lay_PutContextualLinkOnlyIcon (ActReqRemMyAcc,NULL,
Acc_PutParamsToRemoveMyAccount,Gbl.Usrs.Me.UsrDat.EnUsrCod,
"trash.svg",Ico_RED,
Txt_Remove_account);
Act_GetActionText (ActReqRemMyAcc));
}
static void Acc_PutParamsToRemoveMyAccount (void *EncryptedUsrCod)
@ -1115,7 +1113,6 @@ static void Acc_RemoveUsrBriefcase (struct UsrData *UsrDat)
void Acc_PutIconToChangeUsrAccount (void)
{
extern const char *Txt_Change_account;
static const Act_Action_t NextAction[Rol_NUM_ROLES] =
{
[Rol_UNK ] = ActFrmAccOth,
@ -1135,11 +1132,11 @@ void Acc_PutIconToChangeUsrAccount (void)
Lay_PutContextualLinkOnlyIcon (ActFrmMyAcc,NULL,
NULL,NULL,
"at.svg",Ico_BLACK,
Txt_Change_account);
Act_GetActionText (ActFrmMyAcc));
else // Not me
if (Usr_ICanEditOtherUsr (Gbl.Record.UsrDat))
Lay_PutContextualLinkOnlyIcon (NextAction[Gbl.Record.UsrDat->Roles.InCurrentCrs],NULL,
Rec_PutParamUsrCodEncrypted,NULL,
"at.svg",Ico_BLACK,
Txt_Change_account);
Act_GetActionText (NextAction[Gbl.Record.UsrDat->Roles.InCurrentCrs]));
}

View File

@ -692,13 +692,9 @@ static void Agd_PutIconsMyPublicAgenda (void *EncryptedUsrCod)
static void Agd_PutIconToCreateNewEvent (void *Agenda)
{
extern const char *Txt_New_event;
/***** Put form to create a new event *****/
((struct Agd_Agenda *) Agenda)->AgdCodToEdit = -1L;
Ico_PutContextualIconToAdd (ActFrmNewEvtMyAgd,NULL,
Agd_PutCurrentParamsMyAgenda,Agenda,
Txt_New_event);
Agd_PutCurrentParamsMyAgenda,Agenda);
}
static void Agd_PutIconToViewEditMyFullAgenda (void *EncryptedUsrCod)
@ -721,17 +717,13 @@ static void Agd_PutIconToShowQR (void)
static void Agd_PutIconsOtherPublicAgenda (void *EncryptedUsrCod)
{
extern const char *Txt_Another_user_s_profile;
extern const char *Txt_View_record_for_this_course;
extern const char *Txt_View_record_and_office_hours;
/***** Button to view user's public profile *****/
if (Pri_ShowingIsAllowed (Gbl.Usrs.Other.UsrDat.BaPrfVisibility,
&Gbl.Usrs.Other.UsrDat))
Lay_PutContextualLinkOnlyIcon (ActSeeOthPubPrf,NULL,
Usr_PutParamOtherUsrCodEncrypted,EncryptedUsrCod,
"user.svg",Ico_BLACK,
Txt_Another_user_s_profile);
Act_GetActionText (ActSeeOthPubPrf));
/***** Button to view user's record card *****/
if (Usr_CheckIfICanViewRecordStd (&Gbl.Usrs.Other.UsrDat))
@ -739,12 +731,12 @@ static void Agd_PutIconsOtherPublicAgenda (void *EncryptedUsrCod)
Lay_PutContextualLinkOnlyIcon (ActSeeRecOneStd,NULL,
Usr_PutParamOtherUsrCodEncrypted,EncryptedUsrCod,
"address-card.svg",Ico_BLACK,
Txt_View_record_for_this_course);
Act_GetActionText (ActSeeRecOneStd));
else if (Usr_CheckIfICanViewRecordTch (&Gbl.Usrs.Other.UsrDat))
Lay_PutContextualLinkOnlyIcon (ActSeeRecOneTch,NULL,
Usr_PutParamOtherUsrCodEncrypted,EncryptedUsrCod,
"address-card.svg",Ico_BLACK,
Txt_View_record_and_office_hours);
Act_GetActionText (ActSeeRecOneTch));
}
/*****************************************************************************/

View File

@ -148,11 +148,7 @@ void Ann_ShowAllAnnouncements (void)
static void Ann_PutIconToAddNewAnnouncement (__attribute__((unused)) void *Args)
{
extern const char *Txt_New_announcement;
Ico_PutContextualIconToAdd (ActWriAnn,NULL,
NULL,NULL,
Txt_New_announcement);
Ico_PutContextualIconToAdd (ActWriAnn,NULL,NULL,NULL);
}
/*****************************************************************************/

View File

@ -301,15 +301,10 @@ static void Asg_PutIconsListAssignments (void *Assignments)
static void Asg_PutIconToCreateNewAsg (void *Assignments)
{
extern const char *Txt_New_assignment;
if (Assignments)
{
/***** Put form to create a new assignment *****/
((struct Asg_Assignments *) Assignments)->AsgCodToEdit = -1L;
Ico_PutContextualIconToAdd (ActFrmNewAsg,NULL,
Asg_PutParams,Assignments,
Txt_New_assignment);
Ico_PutContextualIconToAdd (ActFrmNewAsg,NULL,Asg_PutParams,Assignments);
}
}

View File

@ -377,12 +377,8 @@ static void Att_PutIconsInListOfAttEvents (void *Events)
static void Att_PutIconToCreateNewAttEvent (struct Att_Events *Events)
{
extern const char *Txt_New_event;
/***** Put icon to create a new attendance event *****/
Ico_PutContextualIconToAdd (ActFrmNewAtt,NULL,
Att_PutParamsToCreateNewAttEvent,Events,
Txt_New_event);
Att_PutParamsToCreateNewAttEvent,Events);
}
/*****************************************************************************/

View File

@ -387,12 +387,10 @@ static void Ban_PutIconsEditingBanners (__attribute__((unused)) void *Args)
void Ban_PutIconToViewBanners (void)
{
extern const char *Txt_Banners;
Lay_PutContextualLinkOnlyIcon (ActSeeBan,NULL,
NULL,NULL,
"flag.svg",Ico_BLACK,
Txt_Banners);
Act_GetActionText (ActSeeBan));
}
/*****************************************************************************/

View File

@ -4893,7 +4893,6 @@ static void Brw_IndentDependingOnLevel (unsigned Level)
static void Brw_PutIconToExpandFolder (const char *FileBrowserId,const char *RowId,
bool Hidden)
{
extern const char *Txt_Expand;
char JavaScriptFuncToExpandFolder[256 + Brw_MAX_ROW_ID];
/***** Begin container *****/
@ -4910,7 +4909,8 @@ static void Brw_PutIconToExpandFolder (const char *FileBrowserId,const char *Row
FileBrowserId,
JavaScriptFuncToExpandFolder); // JavaScript function to unhide rows
Brw_PutImplicitParamsFileBrowser (&Gbl.FileBrowser.FilFolLnk);
Ico_PutIconLink ("caret-right.svg",Ico_BLACK,Txt_Expand);
Ico_PutIconLink ("caret-right.svg",Ico_BLACK,
Act_GetActionText (Brw_ActExpandFolder[Gbl.FileBrowser.Type]));
Frm_EndForm ();
/***** End container *****/
@ -4924,7 +4924,6 @@ static void Brw_PutIconToExpandFolder (const char *FileBrowserId,const char *Row
static void Brw_PutIconToContractFolder (const char *FileBrowserId,const char *RowId,
bool Hidden)
{
extern const char *Txt_Contract;
char JavaScriptFuncToContractFolder[256 + Brw_MAX_ROW_ID];
/***** Begin container *****/
@ -4944,7 +4943,8 @@ static void Brw_PutIconToContractFolder (const char *FileBrowserId,const char *R
FileBrowserId,
JavaScriptFuncToContractFolder); // JavaScript function to hide rows
Brw_PutImplicitParamsFileBrowser (&Gbl.FileBrowser.FilFolLnk);
Ico_PutIconLink ("caret-down.svg",Ico_BLACK,Txt_Contract);
Ico_PutIconLink ("caret-down.svg",Ico_BLACK,
Act_GetActionText (Brw_ActContractFolder[Gbl.FileBrowser.Type]));
Frm_EndForm ();
/***** End container *****/

View File

@ -291,12 +291,10 @@ static void Bld_PutIconsEditingBuildings (__attribute__((unused)) void *Args)
void Bld_PutIconToViewBuildings (void)
{
extern const char *Txt_Buildings;
Lay_PutContextualLinkOnlyIcon (ActSeeBld,NULL,
NULL,NULL,
"building.svg",Ico_BLACK,
Txt_Buildings);
Act_GetActionText (ActSeeBld));
}
/*****************************************************************************/

View File

@ -322,12 +322,10 @@ static void Cal_PutIconsCalendar (__attribute__((unused)) void *Args)
void Cal_PutIconToSeeCalendar (__attribute__((unused)) void *Args)
{
extern const char *Txt_Calendar;
Lay_PutContextualLinkOnlyIcon (ActSeeCal,NULL,
NULL,NULL,
"calendar.svg",Ico_BLACK,
Txt_Calendar);
Act_GetActionText (ActSeeCal));
}
/*****************************************************************************/

View File

@ -695,11 +695,7 @@ static void Cfe_ListCallsForExams (struct Cfe_CallsForExams *CallsForExams,
static void Cfe_PutIconToCreateNewCallForExam (__attribute__((unused)) void *Args)
{
extern const char *Txt_New_call_FOR_EXAM;
Ico_PutContextualIconToAdd (ActEdiCfe,NULL,
NULL,NULL,
Txt_New_call_FOR_EXAM);
Ico_PutContextualIconToAdd (ActEdiCfe,NULL,NULL,NULL);
}
/*****************************************************************************/

View File

@ -501,12 +501,10 @@ static void Ctr_PutIconsEditingCenters (__attribute__((unused)) void *Args)
void Ctr_PutIconToViewCenters (void)
{
extern const char *Txt_Centers;
Lay_PutContextualLinkOnlyIcon (ActSeeCtr,NULL,
NULL,NULL,
"building.svg",Ico_BLACK,
Txt_Centers);
Act_GetActionText (ActSeeCtr));
}
/*****************************************************************************/
@ -1923,15 +1921,13 @@ static void Ctr_EditingCenterDestructor (void)
static void Ctr_FormToGoToMap (struct Ctr_Center *Ctr)
{
extern const char *Txt_Map;
if (Ctr_GetIfMapIsAvailable (Ctr))
{
Ctr_EditingCtr = Ctr; // Used to pass parameter with the code of the center
Lay_PutContextualLinkOnlyIcon (ActSeeCtrInf,NULL,
Ctr_PutParamGoToCtr,&Ctr_EditingCtr->CtrCod,
"map-marker-alt.svg",Ico_BLACK,
Txt_Map);
Act_GetActionText (ActSeeCtrInf));
}
}

View File

@ -276,8 +276,6 @@ static void CtrCfg_PutIconsCtrConfig (__attribute__((unused)) void *Args)
static void CtrCfg_PutIconToChangePhoto (void)
{
extern const char *Txt_Change_photo;
extern const char *Txt_Upload_photo;
char PathPhoto[PATH_MAX + 1];
bool PhotoExists;
@ -291,8 +289,7 @@ static void CtrCfg_PutIconToChangePhoto (void)
Lay_PutContextualLinkOnlyIcon (ActReqCtrPho,NULL,
NULL,NULL,
"camera.svg",Ico_BLACK,
PhotoExists ? Txt_Change_photo :
Txt_Upload_photo);
Act_GetActionText (ActReqCtrPho));
}
/*****************************************************************************/

View File

@ -606,10 +606,12 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
TODO: Attach pdf files in multimedia.
*/
#define Log_PLATFORM_VERSION "SWAD 21.102.1 (2022-06-28)"
#define Log_PLATFORM_VERSION "SWAD 21.103 (2022-06-29)"
#define CSS_FILE "swad21.100.css"
#define JS_FILE "swad21.100.js"
/*
Version 21.103: Jun 29, 2022 Text in buttons got from text of actions.
Preparation for Turkish translation. (328476 lines)
Version 21.102.1: Jun 28, 2022 Text in buttons got from text of actions.
Preparation for Turkish translation. (329296 lines)
Version 21.102: Jun 28, 2022 Subtitles in menus is got from text of actions. (329462 lines)

View File

@ -134,12 +134,10 @@ void Con_ShowConnectedUsrs (void)
static void Con_PutIconToUpdateConnected (__attribute__((unused)) void *Args)
{
extern const char *Txt_Update;
Lay_PutContextualLinkOnlyIcon (ActLstCon,NULL,
Con_PutParamScope,NULL,
"recycle.svg",Ico_BLACK,
Txt_Update);
Act_GetActionText (ActLstCon));
}
static void Con_PutParamScope (__attribute__((unused)) void *Args)

View File

@ -728,12 +728,10 @@ static void Cty_PutIconsEditingCountries (__attribute__((unused)) void *Args)
static void Cty_PutIconToViewCountries (void)
{
extern const char *Txt_Countries;
Lay_PutContextualLinkOnlyIcon (ActSeeCty,NULL,
NULL,NULL,
"globe-americas.svg",Ico_BLACK,
Txt_Countries);
Act_GetActionText (ActSeeCty));
}
/*****************************************************************************/
@ -1901,15 +1899,13 @@ static void Cty_EditingCountryDestructor (void)
static void Cty_FormToGoToMap (struct Cty_Countr *Cty)
{
extern const char *Txt_Map;
if (Cty_DB_CheckIfMapIsAvailable (Cty->CtyCod))
{
Cty_EditingCty = Cty; // Used to pass parameter with the code of the country
Lay_PutContextualLinkOnlyIcon (ActSeeCtyInf,NULL,
Cty_PutParamGoToCty,&Cty_EditingCty->CtyCod,
"map-marker-alt.svg",Ico_BLACK,
Txt_Map);
Act_GetActionText (ActSeeCtyInf));
}
}

View File

@ -1097,12 +1097,10 @@ static void Crs_PutIconsEditingCourses (__attribute__((unused)) void *Args)
static void Crs_PutIconToViewCourses (void)
{
extern const char *Txt_Courses;
Lay_PutContextualLinkOnlyIcon (ActSeeCrs,NULL,
NULL,NULL,
"chalkboard-teacher.svg",Ico_BLACK,
Txt_Courses);
Act_GetActionText (ActSeeCrs));
}
/*****************************************************************************/
@ -2191,13 +2189,10 @@ void Crs_ReqSelectOneOfMyCourses (void)
static void Crs_PutIconToSearchCourses (__attribute__((unused)) void *Args)
{
extern const char *Txt_Search_courses;
/***** Put form to search / select courses *****/
Lay_PutContextualLinkOnlyIcon (ActReqSch,NULL,
Sch_PutLinkToSearchCoursesParams,NULL,
"search.svg",Ico_BLACK,
Txt_Search_courses);
Act_GetActionText (ActReqSch));
}
/*****************************************************************************/
@ -2229,14 +2224,11 @@ void Crs_PutIconToSelectMyCoursesInBreadcrumb (void)
void Crs_PutIconToSelectMyCourses (__attribute__((unused)) void *Args)
{
extern const char *Txt_My_courses;
if (Gbl.Usrs.Me.Logged) // I am logged
/***** Put icon with link *****/
Lay_PutContextualLinkOnlyIcon (ActMyCrs,NULL,
NULL,NULL,
"sitemap.svg",Ico_BLACK,
Txt_My_courses);
Act_GetActionText (ActMyCrs));
}
/*****************************************************************************/

View File

@ -960,12 +960,10 @@ static void Deg_PutIconsEditingDegrees (__attribute__((unused)) void *Args)
void Deg_PutIconToViewDegrees (void)
{
extern const char *Txt_Degrees;
Lay_PutContextualLinkOnlyIcon (ActSeeDeg,NULL,
NULL,NULL,
"graduation-cap.svg",Ico_BLACK,
Txt_Degrees);
Act_GetActionText (ActSeeDeg));
}
/*****************************************************************************/

View File

@ -301,12 +301,10 @@ static void DegTyp_PutIconsEditingDegreeTypes (__attribute__((unused)) void *Arg
void DegTyp_PutIconToViewDegreeTypes (void)
{
extern const char *Txt_Types_of_degree;
Lay_PutContextualLinkOnlyIcon (ActSeeDegTyp,NULL,
NULL,NULL,
"sitemap.svg",Ico_BLACK,
Txt_Types_of_degree);
Act_GetActionText (ActSeeDegTyp));
}
/*****************************************************************************/

View File

@ -365,11 +365,8 @@ static void Exa_PutIconsListExams (void *Exams)
static void Exa_PutIconToCreateNewExam (struct Exa_Exams *Exams)
{
extern const char *Txt_New_exam;
Ico_PutContextualIconToAdd (ActFrmNewExa,NULL,
Exa_PutParamsToCreateNewExam,Exams,
Txt_New_exam);
Exa_PutParamsToCreateNewExam,Exams);
}
/*****************************************************************************/

View File

@ -253,12 +253,8 @@ static void ExaSes_PutIconsInListOfSessions (void *Exams)
static void ExaSes_PutIconToCreateNewSession (struct Exa_Exams *Exams)
{
extern const char *Txt_New_session;
/***** Put form to create a new exam session *****/
Ico_PutContextualIconToAdd (ActReqNewExaSes,ExaSes_NEW_SESSION_SECTION_ID,
Exa_PutParams,Exams,
Txt_New_session);
Exa_PutParams,Exams);
}
/*****************************************************************************/
@ -641,8 +637,6 @@ static void ExaSes_ListOneOrMoreSessionsResult (struct Exa_Exams *Exams,
static void ExaSes_ListOneOrMoreSessionsResultStd (struct Exa_Exams *Exams,
const struct ExaSes_Session *Session)
{
extern const char *Txt_Results;
/***** Is exam session result visible or hidden? *****/
if (Session->ShowUsrResults)
{
@ -652,7 +646,7 @@ static void ExaSes_ListOneOrMoreSessionsResultStd (struct Exa_Exams *Exams,
Lay_PutContextualLinkOnlyIcon (ActSeeMyExaResSes,ExaRes_RESULTS_BOX_ID,
ExaSes_PutParamsEdit,Exams,
"trophy.svg",Ico_BLACK,
Txt_Results);
Act_GetActionText (ActSeeMyExaResSes));
}
else
/* Result is forbidden to me */
@ -664,7 +658,6 @@ static void ExaSes_ListOneOrMoreSessionsResultTch (struct Exa_Exams *Exams,
{
extern const char *Txt_Visible_results;
extern const char *Txt_Hidden_results;
extern const char *Txt_Results;
Exams->ExaCod = Session->ExaCod;
Exams->SesCod = Session->SesCod;
@ -674,7 +667,7 @@ static void ExaSes_ListOneOrMoreSessionsResultTch (struct Exa_Exams *Exams,
Lay_PutContextualLinkOnlyIcon (ActSeeUsrExaResSes,ExaRes_RESULTS_BOX_ID,
ExaSes_PutParamsEdit,Exams,
"trophy.svg",Ico_BLACK,
Txt_Results);
Act_GetActionText (ActSeeUsrExaResSes));
/***** Check if visibility of session results can be changed *****/
if (ExaSes_CheckIfVisibilityOfResultsCanBeChanged (Session))
@ -684,12 +677,12 @@ static void ExaSes_ListOneOrMoreSessionsResultTch (struct Exa_Exams *Exams,
Lay_PutContextualLinkOnlyIcon (ActChgVisExaRes,NULL,
ExaSes_PutParamsEdit,Exams,
"eye.svg",Ico_GREEN,
Txt_Visible_results);
Act_GetActionText (ActChgVisExaRes));
else
Lay_PutContextualLinkOnlyIcon (ActChgVisExaRes,NULL,
ExaSes_PutParamsEdit,Exams,
"eye-slash.svg",Ico_RED,
Txt_Hidden_results);
Act_GetActionText (ActChgVisExaRes));
}
else // Don't put form
{

View File

@ -711,15 +711,12 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
bool ICanEditSets)
{
extern const char *Txt_Sets_of_questions;
extern const char *Txt_Move_up_X;
extern const char *Txt_Move_down_X;
extern const char *Txt_Movement_not_allowed;
unsigned NumSet;
struct ExaSet_Set Set;
MYSQL_ROW row;
char *Anchor;
char StrSetInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
char *Title;
/***** Trivial check *****/
if (!NumSets)
@ -783,30 +780,20 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
/* Put icon to move up the question */
if (ICanEditSets && Set.SetInd > 1)
{
if (asprintf (&Title,Txt_Move_up_X,StrSetInd) < 0)
Err_NotEnoughMemoryExit ();
Lay_PutContextualLinkOnlyIcon (ActUp_ExaSet,Anchor,
ExaSet_PutParamsOneSet,Exams,
"arrow-up.svg",Ico_BLACK,
Title);
free (Title);
}
Act_GetActionText (ActUp_ExaSet));
else
Ico_PutIconOff ("arrow-up.svg",Ico_BLACK,
Txt_Movement_not_allowed);
/* Put icon to move down the set */
if (ICanEditSets && Set.SetInd < MaxSetInd)
{
if (asprintf (&Title,Txt_Move_down_X,StrSetInd) < 0)
Err_NotEnoughMemoryExit ();
Lay_PutContextualLinkOnlyIcon (ActDwnExaSet,Anchor,
ExaSet_PutParamsOneSet,Exams,
"arrow-down.svg",Ico_BLACK,
Title);
free (Title);
}
Act_GetActionText (ActDwnExaSet));
else
Ico_PutIconOff ("arrow-down.svg",Ico_BLACK,
Txt_Movement_not_allowed);
@ -942,8 +929,6 @@ static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams,
MYSQL_RES *mysql_res,
bool ICanEditQuestions)
{
extern const char *Txt_Invalid_question;
extern const char *Txt_Valid_question;
extern const char *Txt_Questions;
extern const char *Txt_No_INDEX;
extern const char *Txt_Question;
@ -955,11 +940,10 @@ static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams,
Act_Action_t NextAction;
const char *Icon;
Ico_Color_t Color;
const char **Title;
} ValInv[Qst_NUM_VALIDITIES] =
{
[Qst_INVALID_QUESTION] = {ActValSetQst,"times.svg",Ico_RED ,&Txt_Invalid_question}, // Validate question (set it as valid question)
[Qst_VALID_QUESTION ] = {ActInvSetQst,"check.svg",Ico_GREEN,&Txt_Valid_question }, // Invalidated question (set it as canceled question)
[Qst_INVALID_QUESTION] = {ActValSetQst,"times.svg",Ico_RED }, // Validate question (set it as valid question)
[Qst_VALID_QUESTION ] = {ActInvSetQst,"check.svg",Ico_GREEN}, // Invalidated question (set it as canceled question)
};
/***** Begin table *****/
@ -1004,11 +988,11 @@ static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams,
Ico_PutIconRemovalNotAllowed ();
/* Put icon to cancel the question */
Lay_PutContextualLinkOnlyIcon ( ValInv[Question.Validity].NextAction,Anchor,
ExaSet_PutParamsOneQst,Exams,
ValInv[Question.Validity].Icon,
ValInv[Question.Validity].Color,
*ValInv[Question.Validity].Title);
Lay_PutContextualLinkOnlyIcon (ValInv[Question.Validity].NextAction,Anchor,
ExaSet_PutParamsOneQst,Exams,
ValInv[Question.Validity].Icon,
ValInv[Question.Validity].Color,
Act_GetActionText (ValInv[Question.Validity].NextAction));
HTM_TD_End ();
@ -1825,12 +1809,8 @@ static void ExaSet_ExchangeSets (long ExaCod,
static void ExaSet_PutIconToAddNewQuestions (void *Exams)
{
extern const char *Txt_Add_questions;
/***** Put form to create a new question *****/
Ico_PutContextualIconToAdd (ActReqAddQstExaSet,NULL,
ExaSet_PutParamsOneSet,Exams,
Txt_Add_questions);
ExaSet_PutParamsOneSet,Exams);
}
/*****************************************************************************/

View File

@ -138,7 +138,6 @@ static void Fig_ReqShowFigure (Fig_FigureType_t SelectedFigureType)
void Fig_PutIconToShowFigure (Fig_FigureType_t FigureType)
{
extern const char *Txt_Show_statistic;
struct Fig_Figures Figures;
/***** Set default scope (used only if Gbl.Scope.Current is unknown) *****/
@ -151,7 +150,7 @@ void Fig_PutIconToShowFigure (Fig_FigureType_t FigureType)
Lay_PutContextualLinkOnlyIcon (ActSeeUseGbl,NULL,
Fig_PutHiddenParamFigures,&Figures,
"chart-pie.svg",Ico_BLACK,
Txt_Show_statistic);
Act_GetActionText (ActSeeUseGbl));
}
/*****************************************************************************/

View File

@ -265,12 +265,10 @@ static void Fol_PutIconsWhoToFollow (__attribute__((unused)) void *Args)
static void Fol_PutIconToUpdateWhoToFollow (void)
{
extern const char *Txt_Update;
Lay_PutContextualLinkOnlyIcon (ActSeeSocPrf,NULL,
NULL,NULL,
"recycle.svg",Ico_BLACK,
Txt_Update);
Act_GetActionText (ActSeeSocPrf));
}
/*****************************************************************************/

View File

@ -833,13 +833,10 @@ static void For_ShowPostsOfAThread (struct For_Forums *Forums,
static void For_PutIconNewPost (void *Forums)
{
extern const char *Txt_New_post;
if (Forums)
Ico_PutContextualIconToAdd (For_ActionsSeePstFor[((struct For_Forums *) Forums)->Forum.Type],
For_NEW_POST_SECTION_ID,
For_PutAllHiddenParamsNewPost,Forums,
Txt_New_post);
For_PutAllHiddenParamsNewPost,Forums);
}
static void For_PutAllHiddenParamsNewPost (void *Forums)
@ -2134,13 +2131,10 @@ static void For_ShowForumThreadsHighlightingOneThread (struct For_Forums *Forums
static void For_PutIconNewThread (void *Forums)
{
extern const char *Txt_New_thread;
if (Forums)
Ico_PutContextualIconToAdd (For_ActionsSeeFor[((struct For_Forums *) Forums)->Forum.Type],
For_NEW_THREAD_SECTION_ID,
For_PutAllHiddenParamsNewThread,Forums,
Txt_New_thread);
For_PutAllHiddenParamsNewThread,Forums);
}
static void For_PutAllHiddenParamsNewThread (void *Forums)

View File

@ -404,11 +404,8 @@ static void Gam_PutIconsListGames (void *Games)
static void Gam_PutIconToCreateNewGame (struct Gam_Games *Games)
{
extern const char *Txt_New_game;
Ico_PutContextualIconToAdd (ActFrmNewGam,NULL,
Gam_PutParamsToCreateNewGame,Games,
Txt_New_game);
Gam_PutParamsToCreateNewGame,Games);
}
/*****************************************************************************/
@ -1688,8 +1685,6 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games,
extern const char *Txt_Code;
extern const char *Txt_Tags;
extern const char *Txt_Question;
extern const char *Txt_Move_up_X;
extern const char *Txt_Move_down_X;
extern const char *Txt_Movement_not_allowed;
unsigned NumQst;
MYSQL_ROW row;
@ -1699,7 +1694,6 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games,
char StrQstInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
bool QuestionExists;
char *Anchor = NULL;
char *Title;
/***** Trivial check *****/
if (!NumQsts)
@ -1762,30 +1756,20 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games,
/* Put icon to move up the question */
if (ICanEditQuestions && QstInd > 1)
{
if (asprintf (&Title,Txt_Move_up_X,StrQstInd) < 0)
Err_NotEnoughMemoryExit ();
Lay_PutContextualLinkOnlyIcon (ActUp_GamQst,Anchor,
Gam_PutParamsOneQst,Games,
"arrow-up.svg",Ico_BLACK,
Title);
free (Title);
}
Act_GetActionText (ActUp_GamQst));
else
Ico_PutIconOff ("arrow-up.svg",Ico_BLACK,
Txt_Movement_not_allowed);
/* Put icon to move down the question */
if (ICanEditQuestions && QstInd < MaxQstInd)
{
if (asprintf (&Title,Txt_Move_down_X,StrQstInd) < 0)
Err_NotEnoughMemoryExit ();
Lay_PutContextualLinkOnlyIcon (ActDwnGamQst,Anchor,
Gam_PutParamsOneQst,Games,
"arrow-down.svg",Ico_BLACK,
Title);
free (Title);
}
Act_GetActionText (ActDwnGamQst));
else
Ico_PutIconOff ("arrow-down.svg",Ico_BLACK,
Txt_Movement_not_allowed);
@ -1821,12 +1805,7 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games,
static void Gam_PutIconToAddNewQuestions (void *Games)
{
extern const char *Txt_Add_questions;
/***** Put form to create a new question *****/
Ico_PutContextualIconToAdd (ActAddOneGamQst,NULL,
Gam_PutParams,Games,
Txt_Add_questions);
Ico_PutContextualIconToAdd (ActAddOneGamQst,NULL,Gam_PutParams,Games);
}
/*****************************************************************************/

View File

@ -341,12 +341,7 @@ static void Grp_PutIconsEditingGroups (__attribute__((unused)) void *Args)
static void Grp_PutIconToCreateNewGroup (void)
{
extern const char *Txt_New_group;
/***** Put form to create a new group *****/
Ico_PutContextualIconToAdd (ActReqEdiGrp,Grp_NEW_GROUP_SECTION_ID,
NULL,NULL,
Txt_New_group);
Ico_PutContextualIconToAdd (ActReqEdiGrp,Grp_NEW_GROUP_SECTION_ID,NULL,NULL);
}
/*****************************************************************************/
@ -1370,12 +1365,8 @@ static void Grp_PutIconToViewGroups (void)
static void Grp_PutIconToCreateNewGroupType (void)
{
extern const char *Txt_New_type_of_group;
/***** Put form to create a new type of group *****/
Ico_PutContextualIconToAdd (ActReqEdiGrp,Grp_NEW_GROUP_TYPE_SECTION_ID,
NULL,NULL,
Txt_New_type_of_group);
NULL,NULL);
}
/*****************************************************************************/

View File

@ -250,12 +250,10 @@ static void Hld_PutIconsSeeHolidays (__attribute__((unused)) void *Args)
void Hld_PutIconToSeeHlds (void)
{
extern const char *Txt_Holidays;
Lay_PutContextualLinkOnlyIcon (ActSeeHld,NULL,
NULL,NULL,
"calendar-day.svg",Ico_BLACK,
Txt_Holidays);
Act_GetActionText (ActSeeHld));
}
/*****************************************************************************/

View File

@ -232,13 +232,12 @@ Ico_IconSet_t Ico_GetIconSetFromStr (const char *Str)
/*****************************************************************************/
void Ico_PutContextualIconToAdd (Act_Action_t NextAction,const char *Anchor,
void (*FuncParams) (void *Args),void *Args,
const char *Txt)
void (*FuncParams) (void *Args),void *Args)
{
Lay_PutContextualLinkOnlyIcon (NextAction,Anchor,
FuncParams,Args,
"plus.svg",Ico_BLACK,
Txt);
Act_GetActionText (NextAction));
}
void Ico_PutContextualIconToRemove (Act_Action_t NextAction,const char *Anchor,
@ -346,34 +345,28 @@ void Ico_PutContextualIconToCreateInFolder (Act_Action_t NextAction,
void Ico_PutContextualIconToShowResults (Act_Action_t NextAction,const char *Anchor,
void (*FuncParams) (void *Args),void *Args)
{
extern const char *Txt_Results;
Lay_PutContextualLinkOnlyIcon (NextAction,Anchor,
FuncParams,Args,
"trophy.svg",Ico_BLACK,
Txt_Results);
Act_GetActionText (NextAction));
}
void Ico_PutContextualIconToShowAttendanceList (Act_Action_t NextAction,
void (*FuncParams) (void *Args),void *Args)
{
extern const char *Txt_Attendance_list;
Lay_PutContextualLinkOnlyIcon (NextAction,NULL,
FuncParams,Args,
"tasks.svg",Ico_BLACK,
Txt_Attendance_list);
Act_GetActionText (NextAction));
}
void Ico_PutContextualIconToZIP (Act_Action_t NextAction,
void (*FuncParams) (void *Args),void *Args)
{
extern const char *Txt_Create_ZIP_file;
Lay_PutContextualLinkOnlyIcon (NextAction,NULL,
FuncParams,Args,
"download.svg",Ico_BLACK,
Txt_Create_ZIP_file);
Act_GetActionText (NextAction));
}
/*****************************************************************************/

View File

@ -65,8 +65,7 @@ Ico_IconSet_t Ico_GetParamIconSet (void);
Ico_IconSet_t Ico_GetIconSetFromStr (const char *Str);
void Ico_PutContextualIconToAdd (Act_Action_t NextAction,const char *Anchor,
void (*FuncParams) (void *Args),void *Args,
const char *Txt);
void (*FuncParams) (void *Args),void *Args);
void Ico_PutContextualIconToRemove (Act_Action_t NextAction,const char *Anchor,
void (*FuncParams) (void *Args),void *Args);
void Ico_PutContextualIconToEdit (Act_Action_t NextAction,const char *Anchor,

View File

@ -594,12 +594,10 @@ static void Ins_PutIconsEditingInstitutions (__attribute__((unused)) void *Args)
static void Ins_PutIconToViewInstitutions (void)
{
extern const char *Txt_Institutions;
Lay_PutContextualLinkOnlyIcon (ActSeeIns,NULL,
NULL,NULL,
"university.svg",Ico_BLACK,
Txt_Institutions);
Act_GetActionText (ActSeeIns));
}
/*****************************************************************************/
@ -1896,15 +1894,13 @@ static void Ins_EditingInstitutionDestructor (void)
static void Ins_FormToGoToMap (struct Ins_Instit *Ins)
{
extern const char *Txt_Map;
if (Ctr_DB_CheckIfMapIsAvailableInIns (Ins->InsCod))
{
Ins_EditingIns = Ins; // Used to pass parameter with the code of the institution
Lay_PutContextualLinkOnlyIcon (ActSeeInsInf,NULL,
Ins_PutParamGoToIns,&Ins_EditingIns->InsCod,
"map-marker-alt.svg",Ico_BLACK,
Txt_Map);
Act_GetActionText (ActSeeInsInf));
}
}

View File

@ -268,12 +268,10 @@ static void Lnk_PutIconsEditingLinks (__attribute__((unused)) void *Args)
void Lnk_PutIconToViewLinks (void)
{
extern const char *Txt_Links;
Lay_PutContextualLinkOnlyIcon (ActSeeLnk,NULL,
NULL,NULL,
"link.svg",Ico_BLACK,
Txt_Links);
Act_GetActionText (ActSeeLnk));
}
/*****************************************************************************/

View File

@ -201,50 +201,21 @@ void Lgo_DrawLogo (HieLvl_Level_t Scope,long Cod,const char *AltText,
void Lgo_PutIconToChangeLogo (HieLvl_Level_t Scope)
{
extern const char *Txt_Change_logo;
extern const char *Txt_Upload_logo;
Act_Action_t Action;
long Cod;
const char *Folder;
char PathLogo[PATH_MAX + 1];
bool LogoExists;
/***** Set variables depending on scope *****/
switch (Scope)
static Act_Action_t Action[HieLvl_NUM_LEVELS] =
{
case HieLvl_INS:
Action = ActReqInsLog;
Cod = Gbl.Hierarchy.Ins.InsCod;
Folder = Cfg_FOLDER_INS;
break;
case HieLvl_CTR:
Action = ActReqCtrLog;
Cod = Gbl.Hierarchy.Ctr.CtrCod;
Folder = Cfg_FOLDER_CTR;
break;
case HieLvl_DEG:
Action = ActReqDegLog;
Cod = Gbl.Hierarchy.Deg.DegCod;
Folder = Cfg_FOLDER_DEG;
break;
default:
return; // Nothing to do
}
[HieLvl_UNK] = ActUnk, // Unknown
[HieLvl_SYS] = ActUnk, // System
[HieLvl_CTY] = ActUnk, // Country
[HieLvl_INS] = ActReqInsLog, // Institution
[HieLvl_CTR] = ActReqCtrLog, // Center
[HieLvl_DEG] = ActReqDegLog, // Degree
[HieLvl_CRS] = ActUnk, // Course
};
/***** Check if logo exists *****/
snprintf (PathLogo,sizeof (PathLogo),"%s/%s/%02u/%u/logo/%u.png",
Cfg_PATH_SWAD_PUBLIC,Folder,
(unsigned) (Cod % 100),
(unsigned) Cod,
(unsigned) Cod);
LogoExists = Fil_CheckIfPathExists (PathLogo);
/***** Link for changing / uploading the logo *****/
Lay_PutContextualLinkOnlyIcon (Action,NULL,
Lay_PutContextualLinkOnlyIcon (Action[Scope],NULL,
NULL,NULL,
"shield-alt.svg",Ico_BLACK,
LogoExists ? Txt_Change_logo :
Txt_Upload_logo);
Act_GetActionText (Action[Scope]));
}
/*****************************************************************************/
@ -344,13 +315,10 @@ static void Lgo_PutIconToRemoveLogoDeg (__attribute__((unused)) void *Args)
static void Lgo_PutIconToRemoveLogo (Act_Action_t ActionRem)
{
extern const char *Txt_Remove_logo;
/***** Link to request the removal of the logo *****/
Lay_PutContextualLinkOnlyIcon (ActionRem,NULL,
NULL,NULL,
"trash.svg",Ico_RED,
Txt_Remove_logo);
Act_GetActionText (ActionRem));
}
/*****************************************************************************/

View File

@ -362,12 +362,8 @@ static void Mch_PutIconsInListOfMatches (void *Games)
static void Mch_PutIconToCreateNewMatch (struct Gam_Games *Games)
{
extern const char *Txt_New_match;
/***** Put form to create a new match *****/
Ico_PutContextualIconToAdd (ActReqNewMch,Mch_NEW_MATCH_SECTION_ID,
Gam_PutParams,Games,
Txt_New_match);
Gam_PutParams,Games);
}
/*****************************************************************************/
@ -731,9 +727,6 @@ void Mch_ListOneOrMoreMatchesNumPlayers (const struct Mch_Match *Match)
static void Mch_ListOneOrMoreMatchesStatus (struct Mch_Match *Match,unsigned NumQsts)
{
extern const char *Txt_Play;
extern const char *Txt_Resume;
HTM_TD_Begin ("class=\"CT DAT_%s %s\"",
The_GetSuffix (),The_GetColorRows ());
@ -752,8 +745,8 @@ static void Mch_ListOneOrMoreMatchesStatus (struct Mch_Match *Match,unsigned Num
Mch_PutParamsPlay,&Match->MchCod,
Match->Status.Showing == Mch_END ? "flag-checkered.svg" :
"play.svg",Ico_BLACK,
Gbl.Usrs.Me.Role.Logged == Rol_STD ? Txt_Play :
Txt_Resume);
Act_GetActionText (Gbl.Usrs.Me.Role.Logged == Rol_STD ? ActJoiMch :
ActResMch));
HTM_TD_End ();
}
@ -788,8 +781,6 @@ static void Mch_ListOneOrMoreMatchesResult (struct Gam_Games *Games,
static void Mch_ListOneOrMoreMatchesResultStd (struct Gam_Games *Games,
const struct Mch_Match *Match)
{
extern const char *Txt_Results;
/***** Is match result visible or hidden? *****/
if (Match->Status.ShowUsrResults)
{
@ -799,7 +790,7 @@ static void Mch_ListOneOrMoreMatchesResultStd (struct Gam_Games *Games,
Lay_PutContextualLinkOnlyIcon (ActSeeMyMchResMch,MchRes_RESULTS_BOX_ID,
Mch_PutParamsEdit,Games,
"trophy.svg",Ico_BLACK,
Txt_Results);
Act_GetActionText (ActSeeMyMchResMch));
}
else
/* Result is forbidden to me */
@ -811,7 +802,6 @@ static void Mch_ListOneOrMoreMatchesResultTch (struct Gam_Games *Games,
{
extern const char *Txt_Visible_results;
extern const char *Txt_Hidden_results;
extern const char *Txt_Results;
Games->GamCod = Match->GamCod;
Games->MchCod.Current = Match->MchCod;
@ -821,7 +811,7 @@ static void Mch_ListOneOrMoreMatchesResultTch (struct Gam_Games *Games,
Lay_PutContextualLinkOnlyIcon (ActSeeUsrMchResMch,MchRes_RESULTS_BOX_ID,
Mch_PutParamsEdit,Games,
"trophy.svg",Ico_BLACK,
Txt_Results);
Act_GetActionText (ActSeeUsrMchResMch));
/***** Check if visibility of session results can be changed *****/
if (Mch_CheckIfVisibilityOfResultsCanBeChanged (Match))
@ -831,12 +821,12 @@ static void Mch_ListOneOrMoreMatchesResultTch (struct Gam_Games *Games,
Lay_PutContextualLinkOnlyIcon (ActChgVisResMchUsr,NULL,
Mch_PutParamsEdit,Games,
"eye.svg",Ico_GREEN,
Txt_Visible_results);
Act_GetActionText (ActChgVisResMchUsr));
else
Lay_PutContextualLinkOnlyIcon (ActChgVisResMchUsr,NULL,
Mch_PutParamsEdit,Games,
"eye-slash.svg",Ico_RED,
Txt_Hidden_results);
Act_GetActionText (ActChgVisResMchUsr));
}
else
{

View File

@ -1693,9 +1693,6 @@ static void Msg_SetNumMsgsStr (const struct Msg_Messages *Messages,
static void Msg_PutIconsListMsgs (void *Messages)
{
extern const char *Txt_MSGS_Sent;
extern const char *Txt_MSGS_Received;
extern const char *Txt_MSGS_Write;
static const Act_Action_t ActionReqDelAllMsg[Msg_NUM_TYPES_OF_MSGS] =
{
[Msg_WRITING ] = ActUnk,
@ -1713,7 +1710,7 @@ static void Msg_PutIconsListMsgs (void *Messages)
Lay_PutContextualLinkOnlyIcon (ActReqMsgUsr,NULL,
Msg_PutHiddenParamsMsgsFilters,Messages,
"marker.svg",Ico_BLACK,
Txt_MSGS_Write);
Act_GetActionText (ActReqMsgUsr));
break;
default:
break;
@ -1727,7 +1724,7 @@ static void Msg_PutIconsListMsgs (void *Messages)
Lay_PutContextualLinkOnlyIcon (ActSeeRcvMsg,NULL,
Msg_PutHiddenParamsMsgsFilters,Messages,
"inbox.svg",Ico_BLACK,
Txt_MSGS_Received);
Act_GetActionText (ActSeeRcvMsg));
break;
default:
break;
@ -1741,7 +1738,7 @@ static void Msg_PutIconsListMsgs (void *Messages)
Lay_PutContextualLinkOnlyIcon (ActSeeSntMsg,NULL,
Msg_PutHiddenParamsMsgsFilters,Messages,
"share.svg",Ico_BLACK,
Txt_MSGS_Sent);
Act_GetActionText (ActSeeSntMsg));
break;
default:
break;

View File

@ -466,11 +466,7 @@ static void Not_PutIconsListNotices (__attribute__((unused)) void *Args)
static void Not_PutIconToAddNewNotice (void)
{
extern const char *Txt_New_notice;
Ico_PutContextualIconToAdd (ActWriNot,NULL,
NULL,NULL,
Txt_New_notice);
Ico_PutContextualIconToAdd (ActWriNot,NULL,NULL,NULL);
}
/*****************************************************************************/
@ -640,7 +636,7 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
Lay_PutContextualLinkOnlyIcon (ActSeeOneNot,Anchor,
Not_PutParams,&NotCod,
"ellipsis-h.svg",Ico_BLACK,
Txt_See_full_notice);
Act_GetActionText (ActSeeOneNot));
HTM_DIV_End ();
}
else

View File

@ -170,11 +170,6 @@ bool Pho_ICanChangeOtherUsrPhoto (struct UsrData *UsrDat)
void Pho_PutIconToChangeUsrPhoto (void)
{
extern const char *Txt_Change_photo;
extern const char *Txt_Upload_photo;
bool PhotoExists;
char PhotoURL[PATH_MAX + 1];
const char *TitleText;
static const Act_Action_t NextAction[Rol_NUM_ROLES] =
{
[Rol_UNK ] = ActReqOthPho,
@ -192,24 +187,17 @@ void Pho_PutIconToChangeUsrPhoto (void)
/***** Link for changing / uploading the photo *****/
if (Usr_ItsMe (Gbl.Record.UsrDat->UsrCod))
{
TitleText = Gbl.Usrs.Me.MyPhotoExists ? Txt_Change_photo :
Txt_Upload_photo;
Lay_PutContextualLinkOnlyIcon (ActReqMyPho,NULL,
NULL,NULL,
"camera.svg",Ico_BLACK,
TitleText);
Act_GetActionText (ActReqMyPho));
}
else // Not me
if (Pho_ICanChangeOtherUsrPhoto (Gbl.Record.UsrDat))
{
PhotoExists = Pho_BuildLinkToPhoto (Gbl.Record.UsrDat,PhotoURL);
TitleText = PhotoExists ? Txt_Change_photo :
Txt_Upload_photo;
Lay_PutContextualLinkOnlyIcon (NextAction[Gbl.Record.UsrDat->Roles.InCurrentCrs],NULL,
Rec_PutParamUsrCodEncrypted,NULL,
"camera.svg",Ico_BLACK,
TitleText);
}
Act_GetActionText (NextAction[Gbl.Record.UsrDat->Roles.InCurrentCrs]));
}
/*****************************************************************************/
@ -218,14 +206,11 @@ void Pho_PutIconToChangeUsrPhoto (void)
static void Pho_PutIconToRequestRemoveMyPhoto (__attribute__((unused)) void *Args)
{
extern const char *Txt_Remove_photo;
/***** Link to request the removal of my photo *****/
if (Gbl.Usrs.Me.MyPhotoExists)
Lay_PutContextualLinkOnlyIcon (ActReqRemMyPho,NULL,
NULL,NULL,
"trash.svg",Ico_RED,
Txt_Remove_photo);
Act_GetActionText (ActReqRemMyPho));
}
/*****************************************************************************/
@ -234,7 +219,6 @@ static void Pho_PutIconToRequestRemoveMyPhoto (__attribute__((unused)) void *Arg
static void Pho_PutIconToRequestRemoveOtherUsrPhoto (__attribute__((unused)) void *Args)
{
extern const char *Txt_Remove_photo;
char PhotoURL[PATH_MAX + 1];
bool PhotoExists;
static const Act_Action_t NextAction[Rol_NUM_ROLES] =
@ -257,7 +241,7 @@ static void Pho_PutIconToRequestRemoveOtherUsrPhoto (__attribute__((unused)) voi
Lay_PutContextualLinkOnlyIcon (NextAction[Gbl.Usrs.Other.UsrDat.Roles.InCurrentCrs],NULL,
Usr_PutParamOtherUsrCodEncrypted,Gbl.Usrs.Other.UsrDat.EnUsrCod,
"trash.svg",Ico_RED,
Txt_Remove_photo);
Act_GetActionText (NextAction[Gbl.Usrs.Other.UsrDat.Roles.InCurrentCrs]));
}
/*****************************************************************************/
@ -296,7 +280,6 @@ static void Pho_ReqPhoto (const struct UsrData *UsrDat)
extern const char *Txt_Photo;
extern const char *Txt_You_can_send_a_file_with_an_image_in_JPEG_format_;
extern const char *Txt_File_with_the_photo;
extern const char *Txt_Upload_photo;
bool ItsMe = Usr_ItsMe (UsrDat->UsrCod);
static const Act_Action_t NextAction[Rol_NUM_ROLES] =
{

View File

@ -336,12 +336,10 @@ static void Plc_PutIconsEditingPlaces (__attribute__((unused)) void *Args)
void Plc_PutIconToViewPlaces (void)
{
extern const char *Txt_Places;
Lay_PutContextualLinkOnlyIcon (ActSeePlc,NULL,
Ins_PutParamCurrentInsCod,&Gbl.Hierarchy.Ins.InsCod,
"map-marker-alt.svg",Ico_BLACK,
Txt_Places);
Act_GetActionText (ActSeePlc));
}
/*****************************************************************************/

View File

@ -342,13 +342,10 @@ static void Prg_PutIconsListItems (__attribute__((unused)) void *Args)
static void Prg_PutIconToCreateNewItem (void)
{
extern const char *Txt_New_item;
long ItmCod = -1L;
/***** Put form to create a new program item *****/
Ico_PutContextualIconToAdd (ActFrmNewPrgItm,"item_form",
Prg_PutParams,&ItmCod,
Txt_New_item);
Prg_PutParams,&ItmCod);
}
/*****************************************************************************/
@ -737,14 +734,8 @@ static bool Prg_CheckIfAnyHigherLevelIsHidden (unsigned CurrentLevel)
static void Prg_PutFormsToRemEditOneItem (unsigned NumItem,
struct Prg_Item *Item)
{
extern const char *Txt_New_item;
extern const char *Txt_Move_up_X;
extern const char *Txt_Move_down_X;
extern const char *Txt_Increase_level_of_X;
extern const char *Txt_Decrease_level_of_X;
extern const char *Txt_Movement_not_allowed;
char StrItemIndex[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
char *Title;
/***** Initialize item index string *****/
snprintf (StrItemIndex,sizeof (StrItemIndex),"%u",Item->Hierarchy.Index);
@ -771,60 +762,43 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem,
/***** Put form to add a new child item inside this item *****/
Ico_PutContextualIconToAdd (ActFrmNewPrgItm,"item_form",
Prg_PutParams,&Item->Hierarchy.ItmCod,
Txt_New_item);
Prg_PutParams,&Item->Hierarchy.ItmCod);
HTM_BR ();
/***** Put icon to move up the item *****/
if (Prg_CheckIfMoveUpIsAllowed (NumItem))
{
if (asprintf (&Title,Txt_Move_up_X,StrItemIndex) < 0)
Err_NotEnoughMemoryExit ();
Lay_PutContextualLinkOnlyIcon (ActUp_PrgItm,"prg_highlighted",
Prg_PutParams,&Item->Hierarchy.ItmCod,
"arrow-up.svg",Ico_BLACK,Title);
free (Title);
}
"arrow-up.svg",Ico_BLACK,
Act_GetActionText (ActUp_PrgItm));
else
Ico_PutIconOff ("arrow-up.svg",Ico_BLACK,Txt_Movement_not_allowed);
/***** Put icon to move down the item *****/
if (Prg_CheckIfMoveDownIsAllowed (NumItem))
{
if (asprintf (&Title,Txt_Move_down_X,StrItemIndex) < 0)
Err_NotEnoughMemoryExit ();
Lay_PutContextualLinkOnlyIcon (ActDwnPrgItm,"prg_highlighted",
Prg_PutParams,&Item->Hierarchy.ItmCod,
"arrow-down.svg",Ico_BLACK,Title);
free (Title);
}
"arrow-down.svg",Ico_BLACK,
Act_GetActionText (ActDwnPrgItm));
else
Ico_PutIconOff ("arrow-down.svg",Ico_BLACK,Txt_Movement_not_allowed);
/***** Icon to move left item (increase level) *****/
if (Prg_CheckIfMoveLeftIsAllowed (NumItem))
{
if (asprintf (&Title,Txt_Increase_level_of_X,StrItemIndex) < 0)
Err_NotEnoughMemoryExit ();
Lay_PutContextualLinkOnlyIcon (ActLftPrgItm,"prg_highlighted",
Prg_PutParams,&Item->Hierarchy.ItmCod,
"arrow-left.svg",Ico_BLACK,Title);
free (Title);
}
"arrow-left.svg",Ico_BLACK,
Act_GetActionText (ActLftPrgItm));
else
Ico_PutIconOff ("arrow-left.svg",Ico_BLACK,Txt_Movement_not_allowed);
/***** Icon to move right item (indent, decrease level) *****/
if (Prg_CheckIfMoveRightIsAllowed (NumItem))
{
if (asprintf (&Title,Txt_Decrease_level_of_X,StrItemIndex) < 0)
Err_NotEnoughMemoryExit ();
Lay_PutContextualLinkOnlyIcon (ActRgtPrgItm,"prg_highlighted",
Prg_PutParams,&Item->Hierarchy.ItmCod,
"arrow-right.svg",Ico_BLACK,Title);
free (Title);
}
"arrow-right.svg",Ico_BLACK,
Act_GetActionText (ActRgtPrgItm));
else
Ico_PutIconOff ("arrow-right.svg",Ico_BLACK,Txt_Movement_not_allowed);
break;

View File

@ -1108,13 +1108,8 @@ static void Prj_PutIconsListProjects (void *Projects)
static void Prj_PutIconToCreateNewPrj (struct Prj_Projects *Projects)
{
extern const char *Txt_New_project;
/***** Put form to create a new project *****/
Projects->PrjCod = -1L;
Ico_PutContextualIconToAdd (ActFrmNewPrj,NULL,
Prj_PutCurrentParams,Projects,
Txt_New_project);
Ico_PutContextualIconToAdd (ActFrmNewPrj,NULL,Prj_PutCurrentParams,Projects);
}
/*****************************************************************************/
@ -1138,12 +1133,10 @@ static void Prj_PutButtonToCreateNewPrj (struct Prj_Projects *Projects)
static void Prj_PutIconToShowAllData (struct Prj_Projects *Projects)
{
extern const char *Txt_Show_all_data_in_a_table;
Lay_PutContextualLinkOnlyIcon (ActSeeTblAllPrj,NULL,
Prj_PutCurrentParams,Projects,
"table.svg",Ico_BLACK,
Txt_Show_all_data_in_a_table);
Act_GetActionText (ActSeeTblAllPrj));
}
/*****************************************************************************/
@ -2039,8 +2032,6 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
;
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_Add_USERS;
extern const char *Txt_PROJECT_ROLES_PLURAL_abc[Prj_NUM_ROLES_IN_PROJECT];
static const Act_Action_t ActionReqRemUsr[Prj_NUM_ROLES_IN_PROJECT] =
{
[Prj_ROLE_UNK] = ActUnk, // Unknown
@ -2069,7 +2060,6 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
unsigned NumUsrs;
const char *ClassLabel;
const char *ClassData;
char *Txt;
/***** Set CSS classes *****/
ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" :
@ -2193,12 +2183,8 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"PRJ_MEMBER_ICO\"");
Projects->PrjCod = Prj->PrjCod; // Used to pass project code as a parameter
if (asprintf (&Txt,Txt_Add_USERS,
Txt_PROJECT_ROLES_PLURAL_abc[RoleInPrj]) < 0)
Err_NotEnoughMemoryExit ();
Ico_PutContextualIconToAdd (ActionReqAddUsr[RoleInPrj],NULL,
Prj_PutCurrentParams,Projects,Txt);
free (Txt);
Prj_PutCurrentParams,Projects);
HTM_TD_End ();
HTM_TD_Begin ("class=\"PRJ_MEMBER_PHO\""); // Column for photo
@ -3849,20 +3835,17 @@ static bool Prj_GetEditableFromForm (void)
static void Prj_PutIconsToLockUnlockAllProjects (struct Prj_Projects *Projects)
{
extern const char *Txt_Lock_editing;
extern const char *Txt_Unlock_editing;
/***** Put icon to lock all projects *****/
Lay_PutContextualLinkOnlyIcon (ActReqLckAllPrj,NULL,
Prj_PutCurrentParams,Projects,
"lock.svg",Ico_RED,
Txt_Lock_editing);
Act_GetActionText (ActReqLckAllPrj));
/***** Put icon to unlock all projects *****/
Lay_PutContextualLinkOnlyIcon (ActReqUnlAllPrj,NULL,
Prj_PutCurrentParams,Projects,
"unlock.svg",Ico_GREEN,
Txt_Unlock_editing);
Act_GetActionText (ActReqUnlAllPrj));
}
/*****************************************************************************/

View File

@ -441,12 +441,8 @@ bool Qst_CheckIfICanEditQsts (void)
void Qst_PutIconsRequestBankQsts (__attribute__((unused)) void *Args)
{
extern const char *Txt_New_question;
/***** Put icon to create a new test question *****/
Ico_PutContextualIconToAdd (ActEdiOneTstQst,NULL,
NULL,NULL,
Txt_New_question);
Ico_PutContextualIconToAdd (ActEdiOneTstQst,NULL,NULL,NULL);
/***** Put icon to edit tags *****/
Tag_PutIconToEditTags ();
@ -464,8 +460,6 @@ void Qst_PutIconsRequestBankQsts (__attribute__((unused)) void *Args)
void Qst_PutIconsEditBankQsts (void *Questions)
{
extern const char *Txt_New_question;
/***** Put form to remove selected test questions *****/
switch (Gbl.Action.Act)
{
@ -483,9 +477,7 @@ void Qst_PutIconsEditBankQsts (void *Questions)
if (Gbl.Action.Act != ActEdiOneTstQst)
/***** Put form to create a new test question *****/
Ico_PutContextualIconToAdd (ActEdiOneTstQst,NULL,
NULL,NULL,
Txt_New_question);
Ico_PutContextualIconToAdd (ActEdiOneTstQst,NULL,NULL,NULL);
/***** Put icon to edit tags *****/
Tag_PutIconToEditTags ();

View File

@ -76,13 +76,10 @@ static void QstImp_WriteRowImportedQst (struct XMLElement *StemElem,
void QstImp_PutIconToExportQuestions (struct Qst_Questions *Questions)
{
extern const char *Txt_Export_questions;
/***** Put a link to create a file with questions *****/
Lay_PutContextualLinkOnlyIcon (ActLstTstQst,NULL,
QstImp_PutParamsExportQsts,Questions,
"file-import.svg",Ico_BLACK,
Txt_Export_questions);
Act_GetActionText (ActLstTstQst));
}
/*****************************************************************************/
@ -120,13 +117,10 @@ bool QstImp_GetCreateXMLParamFromForm (void)
void QstImp_PutIconToImportQuestions (void)
{
extern const char *Txt_Import_questions;
/***** Put a link to create a file with questions *****/
Lay_PutContextualLinkOnlyIcon (ActReqImpTstQst,NULL,
NULL,NULL,
"file-export.svg",Ico_BLACK,
Txt_Import_questions);
Act_GetActionText (ActReqImpTstQst));
}
/*****************************************************************************/

View File

@ -2306,21 +2306,6 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
static void Rec_PutIconsCommands (__attribute__((unused)) void *Args)
{
extern const char *Txt_Edit_my_personal_data;
extern const char *Txt_My_public_profile;
extern const char *Txt_Another_user_s_profile;
extern const char *Txt_View_record_for_this_course;
extern const char *Txt_View_record_and_office_hours;
extern const char *Txt_Show_agenda;
extern const char *Txt_Administer_user;
extern const char *Txt_Write_a_message;
extern const char *Txt_View_homework;
extern const char *Txt_View_tests;
extern const char *Txt_View_exams;
extern const char *Txt_View_games;
extern const char *Txt_View_attendance;
extern const char *Txt_Following_unfollow;
extern const char *Txt_Follow;
bool ItsMe = Usr_ItsMe (Gbl.Record.UsrDat->UsrCod);
bool ICanViewUsrProfile;
bool RecipientHasBannedMe;
@ -2353,14 +2338,13 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args)
Lay_PutContextualLinkOnlyIcon (ActReqEdiRecSha,NULL,
NULL,NULL,
"pen.svg",Ico_BLACK,
Txt_Edit_my_personal_data);
Act_GetActionText (ActReqEdiRecSha));
if (ICanViewUsrProfile)
/***** Button to view user's profile *****/
Lay_PutContextualLinkOnlyIcon (ActSeeOthPubPrf,NULL,
Rec_PutParamUsrCodEncrypted,NULL,
"user.svg",Ico_BLACK,
ItsMe ? Txt_My_public_profile :
Txt_Another_user_s_profile);
Act_GetActionText (ActSeeOthPubPrf));
/***** Button to view user's record card *****/
if (Usr_CheckIfICanViewRecordStd (Gbl.Record.UsrDat))
@ -2368,24 +2352,24 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args)
Lay_PutContextualLinkOnlyIcon (ActSeeRecOneStd,NULL,
Rec_PutParamUsrCodEncrypted,NULL,
"address-card.svg",Ico_BLACK,
Txt_View_record_for_this_course);
Act_GetActionText (ActSeeRecOneStd));
else if (Usr_CheckIfICanViewRecordTch (Gbl.Record.UsrDat))
Lay_PutContextualLinkOnlyIcon (ActSeeRecOneTch,NULL,
Rec_PutParamUsrCodEncrypted,NULL,
"address-card.svg",Ico_BLACK,
Txt_View_record_and_office_hours);
Act_GetActionText (ActSeeRecOneTch));
/***** Button to view user's agenda *****/
if (ItsMe)
Lay_PutContextualLinkOnlyIcon (ActSeeMyAgd,NULL,
NULL,NULL,
"calendar.svg",Ico_BLACK,
Txt_Show_agenda);
Act_GetActionText (ActSeeMyAgd));
else if (Usr_CheckIfICanViewUsrAgenda (Gbl.Record.UsrDat))
Lay_PutContextualLinkOnlyIcon (ActSeeUsrAgd,NULL,
Rec_PutParamUsrCodEncrypted,NULL,
"calendar.svg",Ico_BLACK,
Txt_Show_agenda);
Act_GetActionText (ActSeeUsrAgd));
/***** Button to admin user *****/
if (ItsMe ||
@ -2397,7 +2381,7 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args)
Lay_PutContextualLinkOnlyIcon (NextAction[Gbl.Record.UsrDat->Roles.InCurrentCrs],NULL,
Rec_PutParamUsrCodEncrypted,NULL,
"user-cog.svg",Ico_BLACK,
Txt_Administer_user);
Act_GetActionText (NextAction[Gbl.Record.UsrDat->Roles.InCurrentCrs]));
if (Gbl.Hierarchy.Level == HieLvl_CRS) // Course selected
{
@ -2412,17 +2396,17 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args)
Lay_PutContextualLinkOnlyIcon (ActSeeMyTstResCrs,NULL,
Rec_PutParamsMyTsts,NULL,
"check.svg",Ico_BLACK,
Txt_View_tests);
Act_GetActionText (ActSeeMyTstResCrs));
/* My exam results in course */
Lay_PutContextualLinkOnlyIcon (ActSeeMyExaResCrs,NULL,
Rec_PutParamsMyTsts,NULL,
"file-signature.svg",Ico_BLACK,
Txt_View_exams);
Act_GetActionText (ActSeeMyExaResCrs));
/* My match results in course */
Lay_PutContextualLinkOnlyIcon (ActSeeMyMchResCrs,NULL,
Rec_PutParamsMyTsts,NULL,
"gamepad.svg",Ico_BLACK,
Txt_View_games);
Act_GetActionText (ActSeeMyMchResCrs));
}
else // Not me
{
@ -2430,17 +2414,17 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args)
Lay_PutContextualLinkOnlyIcon (ActSeeUsrTstResCrs,NULL,
Rec_PutParamsStdTsts,NULL,
"check.svg",Ico_BLACK,
Txt_View_tests);
Act_GetActionText (ActSeeUsrTstResCrs));
/* User's exam results in course */
Lay_PutContextualLinkOnlyIcon (ActSeeUsrExaResCrs,NULL,
Rec_PutParamsStdTsts,NULL,
"file-signature.svg",Ico_BLACK,
Txt_View_exams);
Act_GetActionText (ActSeeUsrExaResCrs));
/* User's match results in course */
Lay_PutContextualLinkOnlyIcon (ActSeeUsrMchResCrs,NULL,
Rec_PutParamsStdTsts,NULL,
"gamepad.svg",Ico_BLACK,
Txt_View_games);
Act_GetActionText (ActSeeUsrMchResCrs));
}
}
@ -2451,12 +2435,12 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args)
Lay_PutContextualLinkOnlyIcon (ActAdmAsgWrkUsr,NULL,
NULL,NULL,
"folder-open.svg",Ico_BLACK,
Txt_View_homework);
Act_GetActionText (ActAdmAsgWrkUsr));
else // Not me, I am not a student in current course
Lay_PutContextualLinkOnlyIcon (ActAdmAsgWrkCrs,NULL,
Rec_PutParamsWorks,NULL,
"folder-open.svg",Ico_BLACK,
Txt_View_homework);
Act_GetActionText (ActAdmAsgWrkCrs));
}
/***** Button to view student's attendance *****/
@ -2466,12 +2450,12 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args)
Lay_PutContextualLinkOnlyIcon (ActSeeLstMyAtt,NULL,
NULL,NULL,
"calendar-check.svg",Ico_BLACK,
Txt_View_attendance);
Act_GetActionText (ActSeeLstMyAtt));
else // Not me
Lay_PutContextualLinkOnlyIcon (ActSeeLstUsrAtt,NULL,
Rec_PutParamsStudent,NULL,
"calendar-check.svg",Ico_BLACK,
Txt_View_attendance);
Act_GetActionText (ActSeeLstUsrAtt));
}
}
}
@ -2487,7 +2471,7 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args)
Lay_PutContextualLinkOnlyIcon (ActReqMsgUsr,NULL,
Rec_PutParamsMsgUsr,NULL,
"envelope.svg",Ico_BLACK,
Txt_Write_a_message);
Act_GetActionText (ActReqMsgUsr));
/***** Button to follow / unfollow *****/
if (!ItsMe) // Not me
@ -2498,12 +2482,12 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args)
Lay_PutContextualLinkOnlyIcon (ActUnfUsr,NULL,
Rec_PutParamUsrCodEncrypted,NULL,
"user-check.svg",Ico_BLACK,
Txt_Following_unfollow); // Put button to unfollow, even if I can not view user's profile
Act_GetActionText (ActUnfUsr)); // Put button to unfollow, even if I can not view user's profile
else if (ICanViewUsrProfile)
Lay_PutContextualLinkOnlyIcon (ActFolUsr,NULL,
Rec_PutParamUsrCodEncrypted,NULL,
"user-plus.svg",Ico_BLACK,
Txt_Follow); // Put button to follow
Act_GetActionText (ActFolUsr)); // Put button to follow
}
/***** Button to change user's photo *****/

View File

@ -475,12 +475,10 @@ static void Roo_PutIconsEditingRooms (__attribute__((unused)) void *Args)
void Roo_PutIconToViewRooms (void)
{
extern const char *Txt_Rooms;
Lay_PutContextualLinkOnlyIcon (ActSeeRoo,NULL,
NULL,NULL,
"chalkboard-teacher.svg",Ico_BLACK,
Txt_Rooms);
Act_GetActionText (ActSeeRoo));
}
/*****************************************************************************/

View File

@ -340,11 +340,8 @@ static void Svy_PutIconsListSurveys (void *Surveys)
static void Svy_PutIconToCreateNewSvy (struct Svy_Surveys *Surveys)
{
extern const char *Txt_New_survey;
Ico_PutContextualIconToAdd (ActFrmNewSvy,NULL,
Svy_PutParamsToCreateNewSvy,Surveys,
Txt_New_survey);
Svy_PutParamsToCreateNewSvy,Surveys);
}
/*****************************************************************************/
@ -875,8 +872,6 @@ static void Svy_PutFormsToRemEditOneSvy (struct Svy_Surveys *Surveys,
const struct Svy_Survey *Svy,
const char *Anchor)
{
extern const char *Txt_Reset;
Surveys->SvyCod = Svy->SvyCod; // Used as parameters in contextual links
/***** Put form to remove survey *****/
@ -887,7 +882,7 @@ static void Svy_PutFormsToRemEditOneSvy (struct Svy_Surveys *Surveys,
Lay_PutContextualLinkOnlyIcon (ActReqRstSvy,NULL,
Svy_PutParams,Surveys,
"recycle.svg",Ico_RED,
Txt_Reset);
Act_GetActionText (ActReqRstSvy));
/***** Put form to hide/show survey *****/
if (Svy->Status.Visible)
@ -2935,12 +2930,7 @@ static void Svy_PutParamsToEditQuestion (void *Surveys)
static void Svy_PutIconToAddNewQuestion (void *Surveys)
{
extern const char *Txt_New_question;
/***** Put form to create a new question *****/
Ico_PutContextualIconToAdd (ActEdiOneSvyQst,NULL,
Svy_PutParams,Surveys,
Txt_New_question);
Ico_PutContextualIconToAdd (ActEdiOneSvyQst,NULL,Svy_PutParams,Surveys);
}
/*****************************************************************************/

View File

@ -604,17 +604,10 @@ static void Syl_ShowSyllabus (struct Syl_Syllabus *Syllabus)
static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
int Level,int *CodItem,const char *Text,bool NewItem)
{
extern const char *Txt_Move_up_X_and_its_subsections;
extern const char *Txt_Move_up_X;
extern const char *Txt_Movement_not_allowed;
extern const char *Txt_Move_down_X_and_its_subsections;
extern const char *Txt_Move_down_X;
extern const char *Txt_Increase_level_of_X;
extern const char *Txt_Decrease_level_of_X;
static int LastLevel = 0;
char StrItemCod[Syl_MAX_LEVELS_SYLLABUS * (10 + 1)];
struct MoveSubtrees Subtree;
char *Title;
Subtree.ToGetUp.Ini = Subtree.ToGetUp.End = 0;
Subtree.ToGetDown.Ini = Subtree.ToGetDown.End = 0;
@ -652,18 +645,13 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
Syl_CalculateUpSubtreeSyllabus (&Subtree,NumItem);
HTM_TD_Begin ("class=\"BM %s\"",The_GetColorRows ());
if (Subtree.MovAllowed)
{
if (asprintf (&Title,Syl_LstItemsSyllabus.Lst[NumItem].HasChildren ? Txt_Move_up_X_and_its_subsections :
Txt_Move_up_X,
StrItemCod) < 0)
Err_NotEnoughMemoryExit ();
Lay_PutContextualLinkOnlyIcon (Gbl.Crs.Info.Type == Inf_LECTURES ? ActUp_IteSylLec :
ActUp_IteSylPra,
NULL,
Syl_PutParamNumItem,&Syllabus->ParamNumItem,
"arrow-up.svg",Ico_BLACK,Title);
free (Title);
}
"arrow-up.svg",Ico_BLACK,
Act_GetActionText (Gbl.Crs.Info.Type == Inf_LECTURES ? ActUp_IteSylLec :
ActUp_IteSylPra));
else
Ico_PutIconOff ("arrow-up.svg",Ico_BLACK,
Txt_Movement_not_allowed);
@ -673,18 +661,13 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
Syl_CalculateDownSubtreeSyllabus (&Subtree,NumItem);
HTM_TD_Begin ("class=\"BM %s\"",The_GetColorRows ());
if (Subtree.MovAllowed)
{
if (asprintf (&Title,Syl_LstItemsSyllabus.Lst[NumItem].HasChildren ? Txt_Move_down_X_and_its_subsections :
Txt_Move_down_X,
StrItemCod) < 0)
Err_NotEnoughMemoryExit ();
Lay_PutContextualLinkOnlyIcon (Gbl.Crs.Info.Type == Inf_LECTURES ? ActDwnIteSylLec :
ActDwnIteSylPra,
NULL,
Syl_PutParamNumItem,&Syllabus->ParamNumItem,
"arrow-down.svg",Ico_BLACK,Title);
free (Title);
}
"arrow-down.svg",Ico_BLACK,
Act_GetActionText (Gbl.Crs.Info.Type == Inf_LECTURES ? ActDwnIteSylLec :
ActDwnIteSylPra));
else
Ico_PutIconOff ("arrow-down.svg",Ico_BLACK,
Txt_Movement_not_allowed);
@ -693,16 +676,13 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
/***** Icon to increase the level of an item *****/
HTM_TD_Begin ("class=\"BM %s\"",The_GetColorRows ());
if (Level > 1)
{
if (asprintf (&Title,Txt_Increase_level_of_X,StrItemCod) < 0)
Err_NotEnoughMemoryExit ();
Lay_PutContextualLinkOnlyIcon (Gbl.Crs.Info.Type == Inf_LECTURES ? ActRgtIteSylLec :
ActRgtIteSylPra,
NULL,
Syl_PutParamNumItem,&Syllabus->ParamNumItem,
"arrow-left.svg",Ico_BLACK,Title);
free (Title);
}
"arrow-left.svg",Ico_BLACK,
Act_GetActionText (Gbl.Crs.Info.Type == Inf_LECTURES ? ActRgtIteSylLec :
ActRgtIteSylPra));
else
Ico_PutIconOff ("arrow-left.svg",Ico_BLACK,
Txt_Movement_not_allowed);
@ -712,16 +692,13 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
HTM_TD_Begin ("class=\"BM %s\"",The_GetColorRows ());
if (Level < LastLevel + 1 &&
Level < Syl_MAX_LEVELS_SYLLABUS)
{
if (asprintf (&Title,Txt_Decrease_level_of_X,StrItemCod) < 0)
Err_NotEnoughMemoryExit ();
Lay_PutContextualLinkOnlyIcon (Gbl.Crs.Info.Type == Inf_LECTURES ? ActLftIteSylLec :
ActLftIteSylPra,
NULL,
Syl_PutParamNumItem,&Syllabus->ParamNumItem,
"arrow-right.svg",Ico_BLACK,Title);
free (Title);
}
"arrow-right.svg",Ico_BLACK,
Act_GetActionText (Gbl.Crs.Info.Type == Inf_LECTURES ? ActLftIteSylLec :
ActLftIteSylPra));
else
Ico_PutIconOff ("arrow-right.svg",Ico_BLACK,
Txt_Movement_not_allowed);

View File

@ -94,13 +94,10 @@ void Tag_FreeTagsList (struct Tag_Tags *Tags)
void Tag_PutIconToEditTags (void)
{
extern const char *Txt_Edit_tags;
/***** Put a link to create a file with questions *****/
Lay_PutContextualLinkOnlyIcon (ActEdiTag,NULL,
NULL,NULL,
"tag.svg",Ico_BLACK,
Txt_Edit_tags);
Act_GetActionText (ActEdiTag));
}
/*****************************************************************************/

View File

@ -1662,13 +1662,12 @@ void TstPrn_SelUsrsToViewUsrsPrints (void)
static void TstPrn_PutFormToSelectUsrsToViewUsrsPrints (__attribute__((unused)) void *Args)
{
extern const char *Hlp_ASSESSMENT_Tests_results;
extern const char *Txt_Results;
extern const char *Txt_View_results;
Usr_PutFormToSelectUsrsToGoToAct (&Gbl.Usrs.Selected,
ActSeeUsrTstResCrs,
NULL,NULL,
Txt_Results,
Act_GetActionText (ActSeeUsrTstResCrs),
Hlp_ASSESSMENT_Tests_results,
Txt_View_results,
true); // Put form with date range

View File

@ -1243,29 +1243,6 @@ const char *Txt_Administer_one_user =
"Administer one user"; // Çeviri lazim!
#endif
const char *Txt_Administer_user =
#if L==1 // ca
"Administrar usuari";
#elif L==2 // de
"Verwalten Benutzer";
#elif L==3 // en
"Administer user";
#elif L==4 // es
"Administrar usuario";
#elif L==5 // fr
"G&eacute;rer utilisateur";
#elif L==6 // gn
"Administrar usuario"; // Okoteve traducción
#elif L==7 // it
"Gestire utente";
#elif L==8 // pl
"Zarz&aogon;dzaj u&zdot;ytkownika";
#elif L==9 // pt
"Gerenciar utilizador";
#elif L==10 // tr
"Administer user"; // Çeviri lazim!
#endif
const char *Txt_AGENDA_PAST___FUTURE_EVENTS[2] =
{
// Agd_PAST___EVENTS
@ -4738,29 +4715,6 @@ const char *Txt_Centers_with_pending_degrees =
"Centers with pending degrees"; // Çeviri lazim!
#endif
const char *Txt_Change_account =
#if L==1 // ca
"Canviar compte";
#elif L==2 // de
"Benutzerkonto &auml;ndern";
#elif L==3 // en
"Change account";
#elif L==4 // es
"Cambiar cuenta";
#elif L==5 // fr
"Changer compte";
#elif L==6 // gn
"Cambiar cuenta"; // Okoteve traducción
#elif L==7 // it
"Cambiare account";
#elif L==8 // pl
"Zmie&nacute; konto";
#elif L==9 // pt
"Alterar conta";
#elif L==10 // tr
"Change account"; // Çeviri lazim!
#endif
const char *Txt_Change_email =
#if L==1 // ca
"Canviar correu";
@ -4830,29 +4784,6 @@ const char *Txt_Change_image_video =
"Change image / video"; // Çeviri lazim!
#endif
const char *Txt_Change_logo =
#if L==1 // ca
"Canviar logo";
#elif L==2 // de
"Logo &auml;ndern";
#elif L==3 // en
"Change logo";
#elif L==4 // es
"Cambiar logo";
#elif L==5 // fr
"Changer logo";
#elif L==6 // gn
"Moambue logo";
#elif L==7 // it
"Cambiare logo";
#elif L==8 // pl
"Zmie&nacute; logo";
#elif L==9 // pt
"Alterar logotipo";
#elif L==10 // tr
"Change logo"; // Çeviri lazim!
#endif
const char *Txt_Change_my_groups =
#if L==1 // ca
"Canviar de grups";
@ -4922,29 +4853,6 @@ const char *Txt_Change_password =
"&Scedil;ifre de&gbreve;i&scedil;tir";
#endif
const char *Txt_Change_photo =
#if L==1 // ca
"Canviar foto";
#elif L==2 // de
"Foto &auml;ndern";
#elif L==3 // en
"Change photo";
#elif L==4 // es
"Cambiar foto";
#elif L==5 // fr
"Changer photo";
#elif L==6 // gn
"Cambiar foto"; // Okoteve traducción
#elif L==7 // it
"Cambiare foto";
#elif L==8 // pl
"Zmie&nacute; zdjecie";
#elif L==9 // pt
"Alterar foto";
#elif L==10 // tr
"Change photo"; // Çeviri lazim!
#endif
const char *Txt_CHAT_Room =
#if L==1 // ca
"Sala";
@ -8745,29 +8653,6 @@ const char *Txt_DAYS2[7] =
#endif
};
const char *Txt_Decrease_level_of_X = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"Disminuir nivell de %s";
#elif L==2 // de
"Stufe von %s verringern";
#elif L==3 // en
"Decrease level of %s";
#elif L==4 // es
"Disminuir nivel de %s";
#elif L==5 // fr
"Diminuer le niveau de %s";
#elif L==6 // gn
"Disminuir nivel de %s"; // Okoteve traducción
#elif L==7 // it
"Decrementare livello di %s";
#elif L==8 // pl
"Spadek poziomu %s";
#elif L==9 // pt
"Diminuir o n&iacute;vel de %s";
#elif L==10 // tr
"Decrease level of %s"; // Çeviri lazim!
#endif
const char *Txt_default =
#if L==1 // ca
"predeterminat";
@ -11707,29 +11592,6 @@ const char *Txt_Edit_item =
"Edit item"; // Çeviri lazim!
#endif
const char *Txt_Edit_my_personal_data =
#if L==1 // ca
"Edita meves dades personals";
#elif L==2 // de
"Bearbeiten meiner pers&ouml;nlichen Daten";
#elif L==3 // en
"Edit my personal data";
#elif L==4 // es
"Editar mis datos personales";
#elif L==5 // fr
"&Eacute;diter mes donn&eacute;es personnelles";
#elif L==6 // gn
"Editar mis datos personales"; // Okoteve traducción
#elif L==7 // it
"Editare i miei dati personali";
#elif L==8 // pl
"Edycja moich danych osobowych";
#elif L==9 // pt
"Editar os meus dados pessoais";
#elif L==10 // tr
"Edit my personal data"; // Çeviri lazim!
#endif
const char *Txt_Edit_plain_text =
#if L==1 // ca
"Editar text sense format";
@ -11868,29 +11730,6 @@ const char *Txt_Edit_rich_text =
"Edit rich text"; // Çeviri lazim!
#endif
const char *Txt_Edit_tags =
#if L==1 // ca
"Editar descriptors";
#elif L==2 // de
"Tags bearbeiten";
#elif L==3 // en
"Edit tags";
#elif L==4 // es
"Editar descriptores";
#elif L==5 // fr
"&Eacute;diter descripteurs";
#elif L==6 // gn
"Editar descriptores"; // Okoteve traducción
#elif L==7 // it
"Editare etichette";
#elif L==8 // pl
"Edycja tag&oacute;w";
#elif L==9 // pt
"Editar descritores";
#elif L==10 // tr
"Edit tags"; // Çeviri lazim!
#endif
const char *Txt_Editable =
#if L==1 // ca
"Editables";
@ -13517,29 +13356,6 @@ const char *Txt_Expand =
"Expand"; // Çeviri lazim!
#endif
const char *Txt_Export_questions =
#if L==1 // ca
"Exporta preguntes";
#elif L==2 // de
"Fragen exportieren";
#elif L==3 // en
"Export questions";
#elif L==4 // es
"Exportar preguntas";
#elif L==5 // fr
"Exporter questions";
#elif L==6 // gn
"Exportar preguntas"; // Okoteve traducción
#elif L==7 // it
"Esportare domande";
#elif L==8 // pl
"Eksportuj pytania";
#elif L==9 // pt
"Exportar perguntas";
#elif L==10 // tr
"Export questions"; // Çeviri lazim!
#endif
const char *Txt_Extended_public_profile =
#if L==1 // ca
"Perfil p&uacute;blic ampliat";
@ -18185,29 +18001,6 @@ const char *Txt_Incomplete_timetable_for_lack_of_space =
"Incomplete timetable for lack of space."; // Çeviri lazim!
#endif
const char *Txt_Increase_level_of_X = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"Augmentar nivell de %s";
#elif L==2 // de
"Level von %s erh&ouml;hen";
#elif L==3 // en
"Increase level of %s";
#elif L==4 // es
"Aumentar nivel de %s";
#elif L==5 // fr
"Augmenter le niveau de %s";
#elif L==6 // gn
"Aumentar nivel de %s"; // Okoteve traducción
#elif L==7 // it
"Incrementare livello di %s";
#elif L==8 // pl
"Wzrost poziomu %s";
#elif L==9 // pt
"Aumentar o n&iacute;vel de %s";
#elif L==10 // tr
"Increase level of %s"; // Çeviri lazim!
#endif
const char *Txt_Indicators =
#if L==1 // ca
"Indicadors";
@ -20747,29 +20540,6 @@ const char *Txt_Mandatory_enrolment = // (to a type of group)
"Mandatory enrolment?"; // Çeviri lazim!
#endif
const char *Txt_Map =
#if L==1 // ca
"Mapa";
#elif L==2 // de
"Karte";
#elif L==3 // en
"Map";
#elif L==4 // es
"Mapa";
#elif L==5 // fr
"Carte";
#elif L==6 // gn
"Mapa"; // Okoteve traducción
#elif L==7 // it
"Carta";
#elif L==8 // pl
"Mapa";
#elif L==9 // pt
"Mapa";
#elif L==10 // tr
"Map"; // Çeviri lazim!
#endif
const char *Txt_Mark_all_NOTIFICATIONS_as_read =
#if L==1 // ca
"Marca totes com llegides";
@ -24465,98 +24235,6 @@ const char *Txt_MONTHS_SMALL_SHORT[12] =
#endif
};
const char *Txt_Move_up_X = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"Pujar %s";
#elif L==2 // de
"Bewegen Sie %s nach oben";
#elif L==3 // en
"Move up %s";
#elif L==4 // es
"Subir %s";
#elif L==5 // fr
"Monter %s";
#elif L==6 // gn
"Subir %s"; // Okoteve traducción
#elif L==7 // it
"Muovi su %s";
#elif L==8 // pl
"Przesun w g&oacute;re %s";
#elif L==9 // pt
"Mover %s para cima";
#elif L==10 // tr
"Move up %s"; // Çeviri lazim!
#endif
const char *Txt_Move_up_X_and_its_subsections = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"Pujar %s i els seus subapartats";
#elif L==2 // de
"Bewegen Sie %s und seine Unterabschnitte nach oben";
#elif L==3 // en
"Move up %s and its subsections";
#elif L==4 // es
"Subir %s y sus subapartados";
#elif L==5 // fr
"Monter %s et ses sous-sections";
#elif L==6 // gn
"Subir %s y sus subapartados"; // Okoteve traducción
#elif L==7 // it
"Muovi su %s e le sue sottosezioni";
#elif L==8 // pl
"Przenies sie %s, a jego podrozdzialy";
#elif L==9 // pt
"Mover %s e suas subse&ccedil;&otilde;es para cima";
#elif L==10 // tr
"Move up %s and its subsections"; // Çeviri lazim!
#endif
const char *Txt_Move_down_X = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"Baixar %s";
#elif L==2 // de
"Gehe %s nach unten";
#elif L==3 // en
"Move down %s";
#elif L==4 // es
"Bajar %s";
#elif L==5 // fr
"Descendre %s";
#elif L==6 // gn
"Bajar %s"; // Okoteve traducción
#elif L==7 // it
"Muovi gi&ugrave; %s";
#elif L==8 // pl
"Opuszczac %s";
#elif L==9 // pt
"Mover %s para baixo";
#elif L==10 // tr
"Move down %s"; // Çeviri lazim!
#endif
const char *Txt_Move_down_X_and_its_subsections = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"Baixar %s i els seus subapartats";
#elif L==2 // de
"Bewegen Sie %s und seine Unterabschnitte nach unten";
#elif L==3 // en
"Move down %s and its subsections";
#elif L==4 // es
"Bajar %s y sus subapartados";
#elif L==5 // fr
"Move down %s and its subsections";
#elif L==6 // gn
"Descendre %s et ses sous-sections"; // Okoteve traducción
#elif L==7 // it
"Muovi gi&ugrave; %s e le sue sottosezioni";
#elif L==8 // pl
"Przesun w d&oacute;l %s, a jego podrozdzialy";
#elif L==9 // pt
"Mover %s e suas subse&ccedil;&otilde;es para baixo";
#elif L==10 // tr
"Move down %s and its subsections"; // Çeviri lazim!
#endif
const char *Txt_Movement_not_allowed =
#if L==1 // ca
"Moviment no perm&egrave;s";
@ -24994,29 +24672,6 @@ const char *Txt_MSGS_Sent =
"Sent"; // Çeviri lazim!
#endif
const char *Txt_MSGS_Write =
#if L==1 // ca
"Redactar";
#elif L==2 // de
"Schreiben";
#elif L==3 // en
"Write";
#elif L==4 // es
"Redactar";
#elif L==5 // fr
"Ecrire";
#elif L==6 // gn
"Redactar"; // Okoteve traducción
#elif L==7 // it
"Scrivi";
#elif L==8 // pl
"Napisz";
#elif L==9 // pt
"Escrever";
#elif L==10 // tr
"Write"; // Çeviri lazim!
#endif
const char *Txt_Multimedia =
#if L==1 // ca
"Multim&egrave;dia";
@ -35059,29 +34714,6 @@ const char *Txt_Removal_not_allowed =
"Removal not allowed"; // Çeviri lazim!
#endif
const char *Txt_Remove_account =
#if L==1 // ca
"Eliminar compte";
#elif L==2 // de
"Benutzerkonto entfernen";
#elif L==3 // en
"Remove account";
#elif L==4 // es
"Eliminar cuenta";
#elif L==5 // fr
"Supprimer compte";
#elif L==6 // gn
"Eliminar cuenta"; // Okoteve traducción
#elif L==7 // it
"Rimuovere account";
#elif L==8 // pl
"Usu&nacute; konto";
#elif L==9 // pt
"Remover conta";
#elif L==10 // tr
"Remove account"; // Çeviri lazim!
#endif
const char *Txt_Remove_all_students =
#if L==1 // ca
"Eliminar tots estudiants";
@ -35358,29 +34990,6 @@ const char *Txt_Remove_link =
"Remove link"; // Çeviri lazim!
#endif
const char *Txt_Remove_logo =
#if L==1 // ca
"Eliminar logo";
#elif L==2 // de
"Entfernen Logo";
#elif L==3 // en
"Remove logo";
#elif L==4 // es
"Eliminar logo";
#elif L==5 // fr
"Supprimer logo";
#elif L==6 // gn
"Eliminar logo"; // Okoteve traducción
#elif L==7 // it
"Rimuovere logo";
#elif L==8 // pl
"Usu&nacute; logo";
#elif L==9 // pt
"Remover logotipo";
#elif L==10 // tr
"Remove logo"; // Çeviri lazim!
#endif
const char *Txt_Remove_match = // of a game
#if L==1 // ca
"Eliminar partida";
@ -36315,29 +35924,6 @@ const char *Txt_Required_reading =
"Required reading"; // Çeviri lazim!
#endif
const char *Txt_Reset =
#if L==1 // ca
"Posar a zero";
#elif L==2 // de
"Reset";
#elif L==3 // en
"Reset";
#elif L==4 // es
"Poner a cero";
#elif L==5 // fr
"Reset";
#elif L==6 // gn
"Poner a cero"; // Okoteve traducción
#elif L==7 // it
"Resettare";
#elif L==8 // pl
"Reset";
#elif L==9 // pt
"Reiniciar";
#elif L==10 // tr
"Reset"; // Çeviri lazim!
#endif
const char *Txt_Reset_survey =
#if L==1 // ca
"Posar enquesta a zero";
@ -42557,29 +42143,6 @@ const char *Txt_Search =
"Arama";
#endif
const char *Txt_Search_courses =
#if L==1 // ca
"Cercar assignatures";
#elif L==2 // de
"Suchen Kursen";
#elif L==3 // en
"Search courses";
#elif L==4 // es
"Buscar asignaturas";
#elif L==5 // fr
"Chercher mati&egrave;res";
#elif L==6 // gn
"Heka mbo'esyry";
#elif L==7 // it
"Cercare corsi";
#elif L==8 // pl
"Szukaj kurs&oacute;w";
#elif L==9 // pt
"Procurar disciplinas";
#elif L==10 // tr
"Search courses"; // Çeviri lazim!
#endif
const char *Txt_See_full_notice =
#if L==1 // ca
"Veure avís complet";
@ -44107,29 +43670,6 @@ const char *Txt_Show =
"Show"; // Çeviri lazim!
#endif
const char *Txt_Show_all_data_in_a_table =
#if L==1 // ca
"Mostrar totes les dades en una taula";
#elif L==2 // de
"Alle Daten in einer Tabelle anzeigen";
#elif L==3 // en
"Show all data in a table";
#elif L==4 // es
"Mostrar todos los datos en una tabla";
#elif L==5 // fr
"Voir toutes les donn&eacute;es dans une table";
#elif L==6 // gn
"Mostrar todos los datos en una tabla"; // Okoteve traducción
#elif L==7 // it
"Visualizza tutti i dati in una tabella";
#elif L==8 // pl
"Poka&zdot; wszystkie dane w tabeli";
#elif L==9 // pt
"Mostrar todos os dados em uma tabela";
#elif L==10 // tr
"Show all data in a table"; // Çeviri lazim!
#endif
const char *Txt_Show_all_files =
#if L==1 // ca
"Mostrar tots els arxius";
@ -57934,29 +57474,6 @@ const char *Txt_Upload_files_QUESTION =
"Upload files?"; // Çeviri lazim!
#endif
const char *Txt_Upload_logo =
#if L==1 // ca
"Enviar logo";
#elif L==2 // de
"Upload Logo";
#elif L==3 // en
"Upload logo";
#elif L==4 // es
"Subir logo";
#elif L==5 // fr
"T&eacute;l&eacute;charger logo";
#elif L==6 // gn
"Subir logo"; // Okoteve traducción
#elif L==7 // it
"Caricare logo";
#elif L==8 // pl
"Prze&sacute;lij logo";
#elif L==9 // pt
"Fazer upload de logotipo";
#elif L==10 // tr
"Upload logo"; // Çeviri lazim!
#endif
const char *Txt_Upload_my_picture =
#if L==1 // ca
"Pujar la meva fotografia";
@ -59093,29 +58610,6 @@ const char *Txt_View_exam =
"View exam"; // Çeviri lazim!
#endif
const char *Txt_View_exams =
#if L==1 // ca
"Veure ex&agrave;mens";
#elif L==2 // de
"Anzeigen Pr&uuml;fung";
#elif L==3 // en
"View exams";
#elif L==4 // es
"Ver ex&aacute;menes";
#elif L==5 // fr
"Voir examens";
#elif L==6 // gn
"Ver ex&aacute;menes"; // Okoteve traducción
#elif L==7 // it
"Vedi esame";
#elif L==8 // pl
"Zobacz egzamin&oacute;w";
#elif L==9 // pt
"Ver exames";
#elif L==10 // tr
"View exams"; // Çeviri lazim!
#endif
const char *Txt_View_game =
#if L==1 // ca
"Veure joc";
@ -59139,29 +58633,6 @@ const char *Txt_View_game =
"View game"; // Çeviri lazim!
#endif
const char *Txt_View_games =
#if L==1 // ca
"Veure jocs";
#elif L==2 // de
"Anzeigen Spiele";
#elif L==3 // en
"View games";
#elif L==4 // es
"Ver juegos";
#elif L==5 // fr
"Voir jeux";
#elif L==6 // gn
"Ver juegos"; // Okoteve traducción
#elif L==7 // it
"Vedi giochi";
#elif L==8 // pl
"Zobacz gier";
#elif L==9 // pt
"Ver jogos";
#elif L==10 // tr
"View games"; // Çeviri lazim!
#endif
const char *Txt_View_in_a_new_window =
#if L==1 // ca
"Mostrar en una finestra nova";
@ -59231,29 +58702,6 @@ const char *Txt_View_projects =
"View projects"; // Çeviri lazim!
#endif
const char *Txt_View_record_and_office_hours =
#if L==1 // ca
"Veure fitxa i horari de tutories";
#elif L==2 // de
"Anzeigen profil und Gesch&auml;ftszeiten";
#elif L==3 // en
"View record and tutoring hours";
#elif L==4 // es
"Ver ficha y horario de tutor&iacute;as";
#elif L==5 // fr
"Voir carte et heures de tuteur";
#elif L==6 // gn
"Ver ficha y horario de tutor&iacute;as"; // Okoteve traducción
#elif L==7 // it
"Vedi scheda e orario di tutoraggi";
#elif L==8 // pl
"Zobacz rekord i godziny pracy";
#elif L==9 // pt
"Ver cart&atilde;o e hor&aacute;rio de tutor";
#elif L==10 // tr
"View record and tutoring hours"; // Çeviri lazim!
#endif
const char *Txt_View_record_for_this_course =
#if L==1 // ca
"Veure fitxa en aquesta assignatura";
@ -59369,29 +58817,6 @@ const char *Txt_View_test =
"View test"; // Çeviri lazim!
#endif
const char *Txt_View_tests =
#if L==1 // ca
"Veure tests";
#elif L==2 // de
"Siehe Tests";
#elif L==3 // en
"View tests";
#elif L==4 // es
"Ver test";
#elif L==5 // fr
"Voir tests";
#elif L==6 // gn
"Ver test"; // Okoteve traducción
#elif L==7 // it
"Vedi test";
#elif L==8 // pl
"Wiadomo&sacute;ci test";
#elif L==9 // pt
"Ver testes";
#elif L==10 // tr
"View tests"; // Çeviri lazim!
#endif
const char *Txt_View_homework =
#if L==1 // ca
"Veure treballs";

File diff suppressed because it is too large Load Diff

View File

@ -2093,13 +2093,10 @@ void Usr_ShowFormsLogoutAndRole (void)
static void Usr_PutLinkToLogOut (__attribute__((unused)) void *Args)
{
extern const char *Txt_Log_out;
/***** Put form to log out *****/
Lay_PutContextualLinkOnlyIcon (ActLogOut,NULL,
NULL,NULL,
"sign-out-alt.svg",Ico_RED,
Txt_Log_out);
Act_GetActionText (ActLogOut));
}
/*****************************************************************************/
@ -5891,32 +5888,26 @@ static void Usr_PutIconToPrintTchs (void)
static void Usr_PutIconToShowGstsAllData (void)
{
extern const char *Txt_Show_all_data_in_a_table;
Lay_PutContextualLinkOnlyIcon (ActLstGstAll,NULL,
Usr_ShowGstsAllDataParams,NULL,
"table.svg",Ico_BLACK,
Txt_Show_all_data_in_a_table);
Act_GetActionText (ActLstGstAll));
}
static void Usr_PutIconToShowStdsAllData (void)
{
extern const char *Txt_Show_all_data_in_a_table;
Lay_PutContextualLinkOnlyIcon (ActLstStdAll,NULL,
Usr_ShowStdsAllDataParams,NULL,
"table.svg",Ico_BLACK,
Txt_Show_all_data_in_a_table);
Act_GetActionText (ActLstStdAll));
}
static void Usr_PutIconToShowTchsAllData (void)
{
extern const char *Txt_Show_all_data_in_a_table;
Lay_PutContextualLinkOnlyIcon (ActLstTchAll,NULL,
Usr_ShowTchsAllDataParams,NULL,
"table.svg",Ico_BLACK,
Txt_Show_all_data_in_a_table);
Act_GetActionText (ActLstTchAll));
}
static void Usr_ShowGstsAllDataParams (__attribute__((unused)) void *Args)