Version 16.7

This commit is contained in:
Antonio Cañas Vargas 2016-10-02 22:54:30 +02:00
parent 44de356aab
commit 4dc2044a9e
4 changed files with 133 additions and 37 deletions

View File

@ -143,13 +143,14 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.6.3 (2016-10-02)"
#define Log_PLATFORM_VERSION "SWAD 16.7 (2016-10-02)"
#define CSS_FILE "swad15.229.css"
#define JS_FILE "swad15.238.1.js"
// 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 16.7: Oct 02, 2016 Improvements user's usage report. (205645 lines)
Version 16.6.3: Oct 02, 2016 Current time in user's usage report. (205559 lines)
Version 16.6.2: Oct 02, 2016 Message translated. (205456 lines)
Version 16.6.1: Oct 02, 2016 Message translated. (205454 lines)

View File

@ -51,6 +51,7 @@
#define Cfg_PLATFORM_SHORT_NAME "SWAD local"
#define Cfg_PLATFORM_FULL_NAME "SWAD (Shared Workspace At a Distance)"
#define Cfg_PLATFORM_SERVER "localhost" // Server name (main part of the URL)
#define Cfg_URL_SWAD_SERVER "https://localhost/swad/" // With ending slash
#define Cfg_URL_SWAD_CGI "https://localhost/swad" // Without ending slash
#define Cfg_URL_SWAD_PUBLIC "https://localhost/swad" // Without ending slash
#define Cfg_PATH_CGI_BIN "/usr/lib/cgi-bin/swad" // Directory for this CGI and other commands called by it
@ -99,6 +100,7 @@
#define Cfg_PLATFORM_SHORT_NAME "OpenSWAD"
#define Cfg_PLATFORM_FULL_NAME "OpenSWAD (Open Shared Workspace At a Distance)"
#define Cfg_PLATFORM_SERVER "openswad.org" // Server name (main part of the URL)
#define Cfg_URL_SWAD_SERVER "https://openswad.org/" // With ending slash
#define Cfg_URL_SWAD_CGI "https://openswad.org" // Without ending slash
#define Cfg_URL_SWAD_PUBLIC "https://openswad.org/swad" // Without ending slash
#define Cfg_PATH_CGI_BIN "/var/www/cgi-bin/swad" // Directory for this CGI and other commands called by it
@ -164,6 +166,7 @@
#define Cfg_PLATFORM_SHORT_NAME "SWAD"
#define Cfg_PLATFORM_FULL_NAME "SWAD (Shared Workspace At a Distance)"
#define Cfg_PLATFORM_SERVER "swad.ugr.es" // Server name (main part of the URL)
#define Cfg_URL_SWAD_SERVER "https://swad.ugr.es/" // With ending slash
#define Cfg_URL_SWAD_CGI "https://swad.ugr.es" // Without ending slash
#define Cfg_URL_SWAD_PUBLIC "https://swad.ugr.es/swad" // Without ending slash
#define Cfg_PATH_CGI_BIN "/var/www/cgi-bin" // Directory for this CGI and other commands called by it
@ -234,6 +237,7 @@
#define Cfg_PLATFORM_SHORT_NAME "SWADberry"
#define Cfg_PLATFORM_FULL_NAME "SWADberry (Shared Workspace At a Distance on a Raspberry Pi)"
#define Cfg_PLATFORM_SERVER "swadberry.ugr.es" // Server name (main part of the URL)
#define Cfg_URL_SWAD_SERVER "https://swadberry.ugr.es/" // With ending slash
#define Cfg_URL_SWAD_CGI "https://swadberry.ugr.es" // Without ending slash
#define Cfg_URL_SWAD_PUBLIC "https://swadberry.ugr.es/swad" // Without ending slash
#define Cfg_PATH_CGI_BIN "/usr/lib/cgi-bin/swad" // Directory for this CGI and other commands called by it

View File

@ -42,7 +42,7 @@
/***************************** Private constants *****************************/
/*****************************************************************************/
#define Rep_MAX_BAR_WIDTH 90 // Maximum width of graphic bar
#define Rep_MAX_BAR_WIDTH 80 // Maximum width of graphic bar
// #define Rep_BLOCK "═" // HTML code for a block in graphic bar
// #define Rep_BLOCK "▒" // HTML code for a block in graphic bar
// #define Rep_BLOCK "█" // HTML code for a block in graphic bar
@ -120,13 +120,17 @@ void Rep_PrintMyUsageReport (void)
static void Rep_ShowOrPrintMyUsageReport (Rep_SeeOrPrint_t SeeOrPrint)
{
extern const char *Txt_Report_of_use_of_the_platform;
extern const char *Txt_Report;
extern const char *Txt_Report_of_use_of_PLATFORM;
extern const char *Txt_Teaching_platform;
extern const char *Txt_Name;
extern const char *Txt_TAGLINE;
extern const char *Txt_Personal_information;
extern const char *Txt_User[Usr_NUM_SEXS];
extern const char *Txt_ID;
extern const char *Txt_Email;
extern const char *Txt_Country;
extern const char *Txt_Institution;
extern const char *Txt_URL;
extern const char *Txt_Figures;
extern const char *Txt_TIME_Since;
extern const char *Txt_TIME_until;
@ -147,6 +151,7 @@ static void Rep_ShowOrPrintMyUsageReport (Rep_SeeOrPrint_t SeeOrPrint)
extern const char *Txt_message;
extern const char *Txt_messages;
extern const char *Txt_Courses;
extern const char *Txt_historical_log;
extern const char *Txt_Hits;
char BrowserTimeZone[Dat_MAX_BYTES_TIME_ZONE+1];
unsigned NumID;
@ -189,28 +194,50 @@ static void Rep_ShowOrPrintMyUsageReport (Rep_SeeOrPrint_t SeeOrPrint)
/***** Start frame *****/
if (SeeOrPrint == Rep_SEE)
Lay_StartRoundFrame (NULL,Txt_Report_of_use_of_the_platform,
Lay_StartRoundFrame (NULL,Txt_Report,
Rep_PutIconToPrintMyUsageReport);
fprintf (Gbl.F.Out,"<div class=\"LEFT_TOP\" style=\"margin:10px;\">");
/***** Head *****/
fprintf (Gbl.F.Out,"<h1>%s</h1>",Txt_Report_of_use_of_the_platform);
fprintf (Gbl.F.Out,"<h2>%s",Gbl.Usrs.Me.UsrDat.FullName);
sprintf (Gbl.Title,Txt_Report_of_use_of_PLATFORM,Cfg_PLATFORM_SHORT_NAME);
fprintf (Gbl.F.Out,"<div style=\"margin:10px; text-align:center;\">"
"<h1>%s</h1>"
"<h2>%s",
Gbl.Title,
Gbl.Usrs.Me.UsrDat.FullName);
if (StrCurrentDate[0])
fprintf (Gbl.F.Out,", %s",StrCurrentDate);
fprintf (Gbl.F.Out,"</h2>");
fprintf (Gbl.F.Out,"</h2>"
"</div>");
fprintf (Gbl.F.Out,"<div style=\"margin:10px; text-align:left;\">");
/***** Platform *****/
fprintf (Gbl.F.Out,"<h3>%s</h3>"
"<ul>",
Txt_Teaching_platform);
/* Platform name */
fprintf (Gbl.F.Out,"<li>%s: %s, %s</li>",
Txt_Name,
Cfg_PLATFORM_FULL_NAME,Txt_TAGLINE);
/* Server URL */
fprintf (Gbl.F.Out,"<li>%s: <a href=\"%s\">%s</a></li>",
Txt_URL,Cfg_URL_SWAD_SERVER,Cfg_URL_SWAD_SERVER);
fprintf (Gbl.F.Out,"</ul>");
/***** Personal information *****/
fprintf (Gbl.F.Out,"<h3>%s</h3>"
"<ul>",
Txt_Personal_information);
/***** User's name *****/
/* User's name */
fprintf (Gbl.F.Out,"<li>%s: <strong>%s</strong></li>",
Txt_User[Gbl.Usrs.Me.UsrDat.Sex],
Txt_Name,
Gbl.Usrs.Me.UsrDat.FullName);
/***** User's ID *****/
/* User's ID */
fprintf (Gbl.F.Out,"<li>%s:",
Txt_ID);
for (NumID = 0;
@ -223,18 +250,18 @@ static void Rep_ShowOrPrintMyUsageReport (Rep_SeeOrPrint_t SeeOrPrint)
}
fprintf (Gbl.F.Out,"</li>");
/***** User's e-mail *****/
/* User's e-mail */
fprintf (Gbl.F.Out,"<li>%s: %s</li>",
Txt_Email,
Gbl.Usrs.Me.UsrDat.Email);
/***** User's country *****/
/* User's country */
Cty_GetCountryName (Gbl.Usrs.Me.UsrDat.CtyCod,CtyName);
fprintf (Gbl.F.Out,"<li>%s: %s</li>",
Txt_Country,
CtyName);
/***** User's institution *****/
/* User's institution */
Ins.InsCod = Gbl.Usrs.Me.UsrDat.InsCod;
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
fprintf (Gbl.F.Out,"<li>%s: %s</li>",
@ -248,10 +275,10 @@ static void Rep_ShowOrPrintMyUsageReport (Rep_SeeOrPrint_t SeeOrPrint)
"<ul>",
Txt_Figures);
/***** Get figures *****/
/* Get figures */
Prf_GetUsrFigures (Gbl.Usrs.Me.UsrDat.UsrCod,&UsrFigures);
/***** Time since first click until now *****/
/* Time since first click until now */
fprintf (Gbl.F.Out,"<li>%s ",Txt_TIME_Since);
if (UsrFigures.FirstClickTimeUTC)
{
@ -282,7 +309,7 @@ static void Rep_ShowOrPrintMyUsageReport (Rep_SeeOrPrint_t SeeOrPrint)
}
fprintf (Gbl.F.Out,"</li>");
/***** Number of clicks *****/
/* Number of clicks */
fprintf (Gbl.F.Out,"<li>%s: ",Txt_Clicks);
if (UsrFigures.NumClicks >= 0)
{
@ -299,7 +326,7 @@ static void Rep_ShowOrPrintMyUsageReport (Rep_SeeOrPrint_t SeeOrPrint)
fprintf (Gbl.F.Out,"?");
fprintf (Gbl.F.Out,"</li>");
/***** Number of files currently published *****/
/* Number of files currently published */
if ((NumFiles = Brw_GetNumFilesUsr (Gbl.Usrs.Me.UsrDat.UsrCod)))
NumPublicFiles = Brw_GetNumPublicFilesUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
else
@ -313,7 +340,7 @@ static void Rep_ShowOrPrintMyUsageReport (Rep_SeeOrPrint_t SeeOrPrint)
Txt_files,
NumPublicFiles,Txt_public_FILES);
/***** Number of file views *****/
/* Number of file views */
fprintf (Gbl.F.Out,"<li>%s: ",Txt_Downloads);
if (UsrFigures.NumFileViews >= 0)
{
@ -333,7 +360,7 @@ static void Rep_ShowOrPrintMyUsageReport (Rep_SeeOrPrint_t SeeOrPrint)
fprintf (Gbl.F.Out,"?");
fprintf (Gbl.F.Out,"</li>");
/***** Number of posts in forums *****/
/* Number of posts in forums */
fprintf (Gbl.F.Out,"<li>%s: ",Txt_Forum_posts);
if (UsrFigures.NumForPst >= 0)
{
@ -353,7 +380,7 @@ static void Rep_ShowOrPrintMyUsageReport (Rep_SeeOrPrint_t SeeOrPrint)
fprintf (Gbl.F.Out,"?");
fprintf (Gbl.F.Out,"</li>");
/***** Number of messages sent *****/
/* Number of messages sent */
fprintf (Gbl.F.Out,"<li>%s: ",Txt_Messages_sent);
if (UsrFigures.NumMsgSnt >= 0)
{
@ -396,9 +423,9 @@ static void Rep_ShowOrPrintMyUsageReport (Rep_SeeOrPrint_t SeeOrPrint)
fprintf (Gbl.F.Out,"</ul>");
/***** Historic courses *****/
fprintf (Gbl.F.Out,"<h3>%s (hist&oacute;rico)</h3>" // TODO: Need translation!!!
fprintf (Gbl.F.Out,"<h3>%s (%s)</h3>"
"<ul>",
Txt_Courses);
Txt_Courses,Txt_historical_log);
/* Number of courses in which the user clicked as student/teacher */
for (Role = Rol_STUDENT;
@ -572,6 +599,7 @@ static void Rep_GetAndWriteHistoricCrssOfAUsr (const struct UsrData *UsrDat,Rol_
struct tm *tm_FirstClickTime,
unsigned long MaxHitsPerYear)
{
extern const char *Txt_Hits_as_a_USER;
extern const char *Txt_ROLES_SINGUL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
char Query[1024];
MYSQL_RES *mysql_res;
@ -592,7 +620,7 @@ static void Rep_GetAndWriteHistoricCrssOfAUsr (const struct UsrData *UsrDat,Rol_
if ((NumCrss = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get courses of a user")))
{
/* Heading row */
sprintf (Gbl.Title,"Accesos como %s", // TODO: Need translation
sprintf (Gbl.Title,Txt_Hits_as_a_USER,
Txt_ROLES_SINGUL_abc[Role][Gbl.Usrs.Me.UsrDat.Sex]);
fprintf (Gbl.F.Out,"<li>%s:"
"<ol>",

View File

@ -13972,6 +13972,27 @@ const char *Txt_Hide_right_column =
"Ocultar coluna da direita";
#endif
const char *Txt_historical_log =
#if L==1
"registre hist&ograve;ric";
#elif L==2
"historische log";
#elif L==3
"historical log";
#elif L==4
"registro hist&oacute;rico";
#elif L==5
"journal historique";
#elif L==6
"registro hist&oacute;rico"; // Okoteve traducción
#elif L==7
"registro storico";
#elif L==8
"dziennik historyczny";
#elif L==9
"log hist&oacute;rico";
#endif
const char *Txt_Hits = // hits = visits, clicks, page views...
#if L==1
"Accessos";
@ -13993,6 +14014,27 @@ const char *Txt_Hits = // hits = visits, clicks, page views...
"Visitas";
#endif
const char *Txt_Hits_as_a_USER = // hits = visits, clicks, page views... Warning: it is very important to include %s in the following sentences
#if L==1
"Accessos (clics) com a %s";
#elif L==2
"Anmeldungen (Klicks) als %s";
#elif L==3
"Hits (clicks) as a %s";
#elif L==4
"Accesos (clics) como %s";
#elif L==5
"Visites (clics) en tant que %s";
#elif L==6
"Accesos (clics) como %s"; // Okoteve traducción
#elif L==7
"Visite (scatti) come %s";
#elif L==8
"Ods&lstrok;on (klikni&eogon;cia) jako %s";
#elif L==9
"Visitas (cliques) como %s";
#endif
const char *Txt_Holiday =
#if L==1
"Festivitat";
@ -31006,7 +31048,7 @@ const char *Txt_Reply_message = // "Reply" as a noun, not as a verb
#elif L==9
"Mensagem de resposta";
#endif
/*
const char *Txt_Report =
#if L==1
"Informe";
@ -31027,26 +31069,26 @@ const char *Txt_Report =
#elif L==9
"Relat&oacute;rio";
#endif
*/
const char *Txt_Report_of_use_of_the_platform =
const char *Txt_Report_of_use_of_PLATFORM = // Warning: it is very important to include %s in the following sentences
#if L==1
"Informe d'&uacute;s de la plataforma";
"Informe d'&uacute;s de %s";
#elif L==2
"Bericht der Nutzung der Plattform";
"Bericht der Nutzung der %s";
#elif L==3
"Report of use of the platform";
"Report of use of %s";
#elif L==4
"Informe de uso de la plataforma";
"Informe de uso de %s";
#elif L==5
"Rapport d'utilisation de la plate-forme";
"Rapport d'utilisation de %s";
#elif L==6
"Informe de uso de la plataforma"; // Okoteve traducción
"Informe de uso de %s"; // Okoteve traducción
#elif L==7
"Rapporto di utilizzo della piattaforma";
"Rapporto di utilizzo de %s";
#elif L==8
"Sprawozdanie z wykorzystaniem platformy";
"Sprawozdanie z wykorzystaniem %s";
#elif L==9
"Relat&oacute;rio de utiliza&ccedil;&atilde;o da plataforma";
"Relat&oacute;rio de utiliza&ccedil;&atilde;o de %s";
#endif
const char *Txt_Report_possible_duplicate_user =
@ -40857,6 +40899,27 @@ const char *Txt_teachers_files_area =
"zona de arquivos dos professores";
#endif
const char *Txt_Teaching_platform =
#if L==1
"Plataforma docent";
#elif L==2
"Lernplattform ";
#elif L==3
"Teaching platform";
#elif L==4
"Plataforma docente";
#elif L==5
"Plate-forme d'enseignement";
#elif L==6
"Plataforma docente"; // Okoteve traducción
#elif L==7
"Piattaforma didattica";
#elif L==8
"Platforma nauczania";
#elif L==9
"Plataforma de ensino";
#endif
const char *Txt_Temporary_private_storage_area =
#if L==1
"Zona d'emmagatzematge privada";