diff --git a/swad_announcement.c b/swad_announcement.c
index af434cc0..e33015d0 100644
--- a/swad_announcement.c
+++ b/swad_announcement.c
@@ -247,10 +247,11 @@ static void Ann_ShowAnnouncement (long AnnCod,const char *Subject,const char *Co
Ann_PutHiddenParamAnnCod (AnnCod);
Act_LinkFormSubmit (Txt_Remove,The_ClassFormul[Gbl.Prefs.Theme]);
fprintf (Gbl.F.Out,""
+ " alt=\"%s\" title=\"%s\""
+ " class=\"ICON16x16\" />"
" %s",
Gbl.Prefs.IconsURL,
- Txt_Remove,
+ Txt_Remove,Txt_Remove,
Txt_Remove);
Act_FormEnd ();
}
@@ -261,10 +262,11 @@ static void Ann_ShowAnnouncement (long AnnCod,const char *Subject,const char *Co
Ann_PutHiddenParamAnnCod (AnnCod);
Act_LinkFormSubmit (Txt_Do_not_show_again,The_ClassFormul[Gbl.Prefs.Theme]);
fprintf (Gbl.F.Out,""
+ " alt=\"%s\" title=\"%s\""
+ " class=\"ICON16x16\" />"
" %s",
Gbl.Prefs.IconsURL,
- Txt_Do_not_show_again,
+ Txt_Do_not_show_again,Txt_Do_not_show_again,
Txt_Do_not_show_again);
Act_FormEnd ();
}
diff --git a/swad_assignment.c b/swad_assignment.c
index 293202ba..192016a7 100644
--- a/swad_assignment.c
+++ b/swad_assignment.c
@@ -406,6 +406,7 @@ static void Asg_WriteAsgAuthor (struct Assignment *Asg)
static void Asg_WriteAssignmentFolder (struct Assignment *Asg)
{
extern const char *Txt_Upload_file_or_create_folder_in_FOLDER;
+ extern const char *Txt_Folder;
if (Asg->SendWork == Asg_SEND_WORK)
{
@@ -422,8 +423,8 @@ static void Asg_WriteAssignmentFolder (struct Assignment *Asg)
sprintf (Gbl.Title,Txt_Upload_file_or_create_folder_in_FOLDER,
Asg->Folder);
fprintf (Gbl.F.Out,"",
+ " src=\"%s/folder-open-plus16x16.gif\""
+ " alt=\"%s\" title=\"%s\" class=\"ICON16x16\" />",
Gbl.Prefs.IconsURL,
Gbl.Title,
Gbl.Title);
@@ -431,8 +432,9 @@ static void Asg_WriteAssignmentFolder (struct Assignment *Asg)
}
else // I can't send files to this assignment folder
fprintf (Gbl.F.Out,"",
- Gbl.Prefs.IconsURL);
+ " alt=\"%s\" title=\"%s\" class=\"ICON16x16\" />",
+ Gbl.Prefs.IconsURL,
+ Txt_Folder,Txt_Folder);
/***** Folder name *****/
fprintf (Gbl.F.Out,""
diff --git a/swad_attendance.c b/swad_attendance.c
index ab51370d..232c24c3 100644
--- a/swad_attendance.c
+++ b/swad_attendance.c
@@ -2042,11 +2042,13 @@ static void Att_WriteRowStdToCallTheRoll (unsigned NumStd,struct UsrData *UsrDat
"
"
""
+ " alt=\"%s\" title=\"%s\" class=\"ICON16x16\" />"
" | ",
Gbl.Prefs.IconsURL,
Present ? "check" :
"check-empty",
+ Present ? Txt_Present :
+ Txt_Absent,
Present ? Txt_Present :
Txt_Absent);
@@ -3240,12 +3242,14 @@ static void Att_WriteRowStdSeveralAttEvents (unsigned NumStd,struct UsrData *Usr
fprintf (Gbl.F.Out,""
""
+ " alt=\"%s\" title=\"%s\" class=\"ICON16x16\" />"
" | ",
Gbl.RowEvenOdd,
Gbl.Prefs.IconsURL,
Present ? "check" :
"check-empty",
+ Present ? Txt_Present :
+ Txt_Absent,
Present ? Txt_Present :
Txt_Absent);
@@ -3392,7 +3396,7 @@ static void Att_ListAttEventsForAStd (unsigned NumStd,struct UsrData *UsrDat)
""
""
+ " alt=\"%s\" title=\"%s\" class=\"ICON16x16\" />"
" %02u/%02u/%04u %02u:%02u h %s | "
"",
BgColor,
@@ -3404,6 +3408,8 @@ static void Att_ListAttEventsForAStd (unsigned NumStd,struct UsrData *UsrDat)
"check-empty",
Present ? Txt_Present :
Txt_Absent,
+ Present ? Txt_Present :
+ Txt_Absent,
Gbl.AttEvents.Lst[NumAttEvent].DateTimes[Att_START_TIME].Date.Day,
Gbl.AttEvents.Lst[NumAttEvent].DateTimes[Att_START_TIME].Date.Month,
Gbl.AttEvents.Lst[NumAttEvent].DateTimes[Att_START_TIME].Date.Year,
diff --git a/swad_banner.c b/swad_banner.c
index 094c8bc6..3c3a33e9 100644
--- a/swad_banner.c
+++ b/swad_banner.c
@@ -100,7 +100,8 @@ void Ban_SeeBanners (void)
fprintf (Gbl.F.Out,""
""
""
- ""
""
" | "
@@ -109,7 +110,8 @@ void Ban_SeeBanners (void)
Gbl.Banners.Lst[NumBan].FullName,
Cfg_HTTPS_URL_SWAD_PUBLIC,Cfg_FOLDER_BANNER,
Gbl.Banners.Lst[NumBan].Img,
- Gbl.Banners.Lst[NumBan].ShortName);
+ Gbl.Banners.Lst[NumBan].ShortName,
+ Gbl.Banners.Lst[NumBan].FullName);
/***** Table end *****/
Lay_EndRoundFrameTable ();
@@ -380,7 +382,8 @@ static void Ban_ListBannersForEdition (void)
" vertical-align:middle;\">");
Act_FormStart (ActChgBanImg);
Ban_PutParamBanCod (Ban->BanCod);
- fprintf (Gbl.F.Out,"",
Ban_MAX_LENGTH_IMAGE,Ban->Img,Gbl.FormId);
Act_FormEnd ();
@@ -763,7 +766,8 @@ static void Ban_PutFormToCreateBanner (void)
/***** Banner image *****/
fprintf (Gbl.F.Out,""
- ""
+ ""
" | ",
Ban_MAX_LENGTH_IMAGE,Ban->Img);
@@ -917,14 +921,16 @@ void Ban_WriteMenuWithBanners (void)
Par_PutHiddenParamString ("URL",Gbl.Banners.Lst[NumBan].WWW);
fprintf (Gbl.F.Out,""
- ""
"",
Gbl.FormId,
Gbl.Banners.Lst[NumBan].FullName,
Cfg_HTTPS_URL_SWAD_PUBLIC,Cfg_FOLDER_BANNER,
Gbl.Banners.Lst[NumBan].Img,
- Gbl.Banners.Lst[NumBan].ShortName);
+ Gbl.Banners.Lst[NumBan].ShortName,
+ Gbl.Banners.Lst[NumBan].FullName);
Act_FormEnd ();
fprintf (Gbl.F.Out,""
"
");
diff --git a/swad_centre.c b/swad_centre.c
index de01815c..d1b2ed2f 100644
--- a/swad_centre.c
+++ b/swad_centre.c
@@ -317,11 +317,15 @@ static void Ctr_Configuration (bool PrintView)
if (PutLink)
fprintf (Gbl.F.Out,"",
Gbl.CurrentCtr.Ctr.WWW);
- fprintf (Gbl.F.Out,"",
+ fprintf (Gbl.F.Out,"",
Cfg_HTTPS_URL_SWAD_PUBLIC,Cfg_FOLDER_CTR,
(unsigned) (Gbl.CurrentCtr.Ctr.CtrCod % 100),
(unsigned) Gbl.CurrentCtr.Ctr.CtrCod,
(unsigned) Gbl.CurrentCtr.Ctr.CtrCod,
+ Gbl.CurrentCtr.Ctr.ShortName,
+ Gbl.CurrentCtr.Ctr.FullName,
PrintView ? "CENTRE_PHOTO_PRINT" :
"CENTRE_PHOTO_SHOW");
if (PutLink)
@@ -1134,6 +1138,7 @@ void Ctr_WriteSelectorOfCentre (Act_Action_t NextAction)
static void Ctr_ListCentresForEdition (void)
{
extern const char *Txt_Centres_of_INSTITUTION_X;
+ extern const char *Txt_Removal_not_allowed;
extern const char *Txt_Remove_centre;
extern const char *Txt_Another_place;
extern const char *Txt_CENTRE_STATUS[Ctr_NUM_STATUS_TXT];
@@ -1175,8 +1180,10 @@ static void Ctr_ListCentresForEdition (void)
if (Ctr->NumDegs || Ctr->NumTchs || // Centre has degrees or teachers ==> deletion forbidden
!ICanEdit)
fprintf (Gbl.F.Out,"",
- Gbl.Prefs.IconsURL);
+ " alt=\"%s\" title=\"%s\" class=\"ICON16x16\" />",
+ Gbl.Prefs.IconsURL,
+ Txt_Removal_not_allowed,
+ Txt_Removal_not_allowed);
else
{
Act_FormStart (ActRemCtr);
@@ -1967,6 +1974,7 @@ static void Ctr_PutFormToCreateCentre (void)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
extern const char *Txt_New_centre_of_INSTITUTION_X;
+ extern const char *Txt_Removal_not_allowed;
extern const char *Txt_Another_place;
extern const char *Txt_CENTRE_STATUS[Ctr_NUM_STATUS_TXT];
extern const char *Txt_Create_centre;
@@ -1995,9 +2003,11 @@ static void Ctr_PutFormToCreateCentre (void)
fprintf (Gbl.F.Out,""
""
""
+ " alt=\"%s\" title=\"%s\" class=\"ICON16x16\" />"
" | ",
- Gbl.Prefs.IconsURL);
+ Gbl.Prefs.IconsURL,
+ Txt_Removal_not_allowed,
+ Txt_Removal_not_allowed);
/***** Centre code *****/
fprintf (Gbl.F.Out," | ");
diff --git a/swad_changelog.h b/swad_changelog.h
index 7687023b..8db25e15 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -103,11 +103,12 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
-#define Log_PLATFORM_VERSION "SWAD 14.117.5 (2015/07/21)"
+#define Log_PLATFORM_VERSION "SWAD 14.117.7 (2015/07/21)"
// Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
/*
+ Version 14.117.7: Jul 21, 2015 Checking "alt" and "title" in all images. (185008 lines)
Version 14.117.6: Jul 21, 2015 Checking "alt" and "title" in all images.
Changes in most frequent actions. (184948 lines)
Version 14.117.5: Jul 21, 2015 Fixed HTML bug in account form. (184930 lines)
diff --git a/swad_chat.c b/swad_chat.c
index 60fa9b45..4da12bbf 100644
--- a/swad_chat.c
+++ b/swad_chat.c
@@ -129,10 +129,13 @@ void Cht_ShowListOfAvailableChatRooms (void)
/***** Title of top level *****/
fprintf (Gbl.F.Out,""
""
" %s"
"",
- Gbl.Prefs.IconsURL,Txt_Chat_rooms);
+ Gbl.Prefs.IconsURL,
+ Txt_Chat_rooms,Txt_Chat_rooms,
+ Txt_Chat_rooms);
/***** Link to chat available for all the users *****/
IsLastItemInLevel[1] = (Gbl.Usrs.Me.LoggedRole != Rol_STUDENT &&
@@ -141,8 +144,10 @@ void Cht_ShowListOfAvailableChatRooms (void)
sprintf (ThisRoomFullName,"%s (%s)",Txt_General,Txt_SEX_PLURAL_abc[Usr_SEX_ALL]);
Cht_WriteLinkToChat1 ("GBL_USR",Txt_SEX_PLURAL_Abc[Usr_SEX_ALL],ThisRoomFullName,1,IsLastItemInLevel);
fprintf (Gbl.F.Out,"",
- Gbl.Prefs.IconsURL);
+ " alt=\"%s\" title=\"%s\" class=\"ICON16x16\""
+ " style=\"vertical-align:middle;\" />",
+ Gbl.Prefs.IconsURL,
+ ThisRoomFullName,ThisRoomFullName);
Cht_WriteLinkToChat2 ("GBL_USR",ThisRoomFullName);
@@ -153,16 +158,20 @@ void Cht_ShowListOfAvailableChatRooms (void)
sprintf (ThisRoomFullName,"%s (%s)",Txt_General,Txt_ROLES_PLURAL_abc[Rol_STUDENT][Usr_SEX_ALL]);
Cht_WriteLinkToChat1 ("GBL_STD",Txt_Students_ABBREVIATION,ThisRoomFullName,1,IsLastItemInLevel);
fprintf (Gbl.F.Out,"",
- Gbl.Prefs.IconsURL);
+ " alt=\"%s\" title=\"%s\" class=\"ICON16x16\""
+ " style=\"vertical-align:middle;\" />",
+ Gbl.Prefs.IconsURL,
+ ThisRoomFullName,ThisRoomFullName);
Cht_WriteLinkToChat2 ("GBL_STD",ThisRoomFullName);
break;
case Rol_TEACHER:
sprintf (ThisRoomFullName,"%s (%s)",Txt_General,Txt_ROLES_PLURAL_abc[Rol_TEACHER][Usr_SEX_ALL]);
Cht_WriteLinkToChat1 ("GBL_TCH",Txt_Teachers_ABBREVIATION,ThisRoomFullName,1,IsLastItemInLevel);
fprintf (Gbl.F.Out,"",
- Gbl.Prefs.IconsURL);
+ " alt=\"%s\" title=\"%s\" class=\"ICON16x16\""
+ " style=\"vertical-align:middle;\" />",
+ Gbl.Prefs.IconsURL,
+ ThisRoomFullName,ThisRoomFullName);
Cht_WriteLinkToChat2 ("GBL_TCH",ThisRoomFullName);
break;
default:
@@ -210,8 +219,10 @@ void Cht_ShowListOfAvailableChatRooms (void)
sprintf (ThisRoomFullName,"%s %s",Txt_Course,Crs.ShortName);
Cht_WriteLinkToChat1 (ThisRoomCode,ThisRoomShortName,ThisRoomFullName,2,IsLastItemInLevel);
fprintf (Gbl.F.Out,"",
- Gbl.Prefs.IconsURL);
+ " alt=\"%s\" title=\"%s\" class=\"ICON16x16\""
+ " style=\"vertical-align:middle;\" />",
+ Gbl.Prefs.IconsURL,
+ ThisRoomFullName,ThisRoomFullName);
Cht_WriteLinkToChat2 (ThisRoomCode,ThisRoomFullName);
}
}
diff --git a/swad_connected.c b/swad_connected.c
index f835a574..0076ccc5 100644
--- a/swad_connected.c
+++ b/swad_connected.c
@@ -649,10 +649,10 @@ static void Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnRightColum
Sco_PutParamScope (Sco_SCOPE_CRS);
Act_LinkFormSubmitId (Txt_Connected_users,The_ClassConnected[Gbl.Prefs.Theme],Gbl.FormId);
fprintf (Gbl.F.Out,""
+ " alt=\"%s\" title=\"%s\" class=\"ICON32x32\" />"
"",
Gbl.Prefs.IconsURL,
- Txt_Connected_users);
+ Txt_Connected_users,Txt_Connected_users);
Act_FormEnd ();
fprintf (Gbl.F.Out,""
"
");
diff --git a/swad_country.c b/swad_country.c
index 7564918b..1f09724d 100644
--- a/swad_country.c
+++ b/swad_country.c
@@ -728,7 +728,8 @@ bool Cty_CheckIfCountryMapExists (struct Country *Cty)
void Cty_DrawCountryMap (struct Country *Cty,const char *Class)
{
/***** Draw country map *****/
- fprintf (Gbl.F.Out,"",
Gbl.Prefs.IconsURL,Cfg_ICON_FOLDER_COUNTRIES,
Cty->Alpha2,
@@ -1272,9 +1273,9 @@ void Cty_FreeListCountries (void)
static void Cty_ListCountriesForEdition (void)
{
extern const char *Txt_Countries;
- extern const char *Txt_STR_LANG_NAME[Txt_NUM_LANGUAGES];
- extern const char *Txt_STR_LANG_ID[Txt_NUM_LANGUAGES];
+ extern const char *Txt_Removal_not_allowed;
extern const char *Txt_Remove_country;
+ extern const char *Txt_STR_LANG_NAME[Txt_NUM_LANGUAGES];
unsigned NumCty;
struct Country *Cty;
Txt_Language_t Lan;
@@ -1298,8 +1299,9 @@ static void Cty_ListCountriesForEdition (void)
if (Cty->NumInss ||
Cty->NumUsrs) // Country has institutions or users ==> deletion forbidden
fprintf (Gbl.F.Out,"",
- Gbl.Prefs.IconsURL);
+ " alt=\"%s\" title=\"%s\" class=\"ICON16x16\" />",
+ Gbl.Prefs.IconsURL,
+ Txt_Removal_not_allowed,Txt_Removal_not_allowed);
else
{
Act_FormStart (ActRemCty);
diff --git a/swad_text.c b/swad_text.c
index d7c6011c..380945f1 100644
--- a/swad_text.c
+++ b/swad_text.c
@@ -28438,6 +28438,27 @@ const char *Txt_Reject =
"Rejeitar";
#endif
+const char *Txt_Removal_not_allowed =
+#if L==0
+ "Eliminació no permès";
+#elif L==1
+ "Entfernen nicht erlaubt";
+#elif L==2
+ "Removal not allowed";
+#elif L==3
+ "Eliminación no permitida";
+#elif L==4
+ "Suppression pas autorisé";
+#elif L==5
+ "Eliminación no permitida"; // Okoteve traducción
+#elif L==6
+ "Rimozione non ammessi";
+#elif L==7
+ "Usuwanie nie wolno";
+#elif L==8
+ "Remoção não permitida";
+#endif
+
const char *Txt_Remove =
#if L==0
"Eliminar";