Version 15.77.3

This commit is contained in:
Antonio Cañas Vargas 2015-12-29 00:44:51 +01:00
parent 2b9f7f3788
commit 32e742535b
5 changed files with 60 additions and 24 deletions

View File

@ -114,12 +114,13 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 15.77.2 (2015-12-28)" #define Log_PLATFORM_VERSION "SWAD 15.77.3 (2015-12-28)"
#define CSS_FILE "swad15.77.2.css" #define CSS_FILE "swad15.77.2.css"
// 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 15.77.3: Dec 28, 2015 Insert social event when changing file from private to public. (188402 lines)
Version 15.77.2: Dec 28, 2015 Changes in CSS related to social activity. (188368 lines) Version 15.77.2: Dec 28, 2015 Changes in CSS related to social activity. (188368 lines)
Version 15.77.1: Dec 28, 2015 Insert social event when posting in a global forum. (188342 lines) Version 15.77.1: Dec 28, 2015 Insert social event when posting in a global forum. (188342 lines)
Version 15.77: Dec 28, 2015 New table in database for social activity. (188287 lines) Version 15.77: Dec 28, 2015 New table in database for social activity. (188287 lines)

View File

@ -47,6 +47,7 @@
#include "swad_parameter.h" #include "swad_parameter.h"
#include "swad_photo.h" #include "swad_photo.h"
#include "swad_profile.h" #include "swad_profile.h"
#include "swad_social.h"
#include "swad_string.h" #include "swad_string.h"
#include "swad_zip.h" #include "swad_zip.h"
@ -9613,7 +9614,8 @@ void Brw_ChgFileMetadata (void)
extern const char *Txt_The_properties_of_file_X_have_been_saved; extern const char *Txt_The_properties_of_file_X_have_been_saved;
extern const char *Txt_You_dont_have_permission_to_change_the_properties_of_file_X; extern const char *Txt_You_dont_have_permission_to_change_the_properties_of_file_X;
struct FileMetadata FileMetadata; struct FileMetadata FileMetadata;
bool PublicFile; bool PublicFileBeforeEdition;
bool PublicFileAfterEdition;
Brw_License_t License; Brw_License_t License;
/***** Get parameters related to file browser *****/ /***** Get parameters related to file browser *****/
@ -9626,6 +9628,9 @@ void Brw_ChgFileMetadata (void)
/***** Check if I can change file metadata *****/ /***** Check if I can change file metadata *****/
if (Brw_CheckIfICanEditFileMetadata (FileMetadata.PublisherUsrCod)) if (Brw_CheckIfICanEditFileMetadata (FileMetadata.PublisherUsrCod))
{ {
/* Check if the file was public before the edition */
PublicFileBeforeEdition = FileMetadata.IsPublic;
/***** Get the new file privacy and license from form *****/ /***** Get the new file privacy and license from form *****/
switch (Gbl.FileBrowser.Type) switch (Gbl.FileBrowser.Type)
{ {
@ -9637,7 +9642,7 @@ void Brw_ChgFileMetadata (void)
case Brw_ADMI_SHARE_DEG: case Brw_ADMI_SHARE_DEG:
case Brw_ADMI_DOCUM_CRS: case Brw_ADMI_DOCUM_CRS:
case Brw_ADMI_SHARE_CRS: case Brw_ADMI_SHARE_CRS:
PublicFile = Brw_GetParamPublicFile (); PublicFileAfterEdition = Brw_GetParamPublicFile ();
License = Brw_GetParLicense (); License = Brw_GetParLicense ();
break; break;
case Brw_ADMI_DOCUM_GRP: case Brw_ADMI_DOCUM_GRP:
@ -9647,11 +9652,11 @@ void Brw_ChgFileMetadata (void)
case Brw_ADMI_WORKS_USR: case Brw_ADMI_WORKS_USR:
case Brw_ADMI_WORKS_CRS: case Brw_ADMI_WORKS_CRS:
case Brw_ADMI_BRIEF_USR: case Brw_ADMI_BRIEF_USR:
PublicFile = false; // Files in these zones can not be public PublicFileAfterEdition = false; // Files in these zones can not be public
License = Brw_GetParLicense (); License = Brw_GetParLicense ();
break; break;
default: default:
PublicFile = false; // Files in other zones can not be public PublicFileAfterEdition = false; // Files in other zones can not be public
License = Brw_LICENSE_DEFAULT; License = Brw_LICENSE_DEFAULT;
break; break;
} }
@ -9660,17 +9665,50 @@ void Brw_ChgFileMetadata (void)
if (FileMetadata.FilCod > 0) // Entry exists in database if (FileMetadata.FilCod > 0) // Entry exists in database
Brw_ChangeFilePublicInDB (Gbl.Usrs.Me.UsrDat.UsrCod, Brw_ChangeFilePublicInDB (Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.FileBrowser.Priv.FullPathInTree, Gbl.FileBrowser.Priv.FullPathInTree,
PublicFile,License); PublicFileAfterEdition,License);
else // No entry in database else // No entry in database
Brw_AddPathToDB (Gbl.Usrs.Me.UsrDat.UsrCod,FileMetadata.FileType, FileMetadata.FilCod = Brw_AddPathToDB (Gbl.Usrs.Me.UsrDat.UsrCod,FileMetadata.FileType,
Gbl.FileBrowser.Priv.FullPathInTree, Gbl.FileBrowser.Priv.FullPathInTree,
PublicFile,License); PublicFileAfterEdition,License);
/***** Remove the affected clipboards *****/ /***** Remove the affected clipboards *****/
Brw_RemoveAffectedClipboards (Gbl.FileBrowser.Type, Brw_RemoveAffectedClipboards (Gbl.FileBrowser.Type,
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Usrs.Other.UsrDat.UsrCod); Gbl.Usrs.Other.UsrDat.UsrCod);
/***** Insert file into public social activity *****/
if (!PublicFileBeforeEdition &&
PublicFileAfterEdition) // Only if file has changed from private to public
switch (Gbl.FileBrowser.Type)
{
case Brw_ADMI_DOCUM_INS:
Soc_StoreSocialEvent (Soc_EVENT_INS_DOC_PUB_FILE,FileMetadata.FilCod);
break;
case Brw_ADMI_SHARE_INS:
Soc_StoreSocialEvent (Soc_EVENT_INS_SHA_PUB_FILE,FileMetadata.FilCod);
break;
case Brw_ADMI_DOCUM_CTR:
Soc_StoreSocialEvent (Soc_EVENT_CTR_DOC_PUB_FILE,FileMetadata.FilCod);
break;
case Brw_ADMI_SHARE_CTR:
Soc_StoreSocialEvent (Soc_EVENT_CTR_SHA_PUB_FILE,FileMetadata.FilCod);
break;
case Brw_ADMI_DOCUM_DEG:
Soc_StoreSocialEvent (Soc_EVENT_DEG_DOC_PUB_FILE,FileMetadata.FilCod);
break;
case Brw_ADMI_SHARE_DEG:
Soc_StoreSocialEvent (Soc_EVENT_DEG_SHA_PUB_FILE,FileMetadata.FilCod);
break;
case Brw_ADMI_DOCUM_CRS:
Soc_StoreSocialEvent (Soc_EVENT_CRS_DOC_PUB_FILE,FileMetadata.FilCod);
break;
case Brw_ADMI_SHARE_CRS:
Soc_StoreSocialEvent (Soc_EVENT_CRS_SHA_PUB_FILE,FileMetadata.FilCod);
break;
default:
break;
}
/***** Write message of confirmation *****/ /***** Write message of confirmation *****/
sprintf (Gbl.Message,Txt_The_properties_of_file_X_have_been_saved, sprintf (Gbl.Message,Txt_The_properties_of_file_X_have_been_saved,
Gbl.FileBrowser.FilFolLnkName); Gbl.FileBrowser.FilFolLnkName);
@ -10881,23 +10919,25 @@ void Brw_RemoveUsrWorksInAllCrss (struct UsrData *UsrDat,Cns_QuietOrVerbose_t Qu
} }
/*****************************************************************************/ /*****************************************************************************/
/*********** Put a document or a shared file into a notification *************/ /********** Get summary and content of a document or a shared file ***********/
/*****************************************************************************/ /*****************************************************************************/
// This function may be called inside a web service, so don't report error // This function may be called inside a web service, so don't report error
void Brw_GetNotifDocOrSharedFile (char *SummaryStr,char **ContentStr, void Brw_GetSummaryAndContentOrSharedFile (char *SummaryStr,char **ContentStr,
long FilCod,unsigned MaxChars,bool GetContent) long FilCod,unsigned MaxChars,bool GetContent)
{ {
char Query[256]; char Query[256];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
char FullPathInTreeFromDB[PATH_MAX+1]; char FullPathInTreeFromDB[PATH_MAX+1];
char PathUntilFileName[PATH_MAX+1]; char PathUntilFileName[PATH_MAX+1];
char FileName[NAME_MAX+1];
SummaryStr[0] = '\0'; // Return nothing on error SummaryStr[0] = '\0'; // Return nothing on error
/***** Get subject of message from database *****/ /***** Get subject of message from database *****/
sprintf (Query,"SELECT Path FROM files WHERE FilCod='%ld'",FilCod); sprintf (Query,"SELECT Path FROM files WHERE FilCod='%ld'",
FilCod);
if (!mysql_query (&Gbl.mysql,Query)) if (!mysql_query (&Gbl.mysql,Query))
if ((mysql_res = mysql_store_result (&Gbl.mysql)) != NULL) if ((mysql_res = mysql_store_result (&Gbl.mysql)) != NULL)
{ {
@ -10912,7 +10952,8 @@ void Brw_GetNotifDocOrSharedFile (char *SummaryStr,char **ContentStr,
FullPathInTreeFromDB[PATH_MAX] = '\0'; FullPathInTreeFromDB[PATH_MAX] = '\0';
Str_SplitFullPathIntoPathAndFileName (FullPathInTreeFromDB, Str_SplitFullPathIntoPathAndFileName (FullPathInTreeFromDB,
PathUntilFileName, PathUntilFileName,
SummaryStr); FileName);
strcpy (SummaryStr,FileName);
if (MaxChars) if (MaxChars)
Str_LimitLengthHTMLStr (SummaryStr,MaxChars); Str_LimitLengthHTMLStr (SummaryStr,MaxChars);

View File

@ -213,8 +213,8 @@ void Brw_RemoveGrpZones (long CrsCod,long GrpCod);
void Brw_RemoveUsrWorksInCrs (struct UsrData *UsrDat,struct Course *Crs,Cns_QuietOrVerbose_t QuietOrVerbose); void Brw_RemoveUsrWorksInCrs (struct UsrData *UsrDat,struct Course *Crs,Cns_QuietOrVerbose_t QuietOrVerbose);
void Brw_RemoveUsrWorksInAllCrss (struct UsrData *UsrDat,Cns_QuietOrVerbose_t QuietOrVerbose); void Brw_RemoveUsrWorksInAllCrss (struct UsrData *UsrDat,Cns_QuietOrVerbose_t QuietOrVerbose);
void Brw_GetNotifDocOrSharedFile (char *SummaryStr,char **ContentStr, void Brw_GetSummaryAndContentOrSharedFile (char *SummaryStr,char **ContentStr,
long FilCod,unsigned MaxChars,bool GetContent); long FilCod,unsigned MaxChars,bool GetContent);
unsigned Brw_ListDocsFound (const char *Query,const char *Title); unsigned Brw_ListDocsFound (const char *Query,const char *Title);

View File

@ -736,7 +736,7 @@ void Ntf_GetNotifSummaryAndContent (char *SummaryStr,char **ContentStr,Ntf_Notif
break; break;
case Ntf_EVENT_DOCUMENT_FILE: case Ntf_EVENT_DOCUMENT_FILE:
case Ntf_EVENT_SHARED_FILE: case Ntf_EVENT_SHARED_FILE:
Brw_GetNotifDocOrSharedFile (SummaryStr,ContentStr,Cod,MaxChars,GetContent); Brw_GetSummaryAndContentOrSharedFile (SummaryStr,ContentStr,Cod,MaxChars,GetContent);
break; break;
case Ntf_EVENT_ASSIGNMENT: case Ntf_EVENT_ASSIGNMENT:
Asg_GetNotifAssignment (SummaryStr,ContentStr,Cod,MaxChars,GetContent); Asg_GetNotifAssignment (SummaryStr,ContentStr,Cod,MaxChars,GetContent);

View File

@ -347,20 +347,14 @@ static void Soc_GetEventSummary (Soc_SocialEvent_t SocialEvent,long Cod,
case Soc_EVENT_UNKNOWN: case Soc_EVENT_UNKNOWN:
break; break;
case Soc_EVENT_INS_DOC_PUB_FILE: case Soc_EVENT_INS_DOC_PUB_FILE:
break;
case Soc_EVENT_INS_SHA_PUB_FILE: case Soc_EVENT_INS_SHA_PUB_FILE:
break;
case Soc_EVENT_CTR_DOC_PUB_FILE: case Soc_EVENT_CTR_DOC_PUB_FILE:
break;
case Soc_EVENT_CTR_SHA_PUB_FILE: case Soc_EVENT_CTR_SHA_PUB_FILE:
break;
case Soc_EVENT_DEG_DOC_PUB_FILE: case Soc_EVENT_DEG_DOC_PUB_FILE:
break;
case Soc_EVENT_DEG_SHA_PUB_FILE: case Soc_EVENT_DEG_SHA_PUB_FILE:
break;
case Soc_EVENT_CRS_DOC_PUB_FILE: case Soc_EVENT_CRS_DOC_PUB_FILE:
break;
case Soc_EVENT_CRS_SHA_PUB_FILE: case Soc_EVENT_CRS_SHA_PUB_FILE:
Brw_GetSummaryAndContentOrSharedFile (SummaryStr,NULL,Cod,MaxChars,false);
break; break;
case Soc_EVENT_EXAM_ANNOUNCEMENT: case Soc_EVENT_EXAM_ANNOUNCEMENT:
break; break;