Version 18.33

This commit is contained in:
Antonio Cañas Vargas 2019-01-12 19:46:33 +01:00
parent 0e917c6244
commit e5721c4560
40 changed files with 162 additions and 416 deletions

View File

@ -246,17 +246,6 @@ a:hover /* Default ==> underlined */
display:inline;
padding:0 10px;
}
@media only screen and (max-width: 1024px)
{ /* For mobile phones and tablets */
#login_txt
{
display:none;
}
}
.WHITE_HEAD {color:#E0E0E0; font-size:12pt; white-space:nowrap;}
.GREY_HEAD {color:#E0E0E0; font-size:12pt; white-space:nowrap;}
.BLUE_HEAD {color:white; font-size:12pt; white-space:nowrap;}
.YELLOW_HEAD {color:#B3B0B3; font-size:12pt; white-space:nowrap;}
/************************ Layout (second heading row) ************************/
#head_row_2
@ -1564,13 +1553,11 @@ a:hover /* Default ==> underlined */
}
/*********************************** Icons ***********************************/
.ICO20x15 {width:20px; height:15px; vertical-align:middle;}
.ICOx16 { height:16px; vertical-align:middle;}
.ICOx16 {height:16px; vertical-align:middle;}
.ICO16x16 {width:16px; height:16px; vertical-align:middle;}
.ICO20x20 {width:20px; height:20px; vertical-align:middle;}
.ICO25x25 {width:25px; height:25px; vertical-align:middle;}
.ICOx25 { height:25px; vertical-align:middle;}
.ICO40x25 {width:40px; height:25px; vertical-align:middle;}
.ICOx25 {height:25px; vertical-align:middle; margin:0 auto;}
.ICO40x40 {width:40px; height:40px; vertical-align:middle;}
.ICO64x64 {width:64px; height:64px; vertical-align:middle;}
.ICO160x160 {width:160px; height:160px; vertical-align:middle;}
@ -1956,15 +1943,15 @@ a:hover img.CENTRE_PHOTO_SHOW
.USR_LIST_NUM_N {color:#404040; font-size:15pt; font-weight:bold;}
/*****************************************************************************/
.WHITE_TITLE {color:#505050; font-size:18pt;}
.WHITE_TITLE {color:#505050; font-size:18pt;}
.GREY_TITLE {color:#505050; font-size:18pt;}
.BLUE_TITLE {color:#4D88A1; font-size:18pt;}
.YELLOW_TITLE {color:#BD4815; font-size:18pt;}
.YELLOW_TITLE {color:#BD4815; font-size:18pt;}
/*********************** Icon and checkbox highlighting **********************/
.ICO_HIDDEN
{
opacity:0.2;
opacity:0.3;
}
.ICO_HIGHLIGHT, .CHECKBOX_UNCHECKED
{

View File

@ -0,0 +1 @@
<svg aria-hidden="true" data-prefix="fas" data-icon="arrow-right" class="svg-inline--fa fa-arrow-right fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="#246600" d="M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"></path></svg>

After

Width:  |  Height:  |  Size: 473 B

1
icon/arrow-right-red.svg Normal file
View File

@ -0,0 +1 @@
<svg aria-hidden="true" data-prefix="fas" data-icon="arrow-right" class="svg-inline--fa fa-arrow-right fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="#660000" d="M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"></path></svg>

After

Width:  |  Height:  |  Size: 473 B

1
icon/check-square.svg Normal file
View File

@ -0,0 +1 @@
<svg aria-hidden="true" data-prefix="far" data-icon="check-square" class="svg-inline--fa fa-check-square fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="#404040" d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"></path></svg>

After

Width:  |  Height:  |  Size: 642 B

1
icon/square.svg Normal file
View File

@ -0,0 +1 @@
<svg aria-hidden="true" data-prefix="far" data-icon="square" class="svg-inline--fa fa-square fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="#404040" d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"></path></svg>

After

Width:  |  Height:  |  Size: 402 B

1
icon/unlock.svg Normal file
View File

@ -0,0 +1 @@
<svg aria-hidden="true" data-prefix="fas" data-icon="unlock" class="svg-inline--fa fa-unlock fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="#246600" d="M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"></path></svg>

After

Width:  |  Height:  |  Size: 485 B

View File

@ -499,7 +499,8 @@ static void ID_PutLinkToConfirmID (struct UsrData *UsrDat,unsigned NumID,
/***** Put link *****/
Frm_LinkFormSubmit (Txt_Confirm_ID,The_ClassFormBold[Gbl.Prefs.Theme],NULL);
Ico_PutIconWithText ("check.svg",Txt_Confirm_ID,Txt_Confirm_ID);
Ico_PutIconTextLink ("check.svg",
Txt_Confirm_ID);
fprintf (Gbl.F.Out,"</a>");
/***** End form *****/

View File

@ -99,7 +99,6 @@ void Acc_PutLinkToCreateAccount (void)
Lay_PutContextualLinkIconText (ActFrmMyAcc,NULL,NULL,
"at.svg",
Txt_Create_account,
Txt_Create_account);
}

View File

@ -218,7 +218,7 @@ static void Agd_ShowFormToSelPrivatPublicEvents (void)
static const char *Image[2] =
{
"lock.svg", // Agd_PRIVAT_EVENTS
"lock-open.svg", // Agd_PUBLIC_EVENTS
"unlock.svg", // Agd_PUBLIC_EVENTS
};
fprintf (Gbl.F.Out,"<div class=\"PREF_CONTAINER\">");
@ -846,7 +846,7 @@ static void Agd_PutFormsToRemEditOneEvent (struct AgendaEvent *AgdEvent)
if (AgdEvent->Public)
Lay_PutContextualLinkOnlyIcon (ActPrvEvtMyAgd,NULL,
Agd_PutCurrentParamsMyAgenda,
"lock-open.svg",
"unlock.svg",
Txt_Event_visible_to_the_users_of_your_courses_click_to_make_it_private);
else
Lay_PutContextualLinkOnlyIcon (ActPubEvtMyAgd,NULL,

View File

@ -360,7 +360,6 @@ static void Ann_DrawAnAnnouncement (long AnnCod,Ann_Status_t Status,
/***** Put form to mark announcement as seen *****/
Lay_PutContextualLinkIconText (ActAnnSee,NULL,Ann_PutParams,
"trash.svg",
Txt_Do_not_show_again,
Txt_Do_not_show_again);
fprintf (Gbl.F.Out,"</div>");

View File

@ -537,7 +537,6 @@ static void Att_PutFormToListMyAttendance (void)
Lay_PutContextualLinkIconText (ActSeeLstMyAtt,NULL,NULL,
"list-ol.svg",
Txt_Attendance_list,
Txt_Attendance_list);
}
@ -552,7 +551,6 @@ static void Att_PutFormToListStdsAttendance (void)
Lay_PutContextualLinkIconText (ActReqLstStdAtt,NULL,
Att_PutFormToListStdsParams,
"list-ol.svg",
Txt_Attendance_list,
Txt_Attendance_list);
}
@ -2094,14 +2092,15 @@ static void Att_WriteRowStdToCallTheRoll (unsigned NumStd,
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"BT%u\">"
"<label for=\"Std%u\">"
"<img src=\"%s/%s16x16.gif\""
" alt=\"%s\" title=\"%s\" class=\"ICO20x20\" />"
"<img src=\"%s/%s\""
" alt=\"%s\" title=\"%s\""
" class=\"CONTEXT_ICO_16x16\" />"
"</label>"
"</td>",
Gbl.RowEvenOdd,NumStd,
Gbl.Prefs.URLIcons,
Present ? "check" :
"check-empty",
Present ? "check-square.svg" :
"square.svg",
Present ? Txt_Present :
Txt_Absent,
Present ? Txt_Present :
@ -3168,7 +3167,6 @@ static void Att_ListEventsToSelect (Att_TypeOfView_t TypeOfView)
extern const char *Txt_Event;
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_Today;
extern const char *Txt_Update_attendance_according_to_selected_events;
extern const char *Txt_Update_attendance;
unsigned UniqueId;
unsigned NumAttEvent;
@ -3259,11 +3257,10 @@ static void Att_ListEventsToSelect (Att_TypeOfView_t TypeOfView)
{
fprintf (Gbl.F.Out,"<tr>"
"<td colspan=\"4\" class=\"CENTER_MIDDLE\">");
Frm_LinkFormSubmitAnimated (Txt_Update_attendance_according_to_selected_events,
Frm_LinkFormSubmitAnimated (Txt_Update_attendance,
The_ClassFormBold[Gbl.Prefs.Theme],
NULL);
Ico_PutCalculateIconWithText (Txt_Update_attendance_according_to_selected_events,
Txt_Update_attendance);
Ico_PutCalculateIconWithText (Txt_Update_attendance);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
}
@ -3496,13 +3493,14 @@ static void Att_WriteRowStdSeveralAttEvents (unsigned NumStd,struct UsrData *Usr
Present = Att_CheckIfUsrIsPresentInAttEvent (Gbl.AttEvents.Lst[NumAttEvent].AttCod,UsrDat->UsrCod);
fprintf (Gbl.F.Out,"<td class=\"BM%u\">"
"<img src=\"%s/%s16x16.gif\""
" alt=\"%s\" title=\"%s\" class=\"ICO20x20\" />"
"<img src=\"%s/%s\""
" alt=\"%s\" title=\"%s\""
" class=\"CONTEXT_ICO_16X16\" />"
"</td>",
Gbl.RowEvenOdd,
Gbl.Prefs.URLIcons,
Present ? "check" :
"check-empty",
Present ? "check-square.svg" :
"square.svg",
Present ? Txt_Present :
Txt_Absent,
Present ? Txt_Present :
@ -3658,8 +3656,9 @@ static void Att_ListAttEventsForAStd (unsigned NumStd,struct UsrData *UsrDat)
"%u:"
"</td>"
"<td class=\"DAT LEFT_MIDDLE COLOR%u\">"
"<img src=\"%s/%s16x16.gif\""
" alt=\"%s\" title=\"%s\" class=\"ICO20x20\" />"
"<img src=\"%s/%s\""
" alt=\"%s\" title=\"%s\""
" class=\"CONTEXT_ICO_16x16\" />"
"<span id=\"att_date_start_%u\"></span> %s"
"<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('att_date_start_%u',%ld,"
@ -3672,8 +3671,8 @@ static void Att_ListAttEventsForAStd (unsigned NumStd,struct UsrData *UsrDat)
NumAttEvent + 1,
Gbl.RowEvenOdd,
Gbl.Prefs.URLIcons,
Present ? "check" :
"check-empty",
Present ? "check-square.svg" :
"square.svg",
Present ? Txt_Present :
Txt_Absent,
Present ? Txt_Present :

View File

@ -253,7 +253,6 @@
// pero si el usuario ya existe en la asignatura, debe salir siempre el rol actual
// (para no cambiarlo sin querer si lo único que queremos hacer es cambiar la inscripción a grupos)
// TODO: No se ve bien la lista de usuarios conectados (en Usuarios > Conectados). El ancho de la tabla no es correcto debido a la fecha demasiado ancha (por ej. los miércoles)
// TODO: Fix bug: Un superusuario se apunta a grupos, cuando pulsa "Cambiar de grupos" no ocurre nada.
// TODO: "Administrar varios profesores no editores" -> debería poder hacerlo un profesor (Perico)
@ -348,6 +347,10 @@ Buenos d
// TODO: Chequear todas las directivas <label>
// TODO: Fix bug: Al mostrar una orla con todos los profesores de SWAD, se muestran primeros los profesores y luego los no editores (repetidos algunos)
// TODO: Chequear todos los iconos .gif y .png que restan, concretamente los de file_browser y los de redes sociales
/*****************************************************************************/
/****************************** Public constants *****************************/
/*****************************************************************************/
@ -367,10 +370,20 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.32.1 (2019-01-12)"
#define CSS_FILE "swad18.32.css"
#define Log_PLATFORM_VERSION "SWAD 18.33 (2019-01-12)"
#define CSS_FILE "swad18.33.css"
#define JS_FILE "swad18.32.1.js"
/*
Version 18.33: Jan 11, 2019 Code refactoring related to icons. (239066 lines)
Copy the following icon to icon public directory:
sudo cp icon/square.svg /var/www/html/swad/icon/
sudo cp icon/check-square.svg /var/www/html/swad/icon/
Version 18.32.2: Jan 11, 2019 Changes in open lock icon.
Code refactoring related to icons. (239308 lines)
Copy the following icon to icon public directory:
sudo cp icon/unlock.svg /var/www/html/swad/icon/
Version 18.32.1: Jan 12, 2019 Fixed bug in JavaScript related to writing dates. (239320 lines)
Version 18.32: Jan 12, 2019 Code refactoring related to icons. (239311 lines)
Version 18.31.6: Jan 11, 2019 Fixed bug in user administration. (239587 lines)

View File

@ -3389,7 +3389,6 @@ void Crs_PutLinkToRemoveOldCrss (void)
/***** Put form to remove old courses *****/
Lay_PutContextualLinkIconText (ActReqRemOldCrs,NULL,NULL,
"trash.svg",
Txt_Eliminate_old_courses,
Txt_Eliminate_old_courses);
}

View File

@ -122,7 +122,6 @@ void Dup_PutLinkToListDupUsrs (void)
/***** Put form to remove old users *****/
Lay_PutContextualLinkIconText (ActLstDupUsr,NULL,NULL,
"user-friends.svg",
Txt_Duplicate_USERS,
Txt_Duplicate_USERS);
}

View File

@ -200,7 +200,6 @@ void Enr_PutLinkToRequestSignUp (void)
/***** Show the form *****/
Lay_PutContextualLinkIconText (ActReqSignUp,NULL,NULL,
"hand-point-up.svg",
Txt_Sign_up,
Txt_Sign_up);
}
@ -782,7 +781,6 @@ void Enr_PutLinkToRemOldUsrs (void)
/***** Put form to remove old users *****/
Lay_PutContextualLinkIconText (ActReqRemOldUsr,NULL,NULL,
"trash.svg",
Txt_Eliminate_old_users,
Txt_Eliminate_old_users);
}
@ -1864,7 +1862,6 @@ static void Enr_PutLinkToRemAllStdsThisCrs (void)
/***** Put form to remove all the students in the current course *****/
Lay_PutContextualLinkIconText (ActReqRemAllStdCrs,NULL,NULL,
"trash.svg",
Txt_Remove_all_students,
Txt_Remove_all_students);
}
@ -3090,7 +3087,6 @@ void Enr_PutLinkToAdminOneUsr (Act_Action_t NextAction)
Lay_PutContextualLinkIconText (NextAction,NULL,NULL,
"user-cog.svg",
TitleText,
TitleText);
}
@ -3127,7 +3123,6 @@ void Enr_PutLinkToAdminSeveralUsrs (Rol_Role_t Role)
}
Lay_PutContextualLinkIconText (NextAction,NULL,NULL,
"users-cog.svg",
TitleText,
TitleText);
}

View File

@ -6402,7 +6402,7 @@ static void Brw_PutIconFile (unsigned Size,Brw_FileType_t FileType,const char *F
fprintf (Gbl.F.Out,"xxx%ux%u.gif\" alt=\"\"",
Size,Size);
}
fprintf (Gbl.F.Out,(Size == 16) ? " class=\"ICO20x20\"/>" :
fprintf (Gbl.F.Out,(Size == 16) ? " class=\"CONTEXT_ICO_16x16\"/>" :
" class=\"ICO40x40\"/>");
}
@ -6500,16 +6500,11 @@ static void Brw_WriteFileName (unsigned Level,bool IsPublic,
/* Put icon to make public/private file */
if (IsPublic)
fprintf (Gbl.F.Out,"&nbsp;<img src=\"%s/lock-open.svg\""
" alt=\"%s\" title=\"%s\""
" class=\"ICO16x16\" />",
Gbl.Prefs.URLIcons,
Txt_Public_open_educational_resource_OER_for_everyone,
Txt_Public_open_educational_resource_OER_for_everyone);
Ico_PutIconOff ("unlock.svg",
Txt_Public_open_educational_resource_OER_for_everyone);
fprintf (Gbl.F.Out,"</div>");
fprintf (Gbl.F.Out,"</td>");
fprintf (Gbl.F.Out,"</div>"
"</td>");
}
}
@ -6573,46 +6568,35 @@ static void Brw_WriteDatesAssignment (void)
static unsigned UniqueId = 0;
fprintf (Gbl.F.Out,"<td colspan=\"2\""
" class=\"ASG_LST_DATE_GREEN RIGHT_MIDDLE COLOR%u\">",
Gbl.RowEvenOdd);
" class=\"%s RIGHT_MIDDLE COLOR%u\">",
Gbl.FileBrowser.Asg.Open ? "ASG_LST_DATE_GREEN" :
"ASG_LST_DATE_RED",
Gbl.RowEvenOdd);
if (Gbl.FileBrowser.Asg.AsgCod > 0)
{
UniqueId++;
/***** Write start date *****/
fprintf (Gbl.F.Out,"<span id=\"asg_start_date_%u\" class=\"%s RIGHT_MIDDLE\">",
UniqueId,
Gbl.FileBrowser.Asg.Open ? "ASG_LST_DATE_GREEN" :
"ASG_LST_DATE_RED");
fprintf (Gbl.F.Out,"<script type=\"text/javascript\">"
/***** Write start and end dates *****/
fprintf (Gbl.F.Out,"<span id=\"asg_start_date_%u\">"
"<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('asg_start_date_%u',%ld,"
"%u,',&nbsp;','%s',true,false,0x7);"
"</script>",
UniqueId,(long) Gbl.FileBrowser.Asg.TimeUTC[Dat_START_TIME],
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
fprintf (Gbl.F.Out,"</span>");
/***** Arrow *****/
fprintf (Gbl.F.Out,"<img src=\"%s/arrow%s16x12.gif\""
" alt=\"\" title=\"\""
" class=\"ICO20x15\" />",
Gbl.Prefs.URLIcons,
Gbl.FileBrowser.Asg.Open ? "green" :
"red");
/***** Write end date *****/
fprintf (Gbl.F.Out,"<span id=\"asg_end_date_%u\" class=\"%s RIGHT_MIDDLE\">",
UniqueId,
Gbl.FileBrowser.Asg.Open ? "ASG_LST_DATE_GREEN" :
"ASG_LST_DATE_RED");
fprintf (Gbl.F.Out,"<script type=\"text/javascript\">"
"</script>"
"</span>"
"&rarr;"
"<span id=\"asg_end_date_%u\">"
"<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('asg_end_date_%u',%ld,"
"%u,',&nbsp;','%s',false,false,0x7);"
"</script>",
"</script>"
"</span>",
UniqueId,
UniqueId,(long) Gbl.FileBrowser.Asg.TimeUTC[Dat_START_TIME],
(unsigned) Gbl.Prefs.DateFormat,Txt_Today,
UniqueId,
UniqueId,(long) Gbl.FileBrowser.Asg.TimeUTC[Dat_END_TIME],
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
fprintf (Gbl.F.Out,"</span>");
}
else
fprintf (Gbl.F.Out,"&nbsp;(%s)",
@ -12500,7 +12484,6 @@ static void Brw_PutLinkToAskRemOldFiles (void)
Lay_PutContextualLinkIconText (ActReqRemOldBrf,NULL,
Brw_PutHiddenParamFullTreeIfSelected,
"trash.svg",
Txt_Remove_old_files,
Txt_Remove_old_files);
}

View File

@ -101,7 +101,6 @@ void Fol_PutLinkWhoToFollow (void)
Lay_PutContextualLinkIconText (ActSeeSocPrf,NULL,NULL,
"user-plus.svg",
Txt_Who_to_follow,
Txt_Who_to_follow);
}

View File

@ -367,7 +367,6 @@ void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction,
extern const char *Hlp_USERS_Groups;
extern const char *The_ClassFormBold[The_NUM_THEMES];
extern const char *Txt_Groups;
extern const char *Txt_Update_users_according_to_selected_groups;
extern const char *Txt_Update_users;
unsigned NumGrpTyp;
bool ICanEdit;
@ -413,11 +412,10 @@ void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction,
/***** Submit button *****/
fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\""
" style=\"padding-top:12px;\">");
Frm_LinkFormSubmitAnimated (Txt_Update_users_according_to_selected_groups,
Frm_LinkFormSubmitAnimated (Txt_Update_users,
The_ClassFormBold[Gbl.Prefs.Theme],
"CopyMessageToHiddenFields()");
Ico_PutCalculateIconWithText (Txt_Update_users_according_to_selected_groups,
Txt_Update_users);
Ico_PutCalculateIconWithText (Txt_Update_users);
fprintf (Gbl.F.Out,"</div>");
/***** End form *****/
@ -1385,7 +1383,7 @@ static void Grp_ListGroupTypesForEdition (void)
"<td class=\"LEFT_MIDDLE\" style=\"width:16px;\">"
"<img src=\"%s/clock.svg\""
" alt=\"%s\" title=\"%s\""
" class=\"%sICO16x16\" />"
" class=\"%sCONTEXT_ICO_16x16\" />"
"</td>"
"<td class=\"LEFT_MIDDLE\">",
Gbl.Prefs.URLIcons,
@ -1545,7 +1543,7 @@ static void Grp_ListGroupsForEdition (void)
Grp->Open ? Txt_Group_X_open_click_to_close_it :
Txt_Group_X_closed_click_to_open_it,
Grp->GrpName);
Ico_PutIconLink (Grp->Open ? "lock-open.svg" :
Ico_PutIconLink (Grp->Open ? "unlock.svg" :
"lock.svg",
Gbl.Title);
Frm_EndForm ();
@ -2454,18 +2452,14 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight)
Grp->Open ? Txt_Group_X_open :
Txt_Group_X_closed,
Grp->GrpName);
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE");
fprintf (Gbl.F.Out,"<td class=\"BM");
if (Highlight)
fprintf (Gbl.F.Out," LIGHT_BLUE");
fprintf (Gbl.F.Out,"\" style=\"width:20px;\">"
"<img src=\"%s/%s\""
" alt=\"%s\" title=\"%s\""
" class=\"ICO_HIDDEN ICOx16\" />"
"</td>",
Gbl.Prefs.URLIcons,
Grp->Open ? "lock-open.svg" :
"lock.svg",
Gbl.Title,Gbl.Title);
fprintf (Gbl.F.Out,"\" >");
Ico_PutIconOff (Grp->Open ? "unlock.svg" :
"lock.svg",
Gbl.Title);
fprintf (Gbl.F.Out,"</td>");
/***** Group name *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE");
@ -2605,7 +2599,7 @@ static void Grp_PutFormToCreateGroupType (void)
"<td class=\"LEFT_MIDDLE\" style=\"width:20px;\">"
"<img src=\"%s/clock.svg\""
" alt=\"%s\" title=\"%s\""
" class=\"%sICO16x16\" />"
" class=\"%sCONTEXT_ICO_16x16\" />"
"</td>"
"<td class=\"LEFT_MIDDLE\">",
Gbl.Prefs.URLIcons,
@ -2669,25 +2663,19 @@ static void Grp_PutFormToCreateGroup (void)
/***** Write heading *****/
Grp_WriteHeadingGroups ();
/***** Put disabled icons to open group and archive zone *****/
/***** Empty column to remove *****/
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"BM\"></td>"
"<td class=\"BM\">"
"<img src=\"%s/lock.svg\""
" alt=\"%s\" title=\"%s\""
" class=\"ICO_HIDDEN ICOx16\" />"
"</td>"
"<td class=\"BM\">"
"<img src=\"%s/folder-red.svg\""
" alt=\"%s\" title=\"%s\""
" class=\"ICO_HIDDEN ICOx16\" />"
"</td>",
Gbl.Prefs.URLIcons,
Txt_Group_closed,
Txt_Group_closed,
Gbl.Prefs.URLIcons,
Txt_File_zones_disabled,
Txt_File_zones_disabled);
"<td class=\"BM\"></td>");
/***** Disabled icon to open group *****/
fprintf (Gbl.F.Out,"<td class=\"BM\">");
Ico_PutIconOff ("lock.svg",Txt_Group_closed);
fprintf (Gbl.F.Out,"</td>");
/***** Disabled icon for archive zone *****/
fprintf (Gbl.F.Out,"<td class=\"BM\">");
Ico_PutIconOff ("folder-red.svg",Txt_File_zones_disabled);
fprintf (Gbl.F.Out,"</td>");
/***** Group type *****/
/* Start selector */

View File

@ -311,15 +311,9 @@ void Ico_PutDivIcon (const char *DivClass,const char *Icon,const char *Title)
void Ico_PutDivIconLink (const char *DivClass,const char *Icon,const char *Title)
{
fprintf (Gbl.F.Out,"<div class=\"%s\">"
"<input type=\"image\""
" src=\"%s/%s\""
" alt=\"%s\" title=\"%s\""
" class=\"CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16\" />"
"</div>",
DivClass,
Gbl.Prefs.URLIcons,Icon,
Title,Title);
fprintf (Gbl.F.Out,"<div class=\"%s\">",DivClass);
Ico_PutIconLink (Icon,Title);
fprintf (Gbl.F.Out,"</div>");
}
/*****************************************************************************/
@ -335,6 +329,22 @@ void Ico_PutIconLink (const char *Icon,const char *Title)
Title,Title);
}
/*****************************************************************************/
/******************* Show an icon with a link (with text) ********************/
/*****************************************************************************/
void Ico_PutIconTextLink (const char *Icon,const char *Text)
{
/***** Print icon and optional text *****/
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_OPT ICO_HIGHLIGHT\">"
"<img src=\"%s/%s\" alt=\"%s\" title=\"%s\""
" class=\"CONTEXT_ICO_x16\" />"
"&nbsp;%s"
"</div>",
Gbl.Prefs.URLIcons,Icon,Text,Text,
Text);
}
/*****************************************************************************/
/************************** Show a preference selector ***********************/
/*****************************************************************************/
@ -343,8 +353,7 @@ void Ico_PutPrefIconLink (const char *Icon,const char *Title)
{
fprintf (Gbl.F.Out,"<input type=\"image\" src=\"%s/%s\""
" alt=\"%s\" title=\"%s\""
" class=\"ICO_HIGHLIGHT ICOx25\""
" style=\"margin:0 auto;\"\" />",
" class=\"ICO_HIGHLIGHT ICOx25\" />",
Gbl.Prefs.URLIcons,Icon,
Title,Title);
}
@ -353,29 +362,11 @@ void Ico_PutPrefIconLink (const char *Icon,const char *Title)
/********************** Put an inactive/disabled icon ************************/
/*****************************************************************************/
void Ico_PutIconOff (const char *Icon,const char *Alt)
void Ico_PutIconOff (const char *Icon,const char *Title)
{
fprintf (Gbl.F.Out,"<img src=\"%s/%s\" alt=\"%s\" title=\"%s\""
" class=\"CONTEXT_OPT ICO_HIDDEN CONTEXT_ICO_16x16\" />",
Gbl.Prefs.URLIcons,Icon,Alt,Alt);
}
/*****************************************************************************/
/**************** Put a icon with a text to submit a form ********************/
/*****************************************************************************/
void Ico_PutIconWithText (const char *Icon,const char *Alt,const char *Text)
{
/***** Print icon and optional text *****/
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_OPT ICO_HIGHLIGHT\">"
"<img src=\"%s/%s\" alt=\"%s\" title=\"%s\""
" class=\"CONTEXT_ICO_x16\" />",
Gbl.Prefs.URLIcons,Icon,Alt,Text ? Text :
Alt);
if (Text)
if (Text[0])
fprintf (Gbl.F.Out,"&nbsp;%s",Text);
fprintf (Gbl.F.Out,"</div>");
Gbl.Prefs.URLIcons,Icon,Title,Title);
}
/*****************************************************************************/
@ -383,7 +374,7 @@ void Ico_PutIconWithText (const char *Icon,const char *Alt,const char *Text)
/********** When clicked, the icon will be replaced by an animation **********/
/*****************************************************************************/
void Ico_PutCalculateIcon (const char *Alt)
void Ico_PutCalculateIcon (const char *Title)
{
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_OPT ICO_HIGHLIGHT\">"
"<img id=\"update_%d\" src=\"%s/recycle16x16.gif\"" // TODO: change name and resolution to refresh64x64.png
@ -394,8 +385,8 @@ void Ico_PutCalculateIcon (const char *Alt)
" class=\"CONTEXT_ICO_16x16\" style=\"display:none;\" />" // Animated icon hidden
"</div>"
"</a>",
Gbl.Form.Num,Gbl.Prefs.URLIcons,Alt,Alt,
Gbl.Form.Num,Gbl.Prefs.URLIcons,Alt,Alt);
Gbl.Form.Num,Gbl.Prefs.URLIcons,Title,Title,
Gbl.Form.Num,Gbl.Prefs.URLIcons,Title,Title);
}
/*****************************************************************************/
@ -403,7 +394,7 @@ void Ico_PutCalculateIcon (const char *Alt)
/********** When clicked, the icon will be replaced by an animation **********/
/*****************************************************************************/
void Ico_PutCalculateIconWithText (const char *Alt,const char *Text)
void Ico_PutCalculateIconWithText (const char *Text)
{
fprintf (Gbl.F.Out,"<div class=\"ICO_HIGHLIGHT\""
" style=\"margin:0 6px 0 0; display:inline;\">"
@ -416,8 +407,8 @@ void Ico_PutCalculateIconWithText (const char *Alt,const char *Text)
"&nbsp;%s"
"</div>"
"</a>",
Gbl.Form.Num,Gbl.Prefs.URLIcons,Alt,Text,
Gbl.Form.Num,Gbl.Prefs.URLIcons,Alt,Text,
Gbl.Form.Num,Gbl.Prefs.URLIcons,Text,Text,
Gbl.Form.Num,Gbl.Prefs.URLIcons,Text,Text,
Text);
}

View File

@ -69,12 +69,12 @@ void Ico_PutContextualIconToPrint (Act_Action_t NextAction,void (*FuncParams) ()
void Ico_PutDivIcon (const char *DivClass,const char *Icon,const char *Title);
void Ico_PutDivIconLink (const char *DivClass,const char *Icon,const char *Title);
void Ico_PutIconLink (const char *Icon,const char *Title);
void Ico_PutIconTextLink (const char *Icon,const char *Text);
void Ico_PutPrefIconLink (const char *Icon,const char *Title);
void Ico_PutIconOff (const char *Icon,const char *Alt);
void Ico_PutIconWithText (const char *Icon,const char *Alt,const char *Text);
void Ico_PutIconOff (const char *Icon,const char *Title);
void Ico_PutCalculateIcon (const char *Alt);
void Ico_PutCalculateIconWithText (const char *Alt,const char *Text);
void Ico_PutCalculateIcon (const char *Title);
void Ico_PutCalculateIconWithText (const char *Text);
void Ico_PutIconRemovalNotAllowed (void);
void Ico_PutIconRemove (void);

View File

@ -1050,8 +1050,7 @@ static void Inf_ShowPage (const char *URL)
/***** Link to view in a new window *****/
fprintf (Gbl.F.Out,"<a href=\"%s\" target=\"_blank\" class=\"%s\">",
URL,The_ClassFormBold[Gbl.Prefs.Theme]);
Ico_PutIconWithText ("expand-arrows-alt.svg",
Txt_View_in_a_new_window,
Ico_PutIconTextLink ("expand-arrows-alt.svg",
Txt_View_in_a_new_window);
fprintf (Gbl.F.Out,"</a>");

View File

@ -79,7 +79,6 @@ void Lan_PutLinkToChangeLanguage (void)
{
Lay_PutContextualLinkIconText (ActEdiPrf,NULL,NULL,
"globe.svg",
"Change language",
"Change language");
}

View File

@ -831,7 +831,6 @@ static void Lay_WriteScriptCustomDropzone (void)
static void Lay_WritePageTopHeading (void)
{
extern const char *The_ClassHead[The_NUM_THEMES];
extern const char *The_ClassTagline[The_NUM_THEMES];
extern const char *Txt_System;
extern const char *Txt_TAGLINE;
@ -902,8 +901,7 @@ static void Lay_WritePageTopHeading (void)
/* 1st. row, 3rd. column: logged user or language selection,
and link to open/close session */
fprintf (Gbl.F.Out,"<div id=\"head_row_1_right\" class=\"%s\">",
The_ClassHead[Gbl.Prefs.Theme]);
fprintf (Gbl.F.Out,"<div id=\"head_row_1_right\">");
if (Gbl.Usrs.Me.Logged)
Usr_WriteLoggedUsrHead ();
else
@ -1113,7 +1111,6 @@ void Lay_PutContextualLinkOnlyIcon (Act_Action_t NextAction,const char *Anchor,
void Lay_PutContextualLinkIconText (Act_Action_t NextAction,const char *Anchor,
void (*FuncParams) (),
const char *Icon,
const char *Title,
const char *Text)
{
extern const char *The_ClassFormBold[The_NUM_THEMES];
@ -1128,8 +1125,8 @@ void Lay_PutContextualLinkIconText (Act_Action_t NextAction,const char *Anchor,
FuncParams ();
/***** Put icon and text with link *****/
Frm_LinkFormSubmit (Title,The_ClassFormBold[Gbl.Prefs.Theme],NULL);
Ico_PutIconWithText (Icon,Title,Text);
Frm_LinkFormSubmit (Text,The_ClassFormBold[Gbl.Prefs.Theme],NULL);
Ico_PutIconTextLink (Icon,Text);
fprintf (Gbl.F.Out,"</a>");
/***** End form *****/
@ -1147,7 +1144,6 @@ void Lay_PutContextualLinkIconText (Act_Action_t NextAction,const char *Anchor,
void Lay_PutContextualLinkIconTextOnSubmit (Act_Action_t NextAction,const char *Anchor,
void (*FuncParams) (),
const char *Icon,
const char *Title,
const char *Text,
const char *OnSubmit)
{
@ -1163,8 +1159,8 @@ void Lay_PutContextualLinkIconTextOnSubmit (Act_Action_t NextAction,const char *
FuncParams ();
/***** Put icon with link *****/
Frm_LinkFormSubmit (Title,The_ClassFormBold[Gbl.Prefs.Theme],OnSubmit);
Ico_PutIconWithText (Icon,Title,Text);
Frm_LinkFormSubmit (Text,The_ClassFormBold[Gbl.Prefs.Theme],OnSubmit);
Ico_PutIconTextLink (Icon,Text);
fprintf (Gbl.F.Out,"</a>");
/***** End form *****/

View File

@ -59,12 +59,10 @@ void Lay_PutContextualLinkOnlyIcon (Act_Action_t NextAction,const char *Anchor,
void Lay_PutContextualLinkIconText (Act_Action_t NextAction,const char *Anchor,
void (*FuncParams) (),
const char *Icon,
const char *Title,
const char *Text);
void Lay_PutContextualLinkIconTextOnSubmit (Act_Action_t NextAction,const char *Anchor,
void (*FuncParams) (),
const char *Icon,
const char *Title,
const char *Text,
const char *OnSubmit);
void Lay_PutContextualCheckbox (Act_Action_t NextAction,

View File

@ -280,7 +280,6 @@ void Log_RequestLogo (Sco_Scope_t Scope)
fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\">");
Lay_PutContextualLinkIconText (ActionRem,NULL,NULL,
"trash.svg",
Txt_Remove_logo,
Txt_Remove_logo);
fprintf (Gbl.F.Out,"</div>");
}

View File

@ -985,8 +985,7 @@ void Mai_ListEmails (void)
StrAddresses,
Txt_Create_email_message,
The_ClassFormBold[Gbl.Prefs.Theme]);
Ico_PutIconWithText ("pen.svg",
Txt_Create_email_message,
Ico_PutIconTextLink ("pen.svg",
Txt_Create_email_message);
fprintf (Gbl.F.Out,"</a>"
"</div>");

View File

@ -367,7 +367,6 @@ static void Msg_PutLinkToShowMorePotentialRecipients (void)
Msg_PutParamsShowMorePotentialRecipients,
"users.svg",
Txt_Show_more_recipients,
Txt_Show_more_recipients,
"CopyMessageToHiddenFields()");
fprintf (Gbl.F.Out,"</div>");
}
@ -1773,7 +1772,7 @@ static void Msg_ShowSentOrReceivedMessages (void)
Frm_LinkFormSubmitAnimated (Txt_Update_messages,
The_ClassFormBold[Gbl.Prefs.Theme],
NULL);
Ico_PutCalculateIconWithText (Txt_Update_messages,Txt_Update_messages);
Ico_PutCalculateIconWithText (Txt_Update_messages);
fprintf (Gbl.F.Out,"</div>");
Frm_EndForm ();
@ -1875,7 +1874,6 @@ static void Msg_PutLinkToViewBannedUsers(void)
Lay_PutContextualLinkIconText (ActLstBanUsr,NULL,NULL,
"lock.svg",
Txt_Banned_users,
Txt_Banned_users);
}
@ -3675,7 +3673,7 @@ static void Msg_PutFormToBanSender (struct UsrData *UsrDat)
Gbl.Msg.CurrentPage);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Msg_PutHiddenParamsMsgsFilters ();
Ico_PutIconLink ("lock-open.svg",Txt_Sender_permitted_click_to_ban_him);
Ico_PutIconLink ("unlock.svg",Txt_Sender_permitted_click_to_ban_him);
Frm_EndForm ();
}

View File

@ -302,11 +302,8 @@ static unsigned Ntf_GetNumberOfMyNewUnseenNtfs (void);
void Ntf_ShowMyNotifications (void)
{
extern const char *Hlp_MESSAGES_Notifications;
extern const char *Txt_Change_preferences;
extern const char *Txt_Settings;
extern const char *Txt_Email_domains_allowed_for_notifications;
extern const char *Txt_Domains;
extern const char *Txt_Mark_all_notifications_as_read;
extern const char *Txt_Mark_all_NOTIFICATIONS_as_read;
extern const char *Txt_Notifications;
extern const char *Txt_Date;
@ -373,19 +370,16 @@ void Ntf_ShowMyNotifications (void)
/* Put form to change notification preferences */
Lay_PutContextualLinkIconText (ActMrkNtfSee,NULL,NULL,
"eye.svg",
Txt_Mark_all_notifications_as_read,
Txt_Mark_all_NOTIFICATIONS_as_read);
/* Put form to change notification preferences */
Lay_PutContextualLinkIconText (ActEdiPrf,NULL,NULL,
"cog.svg",
Txt_Change_preferences,
Txt_Settings);
/* Put form to view allowed mail domains */
Lay_PutContextualLinkIconText (ActSeeMai,NULL,NULL,
"envelope.svg",
Txt_Email_domains_allowed_for_notifications,
Txt_Domains);
fprintf (Gbl.F.Out,"</div>");

View File

@ -262,7 +262,6 @@ void Pwd_PutLinkToSendNewPasswd (void)
Lay_PutContextualLinkIconText (ActReqSndNewPwd,NULL,
Pwd_PutLinkToSendNewPasswdParams,
"key.svg",
Txt_Forgotten_password,
Txt_Forgotten_password);
}

View File

@ -1993,7 +1993,6 @@ static void Pho_PutLinkToPrintViewOfDegreeStatsParams (void)
static void Pho_PutLinkToCalculateDegreeStats (void)
{
extern const char *The_ClassFormBold[The_NUM_THEMES];
extern const char *Txt_Calculate_average_photo_of_a_degree;
extern const char *Txt_Calculate_average_photo_of_THE_DEGREE_X;
extern const char *Txt_unknown_TIME;
extern const char *Txt_time;
@ -2020,11 +2019,10 @@ static void Pho_PutLinkToCalculateDegreeStats (void)
Pho_PutHiddenParamPhotoSize ();
Pho_PutHiddenParamOrderDegrees ();
Usr_PutParamsPrefsAboutUsrList ();
Frm_LinkFormSubmitAnimated (Txt_Calculate_average_photo_of_a_degree,
Frm_LinkFormSubmitAnimated (Txt_Calculate_average_photo_of_THE_DEGREE_X,
The_ClassFormBold[Gbl.Prefs.Theme],
NULL);
Ico_PutCalculateIconWithText (Txt_Calculate_average_photo_of_a_degree,
Txt_Calculate_average_photo_of_THE_DEGREE_X);
Ico_PutCalculateIconWithText (Txt_Calculate_average_photo_of_THE_DEGREE_X);
/***** Put selector with all the degrees with students *****/
fprintf (Gbl.F.Out,"<select name=\"OthDegCod\">");

View File

@ -139,7 +139,6 @@ void Prf_PutLinkMyPublicProfile (void)
Lay_PutContextualLinkIconText (ActSeeOthPubPrf,NULL,
Usr_PutParamMyUsrCodEncrypted,
"user.svg",
Txt_My_public_profile,
Txt_My_public_profile);
}
@ -153,7 +152,6 @@ void Prf_PutLinkRequestAnotherUserProfile (void)
Lay_PutContextualLinkIconText (ActReqOthPubPrf,NULL,NULL,
"user.svg",
Txt_Another_user_s_profile,
Txt_Another_user_s_profile);
}
@ -613,7 +611,7 @@ static void Prf_PutLinkToUpdateAction (Act_Action_t Action,const char *Encrypted
Usr_PutParamUsrCodEncrypted (EncryptedUsrCod);
Frm_LinkFormSubmitAnimated (Txt_Calculate,The_ClassForm[Gbl.Prefs.Theme],
NULL);
Ico_PutCalculateIconWithText (Txt_Calculate,Txt_Calculate);
Ico_PutCalculateIconWithText (Txt_Calculate);
Frm_EndForm ();
}

View File

@ -91,7 +91,7 @@ static const char *Prj_Proposal_DB[Prj_NUM_PROPOSAL_TYPES] =
static const char *PreassignedNonpreassigImage[Prj_NUM_PREASSIGNED_NONPREASSIG] =
{
"lock.svg", // Prj_PREASSIGNED
"lock-open.svg", // Prj_NONPREASSIG
"unlock.svg", // Prj_NONPREASSIG
};
/*****************************************************************************/
@ -1045,18 +1045,15 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
break;
}
fprintf (Gbl.F.Out," %s\">"
"%s&nbsp;"
"<img src=\"%s/%s\""
" alt=\"%s\" title=\"%s\" class=\"ICO20x20\" />"
"</td>"
"</tr>",
"%s&nbsp;",
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT",
(Prj->Preassigned == Prj_PREASSIGNED) ? Txt_Yes :
Txt_No,
Gbl.Prefs.URLIcons,PreassignedNonpreassigImage[Prj->Preassigned],
Txt_PROJECT_PREASSIGNED_NONPREASSIGNED_SINGUL[Prj->Preassigned],
Txt_PROJECT_PREASSIGNED_NONPREASSIGNED_SINGUL[Prj->Preassigned]);
Txt_No);
Ico_PutIconOff (PreassignedNonpreassigImage[Prj->Preassigned],
Txt_PROJECT_PREASSIGNED_NONPREASSIGNED_SINGUL[Prj->Preassigned]);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
/***** Number of students *****/
fprintf (Gbl.F.Out,"<tr>");
@ -1204,7 +1201,7 @@ static void Prj_PutIconToToggleProject (unsigned UniqueId,
" onclick=\"toggleProject('%u');return false;\" />",
Text,The_ClassForm[Gbl.Prefs.Theme],
UniqueId);
Ico_PutIconWithText (Icon,Text,Text);
Ico_PutIconTextLink (Icon,Text);
fprintf (Gbl.F.Out,"</a>");
}

View File

@ -997,7 +997,6 @@ void Rec_PutLinkToEditRecordFields (void)
/***** Link to edit record fields *****/
Lay_PutContextualLinkIconText (ActEdiRecFie,NULL,NULL,
"pen.svg",
Txt_Edit_record_fields,
Txt_Edit_record_fields);
}
@ -1562,7 +1561,8 @@ static void Rec_ShowLinkToPrintPreviewOfRecords (void)
unsigned i;
Frm_LinkFormSubmit (Txt_Print,The_ClassFormBold[Gbl.Prefs.Theme],NULL);
Ico_PutIconWithText ("print.svg",Txt_Print,Txt_Print);
Ico_PutIconTextLink ("print.svg",
Txt_Print);
fprintf (Gbl.F.Out,"</a>"
"<label class=\"%s\">"
"(<select name=\"RecsPerPag\">",

View File

@ -754,7 +754,6 @@ static void Sta_PutLinkToCourseHits (void)
case Rol_SYS_ADM:
Lay_PutContextualLinkIconText (ActReqAccCrs,NULL,NULL,
"chart-line.svg",
Txt_Visits_to_course,
Txt_Visits_to_course);
break;
default:
@ -772,7 +771,6 @@ static void Sta_PutLinkToGlobalHits (void)
Lay_PutContextualLinkIconText (ActReqAccGbl,NULL,NULL,
"chart-line.svg",
Txt_Global_visits,
Txt_Global_visits);
}
@ -9666,7 +9664,6 @@ void Con_PutLinkToLastClicks (void)
Lay_PutContextualLinkIconText (ActLstClk,NULL,NULL,
"mouse-pointer.svg",
Txt_Last_clicks,
Txt_Last_clicks);
}

View File

@ -414,7 +414,6 @@ static void Tst_PutFormToViewResultsOfUsersTests (Act_Action_t Action)
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Lay_PutContextualLinkIconText (Action,NULL,NULL,
"tasks.svg",
Txt_Test_results,
Txt_Test_results);
fprintf (Gbl.F.Out,"</div>");
}
@ -3440,9 +3439,9 @@ static void Tst_WriteAnswersEdit (long QstCod)
"<td class=\"BT%u\">",
Gbl.RowEvenOdd);
if (row[6][0] == 'Y')
fprintf (Gbl.F.Out,"<img src=\"%s/ok_on16x16.gif\""
fprintf (Gbl.F.Out,"<img src=\"%s/check.svg\""
" alt=\"%s\" title=\"%s\""
" class=\"ICO20x20\" />",
" class=\"CONTEXT_ICO_16x16\" />",
Gbl.Prefs.URLIcons,
Txt_TST_Answer_given_by_the_teachers,
Txt_TST_Answer_given_by_the_teachers);

View File

@ -87,13 +87,11 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem,
void TsI_PutFormToExportQuestions (void)
{
extern const char *Txt_Export_questions_to_XML_file;
extern const char *Txt_Export_questions;
/***** Put a link to create a file with questions *****/
Lay_PutContextualLinkIconText (ActLstTstQst,NULL,TsI_PutParamsExportQsts,
"file-import.svg",
Txt_Export_questions_to_XML_file,
Txt_Export_questions);
}
@ -116,13 +114,11 @@ static void TsI_PutParamsExportQsts (void)
void TsI_PutFormToImportQuestions (void)
{
extern const char *Txt_Import_questions_from_XML_file;
extern const char *Txt_Import_questions;
/***** Put a link to create a file with questions *****/
Lay_PutContextualLinkIconText (ActReqImpTstQst,NULL,NULL,
"file-export.svg",
Txt_Import_questions_from_XML_file,
Txt_Import_questions);
}
@ -268,7 +264,8 @@ void TsI_CreateXML (unsigned long NumRows,MYSQL_RES *mysql_res)
Cfg_URL_SWAD_PUBLIC,Cfg_FOLDER_FILE_BROWSER_TMP,
Gbl.FileBrowser.TmpPubDir,
The_ClassFormBold[Gbl.Prefs.Theme]);
Ico_PutIconWithText ("file.svg",Txt_XML_file,Txt_XML_file);
Ico_PutIconTextLink ("file.svg",
Txt_XML_file);
fprintf (Gbl.F.Out,"</a>");
}
@ -1028,7 +1025,7 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem,
"<td class=\"BT%u CENTER_TOP\">"
"<img src=\"%s/%s\""
" alt=\"%s\" title=\"%s\""
" class=\"ICO20x20\" />"
" class=\"CONTEXT_ICO_16x16\" />"
"</td>",
Gbl.RowEvenOdd,
Gbl.Prefs.URLIcons,
@ -1155,16 +1152,17 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem,
/* Put an icon that indicates whether the answer is correct or wrong */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"BT%u\">",Gbl.RowEvenOdd);
"<td class=\"BT%u\">",
Gbl.RowEvenOdd);
if (Gbl.Test.Answer.Options[NumOpt].Correct)
fprintf (Gbl.F.Out,"<img src=\"%s/%s16x16.gif\""
fprintf (Gbl.F.Out,"<img src=\"%s/check.svg\""
" alt=\"%s\" title=\"%s\""
" class=\"ICO20x20\" />",
" class=\"%sCONTEXT_ICO_16x16\" />",
Gbl.Prefs.URLIcons,
QuestionExists ? "ok_off" :
"ok_on",
Txt_TST_Answer_given_by_the_teachers,
Txt_TST_Answer_given_by_the_teachers);
Txt_TST_Answer_given_by_the_teachers,
QuestionExists ? "ICO_HIDDEN " :
"");
fprintf (Gbl.F.Out,"</td>");
/* Write the number of option */

View File

@ -2954,27 +2954,6 @@ const char *Txt_Calculate =
"Calcular";
#endif
const char *Txt_Calculate_average_photo_of_a_degree =
#if L==1 // ca
"Calcular fotografia mitjana d'una titulaci&oacute;";
#elif L==2 // de
"Calculate average photo of a degree"; // Need Übersetzung
#elif L==3 // en
"Calculate average photo of a degree";
#elif L==4 // es
"Calcular fotograf&iacute;a promedio de una titulaci&oacute;n";
#elif L==5 // fr
"Calculate average photo of a degree"; // Besoin de traduction
#elif L==6 // gn
"Calcular fotograf&iacute;a promedio de una titulaci&oacute;n"; // Okoteve traducción
#elif L==7 // it
"Calcolare la media delle foto di laurea";
#elif L==8 // pl
"Obliczyc &sacute;rednia zdjec stopnia";
#elif L==9 // pt
"Calcular a foto m&eacute;dia de um grau";
#endif
const char *Txt_Calculate_average_photo_of_THE_DEGREE_X =
#if L==1 // ca
"Calcular fotografia mitjana de";
@ -3726,27 +3705,6 @@ const char *Txt_Change_photo =
"Alterar foto";
#endif
const char *Txt_Change_preferences =
#if L==1 // ca
"Canviar prefer&egrave;ncies";
#elif L==2 // de
"Einstellungen &auml;ndern";
#elif L==3 // en
"Change preferences";
#elif L==4 // es
"Cambiar preferencias";
#elif L==5 // fr
"Changer mes pr&eacute;f&eacute;rences";
#elif L==6 // gn
"Cambiar preferencias"; // Okoteve traducción
#elif L==7 // it
"Cambiare preferenze";
#elif L==8 // pl
"Zmiana preferencji";
#elif L==9 // pt
"Alterar prefer&ecirc;ncias";
#endif
const char *Txt_CHAT_Room =
#if L==1 // ca
"Sala";
@ -11273,27 +11231,6 @@ const char *Txt_Export_questions =
"Exportar perguntas";
#endif
const char *Txt_Export_questions_to_XML_file =
#if L==1 // ca
"Exportar preguntas a un archivo XML"; // Necessita traduccio
#elif L==2 // de
"Export questions to XML file"; // Need Übersetzung
#elif L==3 // en
"Export questions to XML file";
#elif L==4 // es
"Exportar preguntas a un archivo XML";
#elif L==5 // fr
"Exporter des questions vers un fichier XML";
#elif L==6 // gn
"Exportar preguntas a un archivo XML"; // Okoteve traducción
#elif L==7 // it
"Export questions to XML file"; // Bisogno di traduzione
#elif L==8 // pl
"Export questions to XML file"; // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Exportar perguntas para um arquivo XML";
#endif
const char *Txt_X_faces_have_been_detected_in_front_position_1_Z_ = // Warning: it is very important to include two %u in the following sentences
#if L==1 // ca
"Se han detectado %u rostros en posici&oacute;n frontal:<br />"
@ -15192,27 +15129,6 @@ const char *Txt_Import_questions =
"Importar perguntas";
#endif
const char *Txt_Import_questions_from_XML_file =
#if L==1 // ca
"Importar preguntas de un archivo XML"; // Necessita traduccio
#elif L==2 // de
"Import questions from XML file"; // Need Übersetzung
#elif L==3 // en
"Import questions from XML file";
#elif L==4 // es
"Importar preguntas de un archivo XML";
#elif L==5 // fr
"Import questions from XML file"; // Besoin de traduction
#elif L==6 // gn
"Importar preguntas de un archivo XML"; // Okoteve traducción
#elif L==7 // it
"Import questions from XML file"; // Bisogno di traduzione
#elif L==8 // pl
"Import questions from XML file"; // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Importar perguntas de um arquivo XML";
#endif
const char *Txt_Imported_questions =
#if L==1 // ca
"Preguntas importadas"; // Necessita traduccio
@ -17511,27 +17427,6 @@ const char *Txt_Mark_all_NOTIFICATIONS_as_read =
"Marcar todas como lidas";
#endif
const char *Txt_Mark_all_notifications_as_read =
#if L==1 // ca
"Marca totes les notificacions com llegides";
#elif L==2 // de
"Markieren Sie alle Anmeldungen als gelesen";
#elif L==3 // en
"Mark all notifications as read";
#elif L==4 // es
"Marcar todas las notificaciones como le&iacute;das";
#elif L==5 // fr
"Marquer tous les notifications comme lus";
#elif L==6 // gn
"Marcar todas las notificaciones como le&iacute;das"; // Okoteve traducción
#elif L==7 // it
"Segnare tutte le notifiche come gi&grave; letti";
#elif L==8 // pl
"Mark all notifications as read"; // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Marcar todas as notifica&ccedil;&otilde;es como lidas";
#endif
const char *Txt_Mark_as_favourite =
#if L==1 // ca
"Marca com favorit";
@ -51364,27 +51259,6 @@ const char *Txt_Update_attendance =
"Atualizar presen&ccedil;a";
#endif
const char *Txt_Update_attendance_according_to_selected_events =
#if L==1 // ca
"Actualitzar assist&egrave;ncia segons els esdeveniments seleccionats";
#elif L==2 // de
"Update Anwesenheit nach ausgew&auml;hlten Ereignisse";
#elif L==3 // en
"Update attendance according to selected events";
#elif L==4 // es
"Actualizar asistencia seg&uacute;n los eventos seleccionados";
#elif L==5 // fr
"Mise &agrave; jour pr&eacute;sence en fonction d'&eacute;v&eacute;nements s&eacute;lectionnes";
#elif L==6 // gn
"Actualizar asistencia seg&uacute;n los eventos seleccionados"; // Okoteve traducción
#elif L==7 // it
"Aggiornamento presenza in base a eventi selezionati";
#elif L==8 // pl
"Update bytno&sacute;&cacute; according to selected events"; // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Atualizar presen&ccedil;a de acordo com eventos selecionados";
#endif
const char *Txt_Update_messages =
#if L==1 // ca
"Actualitzar missatges";
@ -51427,27 +51301,6 @@ const char *Txt_Update_users =
"Atualizar os utilizadores";
#endif
const char *Txt_Update_users_according_to_selected_groups =
#if L==1 // ca
"Actualitzar usuaris segons els grups seleccionats";
#elif L==2 // de
"Update Benutzer nach ausgew&auml;hlten Gruppen";
#elif L==3 // en
"Update users according to selected groups";
#elif L==4 // es
"Actualizar usuarios seg&uacute;n los grupos seleccionados";
#elif L==5 // fr
"Mise &agrave; jour des &eacute;tudiants en fonction de groupes s&eacute;lectionnes";
#elif L==6 // gn
"Actualizar usuarios seg&uacute;n los grupos seleccionados"; // Okoteve traducción
#elif L==7 // it
"Aggiornamento utenti in base a gruppi selezionati";
#elif L==8 // pl
"Zaktualizuj u&zdot;ytkownik&oacute;w wed&lstrok;ug wybranych grup";
#elif L==9 // pt
"Atualizar os utilizadores de acordo com grupos selecionados";
#endif
const char *Txt_UPLOAD_FILE_Invalid_link =
#if L==1 // ca
"Enlace no v&aacute;lido."; // Necessita traduccio

View File

@ -82,14 +82,6 @@ const char *The_TabOffBgColors[The_NUM_THEMES] =
"TAB_OFF_YELLOW",
};
const char *The_ClassHead[The_NUM_THEMES] =
{
"WHITE_HEAD",
"GREY_HEAD",
"BLUE_HEAD",
"YELLOW_HEAD",
};
const char *The_ClassTagline[The_NUM_THEMES] =
{
"WHITE_TAGLINE",

View File

@ -2421,7 +2421,6 @@ void Usr_PutLinkToLogin (void)
Lay_PutContextualLinkIconText (ActFrmLogIn,NULL,NULL,
"sign-in-alt-green.svg",
Txt_Log_in,
Txt_Log_in);
}
@ -2647,21 +2646,11 @@ static void Usr_InsertMyBirthday (void)
void Usr_PutFormLogIn (void)
{
extern const char *The_ClassHead[The_NUM_THEMES];
extern const char *Txt_Log_in;
/***** Link to log in form *****/
Frm_StartForm (ActFrmLogIn);
Frm_LinkFormSubmit (Txt_Log_in,The_ClassHead[Gbl.Prefs.Theme],NULL);
fprintf (Gbl.F.Out,"<img src=\"%s/sign-in-alt-green.svg\""
" alt=\"%s\" title=\"%s\""
" class=\"ICO20x20\" />"
"<span id=\"login_txt\">&nbsp;%s</span>"
"</a>",
Gbl.Prefs.URLIcons,
Txt_Log_in,
Txt_Log_in,
Txt_Log_in);
Ico_PutIconLink ("sign-in-alt-green.svg",Txt_Log_in);
Frm_EndForm ();
}
@ -2672,7 +2661,6 @@ void Usr_PutFormLogIn (void)
void Usr_WriteLoggedUsrHead (void)
{
extern const char *The_ClassUsr[The_NUM_THEMES];
extern const char *The_ClassHead[The_NUM_THEMES];
extern const char *Txt_Role;
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
bool ShowPhoto;
@ -2717,20 +2705,11 @@ void Usr_WriteLoggedUsrHead (void)
void Usr_PutFormLogOut (void)
{
extern const char *The_ClassHead[The_NUM_THEMES];
extern const char *Txt_Log_out;
/***** Link to log out form *****/
Frm_StartForm (ActLogOut);
Frm_LinkFormSubmit (Txt_Log_out,The_ClassHead[Gbl.Prefs.Theme],NULL);
fprintf (Gbl.F.Out,"<img src=\"%s/sign-out-alt-red.svg\""
" alt=\"%s\" title=\"%s\""
" class=\"ICO20x20\" />"
"<span id=\"login_txt\">&nbsp;%s</span>"
"</a>",
Gbl.Prefs.URLIcons,
Txt_Log_out,
Txt_Log_out,
Txt_Log_out);
Ico_PutIconLink ("sign-out-alt-red.svg",Txt_Log_out);
Frm_EndForm ();
}
@ -7531,7 +7510,6 @@ static void Usr_PutLinkToSeeAdmins (void)
/***** Put form to list admins *****/
Lay_PutContextualLinkIconText (ActLstOth,NULL,NULL,
"user-tie.svg",
Txt_ROLES_PLURAL_Abc[Rol_DEG_ADM][Usr_SEX_UNKNOWN],
Txt_ROLES_PLURAL_Abc[Rol_DEG_ADM][Usr_SEX_UNKNOWN]);
}
@ -7546,7 +7524,6 @@ static void Usr_PutLinkToSeeGuests (void)
/***** Put form to list guests *****/
Lay_PutContextualLinkIconText (ActLstGst,NULL,NULL,
"users.svg",
Txt_ROLES_PLURAL_Abc[Rol_GST][Usr_SEX_UNKNOWN],
Txt_ROLES_PLURAL_Abc[Rol_GST][Usr_SEX_UNKNOWN]);
}

View File

@ -127,7 +127,6 @@ void ZIP_PutLinkToCreateZIPAsgWrk (void)
Lay_PutContextualLinkIconText (ActAdmAsgWrkCrs,NULL,
ZIP_PutLinkToCreateZIPAsgWrkParams,
"download.svg",
Txt_Create_ZIP_file,
Txt_Create_ZIP_file);
}