Version 15.77.6

This commit is contained in:
Antonio Cañas Vargas 2015-12-29 10:38:46 +01:00
parent 4074ebf32f
commit bd48b11e4f
8 changed files with 325 additions and 70 deletions

View File

@ -1533,6 +1533,7 @@ a:hover img.CENTRE_PHOTO_SHOW
.DAT_NOBR {color:#707070; font-size:13pt; white-space:nowrap;}
.DAT_N {color:black; font-size:13pt;}
.DAT_NOBR_N {color:black; font-size:13pt; white-space:nowrap;}
.DAT_N_BOLD {color:black; font-size:13pt; font-weight:bold;}
/*********************** Line in top part of a table row *********************/
.DAT_N_LINE_TOP
@ -1680,13 +1681,13 @@ a:hover img.CENTRE_PHOTO_SHOW
display:inline-block;
box-sizing:border-box;
padding:0 0 10px 10px;
width:500px;
width:450px;
}
.SOCIAL_RIGHT_AUTHOR
{
display:inline-block;
box-sizing:border-box;
width:300px;
width:270px;
text-align:left;
vertical-align:top;
}
@ -1694,7 +1695,7 @@ a:hover img.CENTRE_PHOTO_SHOW
{
display:inline-block;
box-sizing:border-box;
width:190px;
width:170px;
text-align:right;
vertical-align:top;
}

View File

@ -115,12 +115,13 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 15.77.5 (2015-12-29)"
#define CSS_FILE "swad15.77.5.css"
#define Log_PLATFORM_VERSION "SWAD 15.77.6 (2015-12-29)"
#define CSS_FILE "swad15.77.6.css"
// 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 15.77.6: Dec 29, 2015 Show type of event on social events (timeline). (188647 lines)
Version 15.77.5: Dec 29, 2015 Insert social event when publishing an exam announcement.
Changes in CSS related to social activity. (188392 lines)
Version 15.77.4: Dec 29, 2015 Insert social event when publishing a new notice.

View File

@ -3136,7 +3136,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
if (NumStds + NumTchs)
{
Style = "DAT_N";
StyleNoBR = "DAT_NOBR_N";
StyleNoBR = "DAT_N_NOBR";
}
else
{

View File

@ -42,33 +42,33 @@
// it is necessary to change old numbers to new ones in database tables notif and sta_notif
typedef enum
{
Ntf_EVENT_UNKNOWN = 0, // old 0
Ntf_EVENT_UNKNOWN = 0,
/* Course tab */
Ntf_EVENT_DOCUMENT_FILE = 1, // old 1
Ntf_EVENT_SHARED_FILE = 2, // old 2
Ntf_EVENT_DOCUMENT_FILE = 1,
Ntf_EVENT_SHARED_FILE = 2,
/* Assessment tab */
Ntf_EVENT_ASSIGNMENT = 3, // old 3
Ntf_EVENT_EXAM_ANNOUNCEMENT = 4, // old 4
Ntf_EVENT_MARKS_FILE = 5, // old 5
Ntf_EVENT_ASSIGNMENT = 3,
Ntf_EVENT_EXAM_ANNOUNCEMENT = 4,
Ntf_EVENT_MARKS_FILE = 5,
/* Enrollment tab */
Ntf_EVENT_ENROLLMENT_STUDENT = 6, // old 6
Ntf_EVENT_ENROLLMENT_TEACHER = 7,
Ntf_EVENT_ENROLLMENT_REQUEST = 8, // old 7
/* Users tab */
Ntf_EVENT_ENROLLMENT_STUDENT = 6,
Ntf_EVENT_ENROLLMENT_TEACHER = 7,
Ntf_EVENT_ENROLLMENT_REQUEST = 8,
/* Messages tab */
Ntf_EVENT_NOTICE = 9, // old 8
Ntf_EVENT_FORUM_POST_COURSE = 10, // old 9
Ntf_EVENT_FORUM_REPLY = 11, // old 10
Ntf_EVENT_MESSAGE = 12, // old 11
Ntf_EVENT_NOTICE = 9,
Ntf_EVENT_FORUM_POST_COURSE = 10,
Ntf_EVENT_FORUM_REPLY = 11,
Ntf_EVENT_MESSAGE = 12,
/* Statistics tab */
Ntf_EVENT_SURVEY = 13, // old 12
Ntf_EVENT_SURVEY = 13,
/* Profile tab */
Ntf_EVENT_FOLLOWER = 14, // old 13
/* Social tab */
Ntf_EVENT_FOLLOWER = 14, // TODO: Move up, between users tab and messages tab
} Ntf_NotifyEvent_t;

View File

@ -309,7 +309,7 @@ static void Prf_ShowDetailsUserProfile (const struct UsrData *UsrDat)
/***** Start left list *****/
fprintf (Gbl.F.Out,"<div id=\"prf_fig_left_container\">"
"<ul class=\"PRF_FIG_UL DAT_NOBR_N\">");
"<ul class=\"PRF_FIG_UL DAT_N_NOBR\">");
/***** Number of courses in which the user is teacher *****/
NumCrssUsrIsTeacher = Usr_GetNumCrssOfUsrWithARole (UsrDat->UsrCod,Rol_TEACHER);
@ -399,7 +399,7 @@ static void Prf_ShowDetailsUserProfile (const struct UsrData *UsrDat)
/***** Start left list *****/
fprintf (Gbl.F.Out,"<div id=\"prf_fig_right_container\">"
"<ul class=\"PRF_FIG_UL DAT_NOBR_N\">");
"<ul class=\"PRF_FIG_UL DAT_N_NOBR\">");
UsrIsBannedFromRanking = Usr_CheckIfUsrBanned (UsrDat->UsrCod);
if (!UsrIsBannedFromRanking)

View File

@ -77,6 +77,7 @@ static void Soc_GetEventSummary (Soc_SocialEvent_t SocialEvent,long Cod,
void Soc_ShowSocialActivity (void)
{
extern const char *Txt_Public_activity;
extern const char *Txt_SOCIAL_EVENT[Soc_NUM_SOCIAL_EVENTS];
extern const char *Txt_Forum;
extern const char *Txt_Course;
extern const char *Txt_Degree;
@ -88,7 +89,7 @@ void Soc_ShowSocialActivity (void)
MYSQL_ROW row;
unsigned long NumEvents;
unsigned long NumEvent;
Soc_SocialEvent_t SocialEvent = (Soc_SocialEvent_t) 0; // Initialized to avoid warning
Soc_SocialEvent_t SocialEvent;
struct UsrData UsrDat;
struct Country Cty;
struct Institution Ins;
@ -132,7 +133,7 @@ void Soc_ShowSocialActivity (void)
NumEvent < NumEvents;
NumEvent++)
{
/***** Get next notification *****/
/***** Get next social event *****/
row = mysql_fetch_row (mysql_res);
/* Get event type (row[0]) */
@ -184,7 +185,7 @@ void Soc_ShowSocialActivity (void)
/* Get time of the event (row[8]) */
DateTimeUTC = Dat_GetUNIXTimeFromStr (row[8]);
/***** Write row for this notification *****/
/***** Write row for this social event *****/
fprintf (Gbl.F.Out,"<li>");
/* Left: write author's photo */
@ -199,8 +200,9 @@ void Soc_ShowSocialActivity (void)
fprintf (Gbl.F.Out,"<div class=\"SOCIAL_RIGHT_CONTAINER\">");
/* Write author's full name and nickname */
fprintf (Gbl.F.Out,"<div class=\"SOCIAL_RIGHT_AUTHOR DAT\">"
"<strong>%s</strong> @%s"
fprintf (Gbl.F.Out,"<div class=\"SOCIAL_RIGHT_AUTHOR\">"
"<span class=\"DAT_N_BOLD\">%s</span>"
"<span class=\"DAT_LIGHT\"> @%s</span>"
"</div>",
UsrDat.FullName,UsrDat.Nickname);
@ -208,22 +210,30 @@ void Soc_ShowSocialActivity (void)
Soc_WriteEventDate (DateTimeUTC);
/* Write event type and location */
fprintf (Gbl.F.Out,"<div class=\"DAT\">%u: ",
(unsigned) SocialEvent);
if (SocialEvent != Soc_EVENT_SOCIAL_POST)
{
fprintf (Gbl.F.Out,"<div class=\"DAT_N\">%s</div>",
Txt_SOCIAL_EVENT[SocialEvent]);
if (SocialEvent == Soc_EVENT_FORUM_POST)
fprintf (Gbl.F.Out,"%s: %s",Txt_Forum,ForumName);
else if (Crs.CrsCod > 0)
fprintf (Gbl.F.Out,"%s: %s",Txt_Course,Crs.ShortName);
else if (Deg.DegCod > 0)
fprintf (Gbl.F.Out,"%s: %s",Txt_Degree,Deg.ShortName);
else if (Ctr.CtrCod > 0)
fprintf (Gbl.F.Out,"%s: %s",Txt_Centre,Ctr.ShortName);
else if (Ins.InsCod > 0)
fprintf (Gbl.F.Out,"%s: %s",Txt_Institution,Ins.ShortName);
else if (Cty.CtyCod > 0)
fprintf (Gbl.F.Out,"%s: %s",Txt_Country,Cty.Name[Gbl.Prefs.Language]);
fprintf (Gbl.F.Out,"</div>");
if (SocialEvent == Soc_EVENT_FORUM_POST)
fprintf (Gbl.F.Out,"<div class=\"DAT\">%s: %s</div>",
Txt_Forum,ForumName);
else if (Crs.CrsCod > 0)
fprintf (Gbl.F.Out,"<div class=\"DAT\">%s: %s</div>",
Txt_Course,Crs.ShortName);
else if (Deg.DegCod > 0)
fprintf (Gbl.F.Out,"<div class=\"DAT\">%s: %s</div>",
Txt_Degree,Deg.ShortName);
else if (Ctr.CtrCod > 0)
fprintf (Gbl.F.Out,"<div class=\"DAT\">%s: %s</div>",
Txt_Centre,Ctr.ShortName);
else if (Ins.InsCod > 0)
fprintf (Gbl.F.Out,"<div class=\"DAT\">%s: %s</div>",
Txt_Institution,Ins.ShortName);
else if (Cty.CtyCod > 0)
fprintf (Gbl.F.Out,"<div class=\"DAT\">%s: %s</div>",
Txt_Country,Cty.Name[Gbl.Prefs.Language]);
}
/* Write content of the event */
Soc_GetEventSummary (SocialEvent,Cod,

View File

@ -41,35 +41,35 @@
typedef enum
{
Soc_EVENT_UNKNOWN = 0,
Soc_EVENT_UNKNOWN = 0,
/* Institution tab */
Soc_EVENT_INS_DOC_PUB_FILE = 1,
Soc_EVENT_INS_SHA_PUB_FILE = 2,
Soc_EVENT_INS_DOC_PUB_FILE = 1,
Soc_EVENT_INS_SHA_PUB_FILE = 2,
/* Centre tab */
Soc_EVENT_CTR_DOC_PUB_FILE = 3,
Soc_EVENT_CTR_SHA_PUB_FILE = 4,
Soc_EVENT_CTR_DOC_PUB_FILE = 3,
Soc_EVENT_CTR_SHA_PUB_FILE = 4,
/* Degree tab */
Soc_EVENT_DEG_DOC_PUB_FILE = 5,
Soc_EVENT_DEG_SHA_PUB_FILE = 6,
Soc_EVENT_DEG_DOC_PUB_FILE = 5,
Soc_EVENT_DEG_SHA_PUB_FILE = 6,
/* Course tab */
Soc_EVENT_CRS_DOC_PUB_FILE = 7,
Soc_EVENT_CRS_SHA_PUB_FILE = 8,
Soc_EVENT_CRS_DOC_PUB_FILE = 7,
Soc_EVENT_CRS_SHA_PUB_FILE = 8,
/* Assessment tab */
Soc_EVENT_EXAM_ANNOUNCEMENT = 9,
Soc_EVENT_EXAM_ANNOUNCEMENT = 9,
/* Enrollment tab */
/* Users tab */
/* Social tab */
Soc_EVENT_SOCIAL_POST = 10,
Soc_EVENT_SOCIAL_POST = 10,
/* Messages tab */
Soc_EVENT_NOTICE = 11,
Soc_EVENT_FORUM_POST = 12,
Soc_EVENT_NOTICE = 11,
Soc_EVENT_FORUM_POST = 12,
/* Statistics tab */

View File

@ -80,6 +80,7 @@
#include "swad_photo.h"
#include "swad_QR.h"
#include "swad_record.h"
#include "swad_social.h"
#include "swad_statistic.h"
#include "swad_survey.h"
#include "swad_syllabus.h"
@ -35118,26 +35119,268 @@ const char *Txt_Size_of_photos =
"Tamanho das fotos";
#endif
const char *Txt_Skype =
#if L==1
"Skype&trade;";
const char *Txt_SOCIAL_EVENT[Soc_NUM_SOCIAL_EVENTS] =
{
#if L==1 // Soc_EVENT_UNKNOWN
"Esdeveniment desconegut"
#elif L==2
"Skype&trade;";
"Unbekannt Ereignis"
#elif L==3
"Skype&trade;";
"Unknown event"
#elif L==4
"Skype&trade;";
"Evento desconocido"
#elif L==5
"Skype&trade;";
"&Eacute;v&eacute;nement inconnu"
#elif L==6
"Skype&trade;"; // Okoteve traducción
"Evento desconocido" // Okoteve traducción
#elif L==7
"Skype&trade;";
"Evento sconosciuto"
#elif L==8
"Skype&trade;";
"Nieznane zdarzenia"
#elif L==9
"Skype&trade;";
"Evento desconhecido"
#endif
,
#if L==1 // Soc_EVENT_INS_DOC_PUB_FILE
"Document"
#elif L==2
"Dokumentdatei"
#elif L==3
"Document file"
#elif L==4
"Documento"
#elif L==5
"Fichier de document"
#elif L==6
"Documento" // Okoteve traducción
#elif L==7
"Documento"
#elif L==8
"Plik dokumentu"
#elif L==9
"Arquivo de documento"
#endif
,
#if L==1 // Soc_EVENT_INS_SHA_PUB_FILE
"Arxiu compartit"
#elif L==2
"Freigegebene Datei"
#elif L==3
"Shared file"
#elif L==4
"Archivo compartido"
#elif L==5
"Fichier partag&eacute;"
#elif L==6
"Archivo compartido" // Okoteve traducción
#elif L==7
"File condiviso"
#elif L==8
"Udost&eogon;pniony plik"
#elif L==9
"Arquivo compartilhado"
#endif
,
#if L==1 // Soc_EVENT_CTR_DOC_PUB_FILE
"Document"
#elif L==2
"Dokumentdatei"
#elif L==3
"Document file"
#elif L==4
"Documento"
#elif L==5
"Fichier de document"
#elif L==6
"Documento" // Okoteve traducción
#elif L==7
"Documento"
#elif L==8
"Plik dokumentu"
#elif L==9
"Arquivo de documento"
#endif
,
#if L==1 // Soc_EVENT_CTR_SHA_PUB_FILE
"Arxiu compartit"
#elif L==2
"Freigegebene Datei"
#elif L==3
"Shared file"
#elif L==4
"Archivo compartido"
#elif L==5
"Fichier partag&eacute;"
#elif L==6
"Archivo compartido" // Okoteve traducción
#elif L==7
"File condiviso"
#elif L==8
"Udost&eogon;pniony plik"
#elif L==9
"Arquivo compartilhado"
#endif
,
#if L==1 // Soc_EVENT_DEG_DOC_PUB_FILE
"Document"
#elif L==2
"Dokumentdatei"
#elif L==3
"Document file"
#elif L==4
"Documento"
#elif L==5
"Fichier de document"
#elif L==6
"Documento" // Okoteve traducción
#elif L==7
"Documento"
#elif L==8
"Plik dokumentu"
#elif L==9
"Arquivo de documento"
#endif
,
#if L==1 // Soc_EVENT_DEG_SHA_PUB_FILE
"Arxiu compartit"
#elif L==2
"Freigegebene Datei"
#elif L==3
"Shared file"
#elif L==4
"Archivo compartido"
#elif L==5
"Fichier partag&eacute;"
#elif L==6
"Archivo compartido" // Okoteve traducción
#elif L==7
"File condiviso"
#elif L==8
"Udost&eogon;pniony plik"
#elif L==9
"Arquivo compartilhado"
#endif
,
#if L==1 // Soc_EVENT_CRS_DOC_PUB_FILE
"Document"
#elif L==2
"Dokumentdatei"
#elif L==3
"Document file"
#elif L==4
"Documento"
#elif L==5
"Fichier de document"
#elif L==6
"Documento" // Okoteve traducción
#elif L==7
"Documento"
#elif L==8
"Plik dokumentu"
#elif L==9
"Arquivo de documento"
#endif
,
#if L==1 // Soc_EVENT_CRS_SHA_PUB_FILE
"Arxiu compartit"
#elif L==2
"Freigegebene Datei"
#elif L==3
"Shared file"
#elif L==4
"Archivo compartido"
#elif L==5
"Fichier partag&eacute;"
#elif L==6
"Archivo compartido" // Okoteve traducción
#elif L==7
"File condiviso"
#elif L==8
"Udost&eogon;pniony plik"
#elif L==9
"Arquivo compartilhado"
#endif
,
#if L==1 // Soc_EVENT_EXAM_ANNOUNCEMENT
"Convocat&ograve;ria d'examen"
#elif L==2
"Aufrufe für Pr&uuml;fung"
#elif L==3
"Announcement of exam"
#elif L==4
"Convocatoria de examen"
#elif L==5
"Convocation &agrave; un examen"
#elif L==6
"Convocatoria de examen" // Okoteve traducción
#elif L==7
"Sessione d'esame"
#elif L==8
"Ogloszenie egzamin"
#elif L==9
"Chamada para exame"
#endif
,
#if L==1 // Soc_EVENT_SOCIAL_POST
"Missatge"
#elif L==2
"Beitr&auml;ge"
#elif L==3
"Post"
#elif L==4
"Mensaje"
#elif L==5
"Message"
#elif L==6
"Mensaje" // Okoteve traducción
#elif L==7
"Post"
#elif L==8
"Post"
#elif L==9
"Post"
#endif
,
#if L==1 // Soc_EVENT_NOTICE
"Av&iacute;s"
#elif L==2
"Ank&uuml;ndigungen"
#elif L==3
"Notice"
#elif L==4
"Aviso"
#elif L==5
"Avis"
#elif L==6
"Marandu"
#elif L==7
"Avviso"
#elif L==8
"Informacja"
#elif L==9
"An&uacute;ncio"
#endif
,
#if L==1 // Soc_EVENT_FORUM_POST
"Missatge en un f&ograve;rum"
#elif L==2
"Beitr&auml;ge in einem Forum"
#elif L==3
"Post in a forum"
#elif L==4
"Mensaje en un foro"
#elif L==5
"Message dans un forum"
#elif L==6
"Mensaje en un foro" // Okoteve traducción
#elif L==7
"Post in un forum"
#elif L==8
"Post na forum"
#elif L==9
"Post em um f&oacute;rum"
#endif
};
const char *Txt_Sort_degrees_by =
#if L==1