mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-20 07:25:42 +02:00
Version 16.194
This commit is contained in:
parent
796bd1c0e5
commit
e172c52b55
|
@ -221,13 +221,14 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.193.8 (2017-04-28)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.194 (2017-04-28)"
|
||||
#define CSS_FILE "swad16.193.4.css"
|
||||
#define JS_FILE "swad16.181.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.194: Apr 28, 2017 Fixed bugs in filtering sent and received messages. (218332 lines)
|
||||
Version 16.193.8: Apr 28, 2017 Changed dialog to remove messages. (218299 lines)
|
||||
Version 16.193.7: Apr 27, 2017 Changed dialog to remove my account. (218328 lines)
|
||||
Version 16.193.6: Apr 27, 2017 Changed dialog to remove user account. (218322 lines)
|
||||
|
|
116
swad_message.c
116
swad_message.c
|
@ -85,8 +85,10 @@ static void Msg_PutFormMsgUsrs (char Content[Cns_MAX_BYTES_LONG_TEXT + 1]);
|
|||
static void Msg_ShowSentOrReceivedMessages (void);
|
||||
static unsigned long Msg_GetNumUsrsBannedByMe (void);
|
||||
static void Msg_PutLinkToViewBannedUsers(void);
|
||||
static void Msg_ConstructQueryToSelectSentOrReceivedMsgs (char *Query,long UsrCod,
|
||||
long FilterCrsCod,const char *FilterFromToSubquery);
|
||||
static void Msg_ConstructQueryToSelectSentOrReceivedMsgs (char Query[Msg_MAX_BYTES_MESSAGES_QUERY + 1],
|
||||
long UsrCod,
|
||||
long FilterCrsCod,
|
||||
const char *FilterFromToSubquery);
|
||||
|
||||
static char *Msg_WriteNumMsgs (unsigned NumUnreadMsgs);
|
||||
|
||||
|
@ -1053,7 +1055,7 @@ static void Msg_MakeFilterFromToSubquery (char FilterFromToSubquery[Msg_MAX_BYTE
|
|||
{
|
||||
Ptr = Gbl.Msg.FilterFromTo;
|
||||
Str_Copy (FilterFromToSubquery,
|
||||
" AND CONCAT(usr_data.FirstName,usr_data.Surname1,usr_data.Surname2) LIKE '",
|
||||
" AND CONCAT(usr_data.FirstName,' ',usr_data.Surname1,' ',usr_data.Surname2) LIKE '",
|
||||
Msg_MAX_BYTES_MESSAGES_QUERY);
|
||||
while (*Ptr)
|
||||
{
|
||||
|
@ -1350,7 +1352,8 @@ static unsigned long Msg_DelSomeRecOrSntMsgsUsr (Msg_TypeOfMessages_t TypeOfMess
|
|||
long MsgCod;
|
||||
|
||||
/***** Get some of the messages received or sent by this user from database *****/
|
||||
Msg_ConstructQueryToSelectSentOrReceivedMsgs (Query,UsrCod,FilterCrsCod,FilterFromToSubquery);
|
||||
Msg_ConstructQueryToSelectSentOrReceivedMsgs (Query,UsrCod,
|
||||
FilterCrsCod,FilterFromToSubquery);
|
||||
NumMsgs = DB_QuerySELECT (Query,&mysql_res,"can not get list of messages");
|
||||
|
||||
/***** Delete each message *****/
|
||||
|
@ -1737,9 +1740,9 @@ static void Msg_ShowSentOrReceivedMessages (void)
|
|||
}
|
||||
|
||||
/***** Get messages from database *****/
|
||||
Msg_ConstructQueryToSelectSentOrReceivedMsgs (Query,Gbl.Usrs.Me.UsrDat.UsrCod,Gbl.Msg.FilterCrsCod,FilterFromToSubquery);
|
||||
Msg_ConstructQueryToSelectSentOrReceivedMsgs (Query,Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Gbl.Msg.FilterCrsCod,FilterFromToSubquery);
|
||||
NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get messages");
|
||||
|
||||
Gbl.Msg.NumMsgs = (unsigned) NumRows;
|
||||
|
||||
/***** Start frame with messages *****/
|
||||
|
@ -1878,8 +1881,10 @@ static void Msg_PutLinkToViewBannedUsers(void)
|
|||
/********* Generate a query to select messages received or sent **************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Msg_ConstructQueryToSelectSentOrReceivedMsgs (char *Query,long UsrCod,
|
||||
long FilterCrsCod,const char *FilterFromToSubquery)
|
||||
static void Msg_ConstructQueryToSelectSentOrReceivedMsgs (char Query[Msg_MAX_BYTES_MESSAGES_QUERY + 1],
|
||||
long UsrCod,
|
||||
long FilterCrsCod,
|
||||
const char *FilterFromToSubquery)
|
||||
{
|
||||
char SubQuery[Msg_MAX_BYTES_MESSAGES_QUERY + 1];
|
||||
char *PtrQuery;
|
||||
|
@ -1895,41 +1900,57 @@ static void Msg_ConstructQueryToSelectSentOrReceivedMsgs (char *Query,long UsrCo
|
|||
StrUnreadMsg = (Gbl.Msg.ShowOnlyUnreadMsgs ? " AND msg_rcv.Open='N'" :
|
||||
"");
|
||||
if (FilterFromToSubquery[0])
|
||||
sprintf (PtrQuery,"SELECT msg_rcv.MsgCod"
|
||||
sprintf (PtrQuery,"(SELECT msg_rcv.MsgCod"
|
||||
" FROM msg_rcv,msg_snt,usr_data"
|
||||
" WHERE msg_rcv.UsrCod=%ld%s"
|
||||
" AND msg_rcv.MsgCod=msg_snt.MsgCod"
|
||||
" AND msg_snt.CrsCod=%ld"
|
||||
" AND msg_snt.UsrCod=usr_data.UsrCod%s"
|
||||
" ORDER BY msg_rcv.MsgCod DESC",
|
||||
UsrCod,StrUnreadMsg,FilterCrsCod,
|
||||
FilterFromToSubquery);
|
||||
" AND msg_snt.UsrCod=usr_data.UsrCod%s)"
|
||||
" UNION "
|
||||
"(SELECT msg_rcv.MsgCod"
|
||||
" FROM msg_rcv,msg_snt_deleted,usr_data"
|
||||
" WHERE msg_rcv.UsrCod=%ld%s"
|
||||
" AND msg_rcv.MsgCod=msg_snt_deleted.MsgCod"
|
||||
" AND msg_snt_deleted.CrsCod=%ld"
|
||||
" AND msg_snt_deleted.UsrCod=usr_data.UsrCod%s)",
|
||||
UsrCod,StrUnreadMsg,FilterCrsCod,FilterFromToSubquery,
|
||||
UsrCod,StrUnreadMsg,FilterCrsCod,FilterFromToSubquery);
|
||||
else
|
||||
sprintf (PtrQuery,"SELECT msg_rcv.MsgCod"
|
||||
sprintf (PtrQuery,"(SELECT msg_rcv.MsgCod"
|
||||
" FROM msg_rcv,msg_snt"
|
||||
" WHERE msg_rcv.UsrCod=%ld%s"
|
||||
" AND msg_rcv.MsgCod=msg_snt.MsgCod"
|
||||
" AND msg_snt.CrsCod=%ld"
|
||||
" ORDER BY msg_rcv.MsgCod DESC",
|
||||
UsrCod,StrUnreadMsg,
|
||||
FilterCrsCod);
|
||||
" AND msg_snt.CrsCod=%ld)"
|
||||
" UNION "
|
||||
"(SELECT msg_rcv.MsgCod"
|
||||
" FROM msg_rcv,msg_snt_deleted"
|
||||
" WHERE msg_rcv.UsrCod=%ld%s"
|
||||
" AND msg_rcv.MsgCod=msg_snt_deleted.MsgCod"
|
||||
" AND msg_snt_deleted.CrsCod=%ld)",
|
||||
UsrCod,StrUnreadMsg,FilterCrsCod,
|
||||
UsrCod,StrUnreadMsg,FilterCrsCod);
|
||||
break;
|
||||
case Msg_MESSAGES_SENT:
|
||||
if (FilterFromToSubquery[0])
|
||||
sprintf (PtrQuery,"SELECT DISTINCT msg_snt.MsgCod"
|
||||
sprintf (PtrQuery,"(SELECT DISTINCT msg_snt.MsgCod"
|
||||
" FROM msg_snt,msg_rcv,usr_data"
|
||||
" WHERE msg_snt.UsrCod=%ld"
|
||||
" AND msg_snt.CrsCod=%ld"
|
||||
" AND msg_snt.MsgCod=msg_rcv.MsgCod"
|
||||
" AND msg_rcv.UsrCod=usr_data.UsrCod%s"
|
||||
" ORDER BY msg_snt.MsgCod DESC",
|
||||
UsrCod,FilterCrsCod,
|
||||
FilterFromToSubquery);
|
||||
" AND msg_rcv.UsrCod=usr_data.UsrCod%s)"
|
||||
" UNION "
|
||||
"(SELECT DISTINCT msg_snt.MsgCod"
|
||||
" FROM msg_snt,msg_rcv_deleted,usr_data"
|
||||
" WHERE msg_snt.UsrCod=%ld"
|
||||
" AND msg_snt.CrsCod=%ld"
|
||||
" AND msg_snt.MsgCod=msg_rcv_deleted.MsgCod"
|
||||
" AND msg_rcv_deleted.UsrCod=usr_data.UsrCod%s)",
|
||||
UsrCod,FilterCrsCod,FilterFromToSubquery,
|
||||
UsrCod,FilterCrsCod,FilterFromToSubquery);
|
||||
else
|
||||
sprintf (PtrQuery,"SELECT MsgCod"
|
||||
" FROM msg_snt"
|
||||
" WHERE UsrCod=%ld AND CrsCod=%ld"
|
||||
" ORDER BY MsgCod DESC",
|
||||
" WHERE UsrCod=%ld AND CrsCod=%ld",
|
||||
UsrCod,FilterCrsCod);
|
||||
break;
|
||||
default: // Not aplicable here
|
||||
|
@ -1943,14 +1964,19 @@ static void Msg_ConstructQueryToSelectSentOrReceivedMsgs (char *Query,long UsrCo
|
|||
{
|
||||
StrUnreadMsg = (Gbl.Msg.ShowOnlyUnreadMsgs ? " AND msg_rcv.Open='N'" :
|
||||
"");
|
||||
sprintf (PtrQuery,"SELECT msg_rcv.MsgCod"
|
||||
sprintf (PtrQuery,"(SELECT msg_rcv.MsgCod"
|
||||
" FROM msg_rcv,msg_snt,usr_data"
|
||||
" WHERE msg_rcv.UsrCod=%ld%s"
|
||||
" AND msg_rcv.MsgCod=msg_snt.MsgCod"
|
||||
" AND msg_snt.UsrCod=usr_data.UsrCod%s"
|
||||
" ORDER BY msg_rcv.MsgCod DESC",
|
||||
UsrCod,StrUnreadMsg,
|
||||
FilterFromToSubquery);
|
||||
" AND msg_snt.UsrCod=usr_data.UsrCod%s)"
|
||||
" UNION "
|
||||
"(SELECT msg_rcv.MsgCod"
|
||||
" FROM msg_rcv,msg_snt_deleted,usr_data"
|
||||
" WHERE msg_rcv.UsrCod=%ld%s"
|
||||
" AND msg_rcv.MsgCod=msg_snt_deleted.MsgCod"
|
||||
" AND msg_snt_deleted.UsrCod=usr_data.UsrCod%s)",
|
||||
UsrCod,StrUnreadMsg,FilterFromToSubquery,
|
||||
UsrCod,StrUnreadMsg,FilterFromToSubquery);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1958,26 +1984,29 @@ static void Msg_ConstructQueryToSelectSentOrReceivedMsgs (char *Query,long UsrCo
|
|||
"");
|
||||
sprintf (PtrQuery,"SELECT MsgCod"
|
||||
" FROM msg_rcv"
|
||||
" WHERE UsrCod=%ld%s"
|
||||
" ORDER BY MsgCod DESC",
|
||||
" WHERE UsrCod=%ld%s",
|
||||
UsrCod,StrUnreadMsg);
|
||||
}
|
||||
break;
|
||||
case Msg_MESSAGES_SENT:
|
||||
if (FilterFromToSubquery[0])
|
||||
sprintf (PtrQuery,"SELECT DISTINCT msg_snt.MsgCod"
|
||||
sprintf (PtrQuery,"(SELECT msg_snt.MsgCod"
|
||||
" FROM msg_snt,msg_rcv,usr_data"
|
||||
" WHERE msg_snt.UsrCod=%ld"
|
||||
" AND msg_snt.MsgCod=msg_rcv.MsgCod"
|
||||
" AND msg_rcv.UsrCod=usr_data.UsrCod%s"
|
||||
" ORDER BY msg_snt.MsgCod DESC",
|
||||
UsrCod,
|
||||
FilterFromToSubquery);
|
||||
" AND msg_rcv.UsrCod=usr_data.UsrCod%s)"
|
||||
" UNION "
|
||||
"(SELECT msg_snt.MsgCod"
|
||||
" FROM msg_snt,msg_rcv_deleted,usr_data"
|
||||
" WHERE msg_snt.UsrCod=%ld"
|
||||
" AND msg_snt.MsgCod=msg_rcv_deleted.MsgCod"
|
||||
" AND msg_rcv_deleted.UsrCod=usr_data.UsrCod%s)",
|
||||
UsrCod,FilterFromToSubquery,
|
||||
UsrCod,FilterFromToSubquery);
|
||||
else
|
||||
sprintf (PtrQuery,"SELECT MsgCod"
|
||||
" FROM msg_snt"
|
||||
" WHERE UsrCod=%ld"
|
||||
" ORDER BY MsgCod DESC",
|
||||
" WHERE UsrCod=%ld",
|
||||
UsrCod);
|
||||
break;
|
||||
default: // Not aplicable here
|
||||
|
@ -1985,12 +2014,15 @@ static void Msg_ConstructQueryToSelectSentOrReceivedMsgs (char *Query,long UsrCo
|
|||
}
|
||||
|
||||
if (Gbl.Msg.FilterContent[0])
|
||||
/* Match against the content written in filter form */
|
||||
sprintf (Query,"SELECT MsgCod"
|
||||
" FROM msg_content"
|
||||
" WHERE MsgCod IN (%s)"
|
||||
" WHERE MsgCod IN (SELECT MsgCod FROM (%s) AS M)"
|
||||
" AND MATCH (Subject,Content) AGAINST ('%s')",
|
||||
SubQuery,
|
||||
Gbl.Msg.FilterContent);
|
||||
SubQuery,Gbl.Msg.FilterContent);
|
||||
|
||||
/* End the query ordering the result from most recent message to oldest */
|
||||
Str_Concat (Query," ORDER BY MsgCod DESC",Msg_MAX_BYTES_MESSAGES_QUERY);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
Loading…
Reference in New Issue
Block a user