Version 14.117.14

This commit is contained in:
Antonio Cañas Vargas 2015-07-22 13:32:56 +02:00
parent 51fcf05c71
commit 9d53b736f9
6 changed files with 74 additions and 23 deletions

View File

@ -103,11 +103,12 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.117.13 (2015/07/22)" #define Log_PLATFORM_VERSION "SWAD 14.117.14 (2015/07/22)"
// Number of lines (includes comments but not blank lines) has been got with the following command: // 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 // 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.14:Jul 22, 2015 Checking "alt" and "title" in all images. (185203 lines)
Version 14.117.13:Jul 22, 2015 Checking "alt" and "title" in all images. Version 14.117.13:Jul 22, 2015 Checking "alt" and "title" in all images.
Removed unused function about mail domains. (185153 lines) Removed unused function about mail domains. (185153 lines)
Version 14.117.12:Jul 22, 2015 Checking "alt" and "title" in all images. (185213 lines) Version 14.117.12:Jul 22, 2015 Checking "alt" and "title" in all images. (185213 lines)

View File

@ -202,11 +202,13 @@ static void Net_ShowAWebOrSocialNet (const char *URL,
" style=\"display:inline;\">" " style=\"display:inline;\">"
"<a href=\"%s\" target=\"_blank\" title=\"%s\">" "<a href=\"%s\" target=\"_blank\" title=\"%s\">"
"<img src=\"%s/%s16x16.gif\"" "<img src=\"%s/%s16x16.gif\""
" style=\"width:16px;height:16px;margin:0 1px;\" alt=\"%s\" />" " alt=\"%s\" title=\"%s\""
" style=\"width:16px; height:16px; margin:0 1px;\" />"
"</a>" "</a>"
"</div>", "</div>",
URL,Title, URL,Title,
Gbl.Prefs.IconsURL,Icon,Title); Gbl.Prefs.IconsURL,Icon,
Title,Title);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -259,14 +261,16 @@ void Net_ShowFormMyWebsAndSocialNets (void)
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"text-align:left;\">" "<td class=\"%s\" style=\"text-align:left;\">"
"<img src=\"%s/%s16x16.gif\"" "<img src=\"%s/%s16x16.gif\""
" style=\"width:16px;height:16px;margin-right:10px;vertical-align:middle;\"" " alt=\"%s\" title=\"%s\""
" alt=\"\" title=\"%s\" />" " style=\"width:16px; height:16px;"
" margin-right:10px; vertical-align:middle;\" />"
"%s:</td>" "%s:</td>"
"<td style=\"width:%upx; text-align:left;\">", "<td style=\"width:%upx; text-align:left;\">",
ClassForm, ClassForm,
Gbl.Prefs.IconsURL,Net_WebsAndSocialNetworksDB[NumURL], Gbl.Prefs.IconsURL,Net_WebsAndSocialNetworksDB[NumURL],
Net_TitleWebsAndSocialNetworks[NumURL], Net_TitleWebsAndSocialNetworks[NumURL],
Net_TitleWebsAndSocialNetworks[NumURL], Net_TitleWebsAndSocialNetworks[NumURL],
Net_TitleWebsAndSocialNetworks[NumURL],
Net_COL2_WIDTH); Net_COL2_WIDTH);
Act_FormStart (ActChgMyNet); Act_FormStart (ActChgMyNet);
Par_PutHiddenParamUnsigned ("Web",(unsigned) NumURL); Par_PutHiddenParamUnsigned ("Web",(unsigned) NumURL);
@ -475,8 +479,9 @@ void Net_ShowWebAndSocialNetworksStats (void)
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"DAT\" style=\"text-align:left;\">" "<td class=\"DAT\" style=\"text-align:left;\">"
"<img src=\"%s/%s16x16.gif\"" "<img src=\"%s/%s16x16.gif\""
" style=\"width:16px;height:16px;margin:0 2px;vertical-align:middle;\"" " alt=\"%s\" title=\"%s\""
" alt=\"\" title=\"%s\" />" " style=\"width:16px; height:16px;"
" margin:0 2px; vertical-align:middle;\" />"
"%s</td>" "%s</td>"
"<td class=\"DAT\" style=\"text-align:right;\">" "<td class=\"DAT\" style=\"text-align:right;\">"
"%u" "%u"
@ -488,6 +493,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
Gbl.Prefs.IconsURL,Net_WebsAndSocialNetworksDB[Web], Gbl.Prefs.IconsURL,Net_WebsAndSocialNetworksDB[Web],
Net_TitleWebsAndSocialNetworks[Web], Net_TitleWebsAndSocialNetworks[Web],
Net_TitleWebsAndSocialNetworks[Web], Net_TitleWebsAndSocialNetworks[Web],
Net_TitleWebsAndSocialNetworks[Web],
NumUsrs, NumUsrs,
NumUsrsTotalInPlatform ? 100.0 * (float) NumUsrs / (float) NumUsrsTotalInPlatform : NumUsrsTotalInPlatform ? 100.0 * (float) NumUsrs / (float) NumUsrsTotalInPlatform :
0.0); 0.0);

View File

@ -404,7 +404,8 @@ void Not_ShowNotices (Not_Listing_t TypeNoticesListing)
RSS_WriteRSSLink (Gbl.F.Out,Gbl.CurrentCrs.Crs.CrsCod); RSS_WriteRSSLink (Gbl.F.Out,Gbl.CurrentCrs.Crs.CrsCod);
fprintf (Gbl.F.Out,"\" target=\"_blank\">" fprintf (Gbl.F.Out,"\" target=\"_blank\">"
"<img src=\"%s/rss16x16.gif\"" "<img src=\"%s/rss16x16.gif\""
" alt=\"RSS\" title=\"RSS\" class=\"ICON16x16\" />" " alt=\"RSS\" title=\"RSS\""
" class=\"ICON16x16\" />"
"</a>" "</a>"
"</div>", "</div>",
Gbl.Prefs.IconsURL); Gbl.Prefs.IconsURL);
@ -520,19 +521,22 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
case Not_ACTIVE_NOTICE: case Not_ACTIVE_NOTICE:
fprintf (Gbl.F.Out,"<span title=\"%s\">" fprintf (Gbl.F.Out,"<span title=\"%s\">"
"<img src=\"%s/visible_off16x16.gif\"" "<img src=\"%s/visible_off16x16.gif\""
" alt=\"%s\" class=\"ICON16x16\" />" " alt=\"%s\" title=\"%s\" class=\"ICON16x16\" />"
"</span>", "</span>",
Txt_NOTICE_Active_SINGULAR, Txt_NOTICE_Active_SINGULAR,
Gbl.Prefs.IconsURL, Gbl.Prefs.IconsURL,
Txt_NOTICE_Active_SINGULAR,
Txt_NOTICE_Active_SINGULAR); Txt_NOTICE_Active_SINGULAR);
break; break;
case Not_OBSOLETE_NOTICE: case Not_OBSOLETE_NOTICE:
fprintf (Gbl.F.Out,"<span title=\"%s\">" fprintf (Gbl.F.Out,"<span title=\"%s\">"
"<img src=\"%s/hidden_off16x16.gif\"" "<img src=\"%s/hidden_off16x16.gif\""
" alt=\"%s\" class=\"ICON16x16\" />" " alt=\"%s\" title=\"%s\""
" class=\"ICON16x16\" />"
"</span>", "</span>",
Txt_NOTICE_Obsolete_SINGULAR, Txt_NOTICE_Obsolete_SINGULAR,
Gbl.Prefs.IconsURL, Gbl.Prefs.IconsURL,
Txt_NOTICE_Obsolete_SINGULAR,
Txt_NOTICE_Obsolete_SINGULAR); Txt_NOTICE_Obsolete_SINGULAR);
break; break;
} }
@ -568,9 +572,11 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
Not_PutHiddenParamNotCod (NotCod); Not_PutHiddenParamNotCod (NotCod);
Act_LinkFormSubmit (Txt_See_full_notice,The_ClassFormul[Gbl.Prefs.Theme]); Act_LinkFormSubmit (Txt_See_full_notice,The_ClassFormul[Gbl.Prefs.Theme]);
fprintf (Gbl.F.Out,"<img src=\"%s/ellipsis32x32.gif\"" fprintf (Gbl.F.Out,"<img src=\"%s/ellipsis32x32.gif\""
" alt=\"%s\" class=\"ICON32x32\" />" " alt=\"%s\" title=\"%s\""
" class=\"ICON32x32\" />"
"</a>", "</a>",
Gbl.Prefs.IconsURL, Gbl.Prefs.IconsURL,
Txt_See_full_notice,
Txt_See_full_notice); Txt_See_full_notice);
Act_FormEnd (); Act_FormEnd ();
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
@ -597,11 +603,12 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
Not_PutHiddenParamNotCod (NotCod); Not_PutHiddenParamNotCod (NotCod);
Act_LinkFormSubmit (Txt_Remove_notice,The_ClassFormul[Gbl.Prefs.Theme]); Act_LinkFormSubmit (Txt_Remove_notice,The_ClassFormul[Gbl.Prefs.Theme]);
fprintf (Gbl.F.Out,"<img src=\"%s/delon16x16.gif\"" fprintf (Gbl.F.Out,"<img src=\"%s/delon16x16.gif\""
" alt=\"%s\" class=\"ICON16x16\" />" " alt=\"%s\" title=\"%s\""
" class=\"ICON16x16\" />"
" %s</a>", " %s</a>",
Gbl.Prefs.IconsURL, Gbl.Prefs.IconsURL,
Txt_Remove_notice, Txt_Remove_notice,
Txt_Remove); Txt_Remove,Txt_Remove_notice);
Act_FormEnd (); Act_FormEnd ();
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");

View File

@ -441,10 +441,12 @@ void Ntf_ShowMyNotifications (void)
Act_FormEnd (); Act_FormEnd ();
} }
else else
fprintf (Gbl.F.Out,"<img src=\"%s/%s16x16.gif\" alt=\"%s\"" fprintf (Gbl.F.Out,"<img src=\"%s/%s16x16.gif\""
" alt=\"%s\" title=\"%s\""
" class=\"ICON16x16\" />", " class=\"ICON16x16\" />",
Gbl.Prefs.IconsURL, Gbl.Prefs.IconsURL,
Ntf_Icons[NotifyEvent], Ntf_Icons[NotifyEvent],
Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent],
Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent]); Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent]);
fprintf (Gbl.F.Out,"</td>"); fprintf (Gbl.F.Out,"</td>");
@ -1803,6 +1805,7 @@ void Ntf_WriteNumberOfNewNtfs (void)
extern const char *Txt_See_notifications; extern const char *Txt_See_notifications;
extern const char *Txt_notification; extern const char *Txt_notification;
extern const char *Txt_notifications; extern const char *Txt_notifications;
extern const char *Txt_Notifications;
extern const char *Txt_NOTIF_new_SINGULAR; extern const char *Txt_NOTIF_new_SINGULAR;
extern const char *Txt_NOTIF_new_PLURAL; extern const char *Txt_NOTIF_new_PLURAL;
unsigned NumUnseenNtfs; unsigned NumUnseenNtfs;
@ -1831,9 +1834,12 @@ void Ntf_WriteNumberOfNewNtfs (void)
/***** Icon *****/ /***** Icon *****/
fprintf (Gbl.F.Out,"<br />" fprintf (Gbl.F.Out,"<br />"
"<img src=\"%s/bell16x16.png\"" "<img src=\"%s/bell16x16.png\""
" alt=\"%s\" title=\"%s\""
" style=\"width:16px; height:16px;" " style=\"width:16px; height:16px;"
" vertical-align:middle;\" /> ", " vertical-align:middle;\" /> ",
Gbl.Prefs.PathTheme); Gbl.Prefs.PathTheme,
Txt_Notifications,
Txt_Notifications);
/***** Number of new notifications *****/ /***** Number of new notifications *****/
if (NumNewNtfs == 1) if (NumNewNtfs == 1)

View File

@ -422,6 +422,7 @@ void Pho_ReceivePhotoAndDetectFaces (bool ItsMe,const struct UsrData *UsrDat)
extern const char *Txt_X_faces_marked_in_red_have_been_detected_; extern const char *Txt_X_faces_marked_in_red_have_been_detected_;
extern const char *Txt_X_faces_have_been_detected_in_front_position_1_Z_; extern const char *Txt_X_faces_have_been_detected_in_front_position_1_Z_;
extern const char *Txt_X_faces_have_been_detected_in_front_position_Y_Z_; extern const char *Txt_X_faces_have_been_detected_in_front_position_Y_Z_;
extern const char *Txt_Faces_detected;
char PathPhotosPriv[PATH_MAX+1]; char PathPhotosPriv[PATH_MAX+1];
char PathPhotosPubl[PATH_MAX+1]; char PathPhotosPubl[PATH_MAX+1];
char PathPhotosTmpPubl[PATH_MAX+1]; char PathPhotosTmpPubl[PATH_MAX+1];
@ -634,9 +635,13 @@ void Pho_ReceivePhotoAndDetectFaces (bool ItsMe,const struct UsrData *UsrDat)
sprintf (FileNamePhotoMap,"%s/%s/%s/%s_map.jpg", sprintf (FileNamePhotoMap,"%s/%s/%s/%s_map.jpg",
Cfg_PATH_SWAD_PUBLIC,Cfg_FOLDER_PHOTO,Cfg_FOLDER_PHOTO_TMP,Gbl.UniqueNameEncrypted); Cfg_PATH_SWAD_PUBLIC,Cfg_FOLDER_PHOTO,Cfg_FOLDER_PHOTO_TMP,Gbl.UniqueNameEncrypted);
fprintf (Gbl.F.Out,"<div class=\"TIT\" style=\"text-align:center;\">" fprintf (Gbl.F.Out,"<div class=\"TIT\" style=\"text-align:center;\">"
"<img src=\"%s/%s/%s/%s_map.jpg\" usemap=\"#faces_map\" />" "<img src=\"%s/%s/%s/%s_map.jpg\""
" usemap=\"#faces_map\""
" alt=\"%s\" title=\"%s\" />"
"</div>", "</div>",
Cfg_HTTPS_URL_SWAD_PUBLIC,Cfg_FOLDER_PHOTO,Cfg_FOLDER_PHOTO_TMP,Gbl.UniqueNameEncrypted); Cfg_HTTPS_URL_SWAD_PUBLIC,Cfg_FOLDER_PHOTO,Cfg_FOLDER_PHOTO_TMP,
Gbl.UniqueNameEncrypted,
Txt_Faces_detected,Txt_Faces_detected);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -726,11 +731,14 @@ static void Pho_UpdatePhoto2 (void)
fprintf (Gbl.F.Out,"<td class=\"DAT\" style=\"width:33%%;" fprintf (Gbl.F.Out,"<td class=\"DAT\" style=\"width:33%%;"
" text-align:center; vertical-align:top;\">" " text-align:center; vertical-align:top;\">"
"<img src=\"%s/%s/%s/%s_paso%u.jpg\"" "<img src=\"%s/%s/%s/%s_paso%u.jpg\""
" alt=\"%s\" title=\"%s\""
" style=\"width:%upx; height:%upx;\" />" " style=\"width:%upx; height:%upx;\" />"
"<br />%s" "<br />%s"
"</td>", "</td>",
Cfg_HTTPS_URL_SWAD_PUBLIC,Cfg_FOLDER_PHOTO,Cfg_FOLDER_PHOTO_TMP, Cfg_HTTPS_URL_SWAD_PUBLIC,Cfg_FOLDER_PHOTO,Cfg_FOLDER_PHOTO_TMP,
Gbl.Usrs.FileNamePhoto,NumPhoto + 1, Gbl.Usrs.FileNamePhoto,NumPhoto + 1,
Txt_PHOTO_PROCESSING_CAPTIONS[NumPhoto],
Txt_PHOTO_PROCESSING_CAPTIONS[NumPhoto],
Pho_PHOTO_REAL_WIDTH,Pho_PHOTO_REAL_HEIGHT, Pho_PHOTO_REAL_WIDTH,Pho_PHOTO_REAL_HEIGHT,
Txt_PHOTO_PROCESSING_CAPTIONS[NumPhoto]); Txt_PHOTO_PROCESSING_CAPTIONS[NumPhoto]);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>"
@ -1021,10 +1029,10 @@ void Pho_ShowUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
fprintf (Gbl.F.Out,"%s",PhotoURL); fprintf (Gbl.F.Out,"%s",PhotoURL);
else else
fprintf (Gbl.F.Out,"%s/usr_bl.jpg",Gbl.Prefs.IconsURL); fprintf (Gbl.F.Out,"%s/usr_bl.jpg",Gbl.Prefs.IconsURL);
fprintf (Gbl.F.Out,"\" class=\"%s\"",ClassPhoto); fprintf (Gbl.F.Out,"\" alt=\"%s\" title=\"%s\""
if (SpecialFullName[0] && " class=\"%s\"",
Act_Actions[Gbl.CurrentAct].BrowserWindow == Act_MAIN_WINDOW) // Only in main window SpecialFullName,SpecialFullName,
fprintf (Gbl.F.Out," title=\"%s\"",SpecialFullName); ClassPhoto);
/***** Image zoom *****/ /***** Image zoom *****/
if (PutZoomCode) if (PutZoomCode)
@ -2216,7 +2224,9 @@ static void Pho_ShowDegreeAvgPhotoAndStat (struct Degree *Deg,Pho_AvgPhotoSeeOrP
fprintf (Gbl.F.Out,"%s/usr_bl.jpg\"" fprintf (Gbl.F.Out,"%s/usr_bl.jpg\""
" style=\"width:%upx; height:%upx;\"", " style=\"width:%upx; height:%upx;\"",
Gbl.Prefs.IconsURL,PhotoWidth,PhotoHeight); Gbl.Prefs.IconsURL,PhotoWidth,PhotoHeight);
fprintf (Gbl.F.Out," alt=\"%s\" />",Deg->FullName); fprintf (Gbl.F.Out," alt=\"%s\" title=\"%s\" />",
Deg->ShortName,
Deg->FullName);
if (SeeOrPrint == Pho_DEGREES_PRINT) if (SeeOrPrint == Pho_DEGREES_PRINT)
fprintf (Gbl.F.Out,"<span class=\"CLASSPHOTO\">"); fprintf (Gbl.F.Out,"<span class=\"CLASSPHOTO\">");
fprintf (Gbl.F.Out,"<br />%s<br />%d&nbsp;%s<br />%d&nbsp;%s<br />(%d%%)", fprintf (Gbl.F.Out,"<br />%s<br />%d&nbsp;%s<br />%d&nbsp;%s<br />(%d%%)",

View File

@ -10794,6 +10794,27 @@ const char *Txt_X_faces_marked_in_red_have_been_detected_ = // Warning: it is ve
" but the background behind the heads is too dark."; // Necessita de tradução " but the background behind the heads is too dark."; // Necessita de tradução
#endif #endif
const char *Txt_Faces_detected =
#if L==0
"Rostros detectados"; // Necessita traduccio
#elif L==1
"Faces detected"; // Need Übersetzung
#elif L==2
"Faces detected";
#elif L==3
"Rostros detectados";
#elif L==4
"Faces detected"; // Besoin de traduction
#elif L==5
"Rostros detectados"; // Okoteve traducción
#elif L==6
"Faces detected"; // Bisogno di traduzione
#elif L==7
"Faces detected"; // Potrzebujesz tlumaczenie
#elif L==8
"Faces detected"; // Necessita de tradução
#endif
const char *Txt_Failed_email_confirmation_key = const char *Txt_Failed_email_confirmation_key =
#if L==0 #if L==0
"Error en la clave de confirmaci&oacute;n de correo."; // Necessita traduccio "Error en la clave de confirmaci&oacute;n de correo."; // Necessita traduccio