mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-12 11:44:13 +02:00
Version 15.72
This commit is contained in:
parent
a207626ade
commit
025de82e83
|
@ -109,7 +109,6 @@
|
||||||
// TODO: By default, profile and photo should be visible by users who share course
|
// TODO: By default, profile and photo should be visible by users who share course
|
||||||
// TODO: When page is refreshed in course works, prevent users to be duplicated
|
// TODO: When page is refreshed in course works, prevent users to be duplicated
|
||||||
// TODO: Fix bug at the end of ranking (number too low) when a course is selected
|
// TODO: Fix bug at the end of ranking (number too low) when a course is selected
|
||||||
// TODO: Reply to one user, suggested by Francisco Ocaña Lara
|
|
||||||
// TODO: Reply to all
|
// TODO: Reply to all
|
||||||
// TODO: Reply icons should appear without text
|
// TODO: Reply icons should appear without text
|
||||||
// TODO: Link to remove messages is too wide. For example: "Remove these X messages".
|
// TODO: Link to remove messages is too wide. For example: "Remove these X messages".
|
||||||
|
@ -118,12 +117,13 @@
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 15.71.3 (2015-12-22)"
|
#define Log_PLATFORM_VERSION "SWAD 15.72 (2015-12-22)"
|
||||||
#define CSS_FILE "swad15.65.1.css"
|
#define CSS_FILE "swad15.65.1.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.72: Dec 22, 2015 Reply message only to sender, suggested by Francisco Ocaña Lara. Not finished. (187705 lines)
|
||||||
Version 15.71.3: Dec 22, 2015 Changes in birthday range of years. (187669 lines)
|
Version 15.71.3: Dec 22, 2015 Changes in birthday range of years. (187669 lines)
|
||||||
Version 15.71.2: Dec 21, 2015 Fixed bugs in removing old files in briefcase. (187666 lines)
|
Version 15.71.2: Dec 21, 2015 Fixed bugs in removing old files in briefcase. (187666 lines)
|
||||||
Version 15.71.1: Dec 21, 2015 Fixed bugs in removing old files in briefcase. (187665 lines)
|
Version 15.71.1: Dec 21, 2015 Fixed bugs in removing old files in briefcase. (187665 lines)
|
||||||
|
|
|
@ -580,9 +580,13 @@ struct Globals
|
||||||
char FilterFromTo[Usr_MAX_LENGTH_USR_NAME_OR_SURNAME*3+1]; // Show only messages from/to these users
|
char FilterFromTo[Usr_MAX_LENGTH_USR_NAME_OR_SURNAME*3+1]; // Show only messages from/to these users
|
||||||
char FilterContent[Msg_MAX_LENGTH_FILTER_CONTENT+1]; // Show only messages that match this content
|
char FilterContent[Msg_MAX_LENGTH_FILTER_CONTENT+1]; // Show only messages that match this content
|
||||||
bool ShowOnlyUnreadMsgs; // Show only unread messages (this option is applicable only for received messages)
|
bool ShowOnlyUnreadMsgs; // Show only unread messages (this option is applicable only for received messages)
|
||||||
bool IsReply; // Is the message I am editing a reply to a received message?
|
|
||||||
long RepliedMsgCod; // Original message code when I am editing a reply to a received message
|
|
||||||
long ExpandedMsgCod; // The current expanded message code
|
long ExpandedMsgCod; // The current expanded message code
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
bool IsReply; // Is the message I am editing a reply?
|
||||||
|
bool ShowOtherRecipients; // Shown other recipients or only the sender of the original message?
|
||||||
|
long OriginalMsgCod; // Original message code when I am editing a reply
|
||||||
|
} Reply;
|
||||||
char FileNameMail[PATH_MAX+1];
|
char FileNameMail[PATH_MAX+1];
|
||||||
FILE *FileMail;
|
FILE *FileMail;
|
||||||
} Msg;
|
} Msg;
|
||||||
|
|
|
@ -80,6 +80,7 @@ static void Msg_ShowASentOrReceivedMessage (Msg_TypeOfMessages_t TypeOfMessages,
|
||||||
static void Msg_GetStatusOfSentMsg (long MsgCod,bool *Expanded);
|
static void Msg_GetStatusOfSentMsg (long MsgCod,bool *Expanded);
|
||||||
static void Msg_GetStatusOfReceivedMsg (long MsgCod,bool *Open,bool *Replied,bool *Expanded);
|
static void Msg_GetStatusOfReceivedMsg (long MsgCod,bool *Open,bool *Replied,bool *Expanded);
|
||||||
static long Msg_GetParamMsgCod (void);
|
static long Msg_GetParamMsgCod (void);
|
||||||
|
static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void);
|
||||||
static void Msg_WriteFormSubjectAndContentMsgToUsrs (const char *Content);
|
static void Msg_WriteFormSubjectAndContentMsgToUsrs (const char *Content);
|
||||||
static void Msg_ShowNumMsgsDeleted (unsigned NumMsgs);
|
static void Msg_ShowNumMsgsDeleted (unsigned NumMsgs);
|
||||||
|
|
||||||
|
@ -259,6 +260,7 @@ void Msg_FormMsgUsrs (void)
|
||||||
static void Msg_PutFormMsgUsrs (const char *Content)
|
static void Msg_PutFormMsgUsrs (const char *Content)
|
||||||
{
|
{
|
||||||
extern const char *The_ClassForm[The_NUM_THEMES];
|
extern const char *The_ClassForm[The_NUM_THEMES];
|
||||||
|
extern const char *Txt_Reply_message;
|
||||||
extern const char *Txt_New_message;
|
extern const char *Txt_New_message;
|
||||||
extern const char *Txt_MSG_To;
|
extern const char *Txt_MSG_To;
|
||||||
extern const char *Txt_Send_message;
|
extern const char *Txt_Send_message;
|
||||||
|
@ -269,9 +271,17 @@ static void Msg_PutFormMsgUsrs (const char *Content)
|
||||||
|
|
||||||
/***** Get parameter that indicates if the message is a reply to another message *****/
|
/***** Get parameter that indicates if the message is a reply to another message *****/
|
||||||
Par_GetParToText ("IsReply",YN,1);
|
Par_GetParToText ("IsReply",YN,1);
|
||||||
if ((Gbl.Msg.IsReply = (Str_ConvertToUpperLetter (YN[0]) == 'Y')))
|
if ((Gbl.Msg.Reply.IsReply = (Str_ConvertToUpperLetter (YN[0]) == 'Y')))
|
||||||
|
{
|
||||||
/* Get original message code */
|
/* Get original message code */
|
||||||
Gbl.Msg.RepliedMsgCod = Msg_GetParamMsgCod ();
|
Gbl.Msg.Reply.OriginalMsgCod = Msg_GetParamMsgCod ();
|
||||||
|
|
||||||
|
/* Get who to show as potential recipients:
|
||||||
|
- the sender of the original message and other users
|
||||||
|
- only the sender of the original message (default) */
|
||||||
|
Par_GetParToText ("ShowOtherRecipients",YN,1);
|
||||||
|
Gbl.Msg.Reply.ShowOtherRecipients = (Str_ConvertToUpperLetter (YN[0]) == 'Y');
|
||||||
|
}
|
||||||
|
|
||||||
/***** Get user's code of possible preselected recipient *****/
|
/***** Get user's code of possible preselected recipient *****/
|
||||||
Usr_GetParamOtherUsrCodEncrypted ();
|
Usr_GetParamOtherUsrCodEncrypted ();
|
||||||
|
@ -305,7 +315,8 @@ static void Msg_PutFormMsgUsrs (const char *Content)
|
||||||
Gbl.Usrs.LstStds.NumUsrs))
|
Gbl.Usrs.LstStds.NumUsrs))
|
||||||
{
|
{
|
||||||
/***** Start frame *****/
|
/***** Start frame *****/
|
||||||
Lay_StartRoundFrame (NULL,Txt_New_message);
|
Lay_StartRoundFrame (NULL,Gbl.Msg.Reply.IsReply ? Txt_Reply_message :
|
||||||
|
Txt_New_message);
|
||||||
|
|
||||||
/***** Form to select type of list used for select several users *****/
|
/***** Form to select type of list used for select several users *****/
|
||||||
if (Gbl.Usrs.LstTchs.NumUsrs ||
|
if (Gbl.Usrs.LstTchs.NumUsrs ||
|
||||||
|
@ -314,10 +325,11 @@ static void Msg_PutFormMsgUsrs (const char *Content)
|
||||||
|
|
||||||
/***** Start form to select recipients and write the message *****/
|
/***** Start form to select recipients and write the message *****/
|
||||||
Act_FormStart (ActRcvMsgUsr);
|
Act_FormStart (ActRcvMsgUsr);
|
||||||
if (Gbl.Msg.IsReply)
|
if (Gbl.Msg.Reply.IsReply)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamChar ("IsReply",'Y');
|
Par_PutHiddenParamChar ("IsReply",'Y');
|
||||||
Msg_PutHiddenParamMsgCod (Gbl.Msg.RepliedMsgCod);
|
// Par_PutHiddenParamChar ("ShowOtherRecipients",'N');
|
||||||
|
Msg_PutHiddenParamMsgCod (Gbl.Msg.Reply.OriginalMsgCod);
|
||||||
Usr_PutParamOtherUsrCodEncrypted ();
|
Usr_PutParamOtherUsrCodEncrypted ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -338,7 +350,7 @@ static void Msg_PutFormMsgUsrs (const char *Content)
|
||||||
Usr_ListUsersToSelect (Rol_STUDENT);
|
Usr_ListUsersToSelect (Rol_STUDENT);
|
||||||
|
|
||||||
/* Other users (nicknames) */
|
/* Other users (nicknames) */
|
||||||
Msg_WriteFormUsrsIDsOrNicksOtherRecipients (Gbl.Msg.IsReply);
|
Msg_WriteFormUsrsIDsOrNicksOtherRecipients ();
|
||||||
|
|
||||||
/* End of table */
|
/* End of table */
|
||||||
fprintf (Gbl.F.Out,"</table>"
|
fprintf (Gbl.F.Out,"</table>"
|
||||||
|
@ -384,7 +396,7 @@ static void Msg_PutFormMsgUsrs (const char *Content)
|
||||||
/************** Nicknames of recipients of a message to users ****************/
|
/************** Nicknames of recipients of a message to users ****************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (bool IsReply)
|
static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Other_recipients;
|
extern const char *Txt_Other_recipients;
|
||||||
extern const char *Txt_Recipients;
|
extern const char *Txt_Recipients;
|
||||||
|
@ -415,9 +427,9 @@ void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (bool IsReply)
|
||||||
"<textarea name=\"OtherRecipients\" cols=\"72\" rows=\"2\">");
|
"<textarea name=\"OtherRecipients\" cols=\"72\" rows=\"2\">");
|
||||||
if (Gbl.Usrs.ListOtherRecipients[0])
|
if (Gbl.Usrs.ListOtherRecipients[0])
|
||||||
fprintf (Gbl.F.Out,"%s",Gbl.Usrs.ListOtherRecipients);
|
fprintf (Gbl.F.Out,"%s",Gbl.Usrs.ListOtherRecipients);
|
||||||
else if (IsReply) // If this is a reply message
|
else if (Gbl.Msg.Reply.IsReply) // If this is a reply message
|
||||||
// and there's no list of explicit recipients,
|
// and there's no list of explicit recipients,
|
||||||
// write @nickname of original sender
|
// write @nickname of original sender
|
||||||
if (Nck_GetNicknameFromUsrCod (Gbl.Usrs.Other.UsrDat.UsrCod,Nickname))
|
if (Nck_GetNicknameFromUsrCod (Gbl.Usrs.Other.UsrDat.UsrCod,Nickname))
|
||||||
fprintf (Gbl.F.Out,"@%s",Nickname);
|
fprintf (Gbl.F.Out,"@%s",Nickname);
|
||||||
fprintf (Gbl.F.Out,"</textarea>"
|
fprintf (Gbl.F.Out,"</textarea>"
|
||||||
|
@ -560,14 +572,14 @@ void Msg_RecMsgFromUsr (void)
|
||||||
bool IsReply;
|
bool IsReply;
|
||||||
bool RecipientHasBannedMe;
|
bool RecipientHasBannedMe;
|
||||||
bool Replied = false;
|
bool Replied = false;
|
||||||
long RepliedMsgCod = -1; // Initialized to avoid warning
|
long OriginalMsgCod = -1L; // Initialized to avoid warning
|
||||||
const char *Ptr;
|
const char *Ptr;
|
||||||
unsigned NumRecipients;
|
unsigned NumRecipients;
|
||||||
unsigned NumRecipientsToBeNotifiedByEMail = 0;
|
unsigned NumRecipientsToBeNotifiedByEMail = 0;
|
||||||
struct UsrData UsrDstData;
|
struct UsrData UsrDstData;
|
||||||
int NumErrors = 0;
|
int NumErrors = 0;
|
||||||
char *ListUsrsDst;
|
char *ListUsrsDst;
|
||||||
long NewMsgCod = -1; // Initiliazed to avoid warning
|
long NewMsgCod = -1L; // Initiliazed to avoid warning
|
||||||
bool MsgAlreadyInserted = false;
|
bool MsgAlreadyInserted = false;
|
||||||
bool CreateNotif;
|
bool CreateNotif;
|
||||||
bool NotifyByEmail;
|
bool NotifyByEmail;
|
||||||
|
@ -586,7 +598,7 @@ void Msg_RecMsgFromUsr (void)
|
||||||
Par_GetParToText ("IsReply",YN,1);
|
Par_GetParToText ("IsReply",YN,1);
|
||||||
if ((IsReply = (Str_ConvertToUpperLetter (YN[0]) == 'Y')))
|
if ((IsReply = (Str_ConvertToUpperLetter (YN[0]) == 'Y')))
|
||||||
/* Get original message code */
|
/* Get original message code */
|
||||||
RepliedMsgCod = Msg_GetParamMsgCod ();
|
OriginalMsgCod = Msg_GetParamMsgCod ();
|
||||||
|
|
||||||
/* Get user's code of possible preselected recipient */
|
/* Get user's code of possible preselected recipient */
|
||||||
Usr_GetParamOtherUsrCodEncrypted ();
|
Usr_GetParamOtherUsrCodEncrypted ();
|
||||||
|
@ -667,7 +679,8 @@ void Msg_RecMsgFromUsr (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** If this recipient is the original sender of a message been replied, set Replied to true *****/
|
/***** If this recipient is the original sender of a message been replied, set Replied to true *****/
|
||||||
Replied = (IsReply && UsrDstData.UsrCod == Gbl.Usrs.Other.UsrDat.UsrCod);
|
Replied = (IsReply &&
|
||||||
|
UsrDstData.UsrCod == Gbl.Usrs.Other.UsrDat.UsrCod);
|
||||||
|
|
||||||
/***** This received message must be notified by e-mail? *****/
|
/***** This received message must be notified by e-mail? *****/
|
||||||
CreateNotif = (UsrDstData.Prefs.NotifNtfEvents & (1 << Ntf_EVENT_MESSAGE));
|
CreateNotif = (UsrDstData.Prefs.NotifNtfEvents & (1 << Ntf_EVENT_MESSAGE));
|
||||||
|
@ -718,7 +731,7 @@ void Msg_RecMsgFromUsr (void)
|
||||||
|
|
||||||
/***** Update received message setting Replied field to true *****/
|
/***** Update received message setting Replied field to true *****/
|
||||||
if (Replied)
|
if (Replied)
|
||||||
Msg_SetReceivedMsgAsReplied (RepliedMsgCod);
|
Msg_SetReceivedMsgAsReplied (OriginalMsgCod);
|
||||||
|
|
||||||
/***** Write final message *****/
|
/***** Write final message *****/
|
||||||
if (NumRecipients)
|
if (NumRecipients)
|
||||||
|
@ -2994,9 +3007,9 @@ static void Msg_WriteFormToReply (long MsgCod,long CrsCod,const char *Subject,
|
||||||
}
|
}
|
||||||
Grp_PutParamAllGroups ();
|
Grp_PutParamAllGroups ();
|
||||||
Par_PutHiddenParamChar ("IsReply",'Y');
|
Par_PutHiddenParamChar ("IsReply",'Y');
|
||||||
|
// Par_PutHiddenParamChar ("ShowOtherRecipients",'N');
|
||||||
Msg_PutHiddenParamMsgCod (MsgCod);
|
Msg_PutHiddenParamMsgCod (MsgCod);
|
||||||
Usr_PutParamUsrCodEncrypted (EncryptedUsrCod);
|
Usr_PutParamUsrCodEncrypted (EncryptedUsrCod);
|
||||||
// Par_PutHiddenParamString ("UsrCodAll",EncryptedUsrCod);
|
|
||||||
fprintf (Gbl.F.Out,"<input type=\"hidden\" name=\"Subject\""
|
fprintf (Gbl.F.Out,"<input type=\"hidden\" name=\"Subject\""
|
||||||
" value=\"Re: %s\" />",
|
" value=\"Re: %s\" />",
|
||||||
Subject);
|
Subject);
|
||||||
|
|
|
@ -59,7 +59,6 @@ typedef enum
|
||||||
void Msg_ListEMails (void); // Creates an e-mail message to students
|
void Msg_ListEMails (void); // Creates an e-mail message to students
|
||||||
|
|
||||||
void Msg_FormMsgUsrs (void);
|
void Msg_FormMsgUsrs (void);
|
||||||
void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (bool IsReply);
|
|
||||||
void Msg_PutHiddenParamAnotherRecipient (const struct UsrData *UsrDat);
|
void Msg_PutHiddenParamAnotherRecipient (const struct UsrData *UsrDat);
|
||||||
void Msg_PutHiddenParamOtherRecipients (void);
|
void Msg_PutHiddenParamOtherRecipients (void);
|
||||||
void Msg_RecMsgFromUsr (void);
|
void Msg_RecMsgFromUsr (void);
|
||||||
|
|
39
swad_text.c
39
swad_text.c
|
@ -22598,7 +22598,7 @@ const char *Txt_New_mail_domain =
|
||||||
|
|
||||||
const char *Txt_New_message =
|
const char *Txt_New_message =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Nuevo mensaje"; // Necessita traduccio
|
"Nou missatge";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Neue Nachricht";
|
"Neue Nachricht";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
|
@ -29497,7 +29497,7 @@ const char *Txt_Remove_USER_from_the_course_X = // Warning: it is very important
|
||||||
|
|
||||||
const char *Txt_Reply =
|
const char *Txt_Reply =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Responder"; // Necessita traduccio
|
"Respondre";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Antworten";
|
"Antworten";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
|
@ -29518,7 +29518,7 @@ const char *Txt_Reply =
|
||||||
|
|
||||||
const char *Txt_Reply_again =
|
const char *Txt_Reply_again =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Responder otra vez"; // Necessita traduccio
|
"Respondre de nou";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Antworten wieder";
|
"Antworten wieder";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
|
@ -29537,6 +29537,27 @@ const char *Txt_Reply_again =
|
||||||
"Responder novamente";
|
"Responder novamente";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Reply_message = // "Reply" as a noun, not as a verb
|
||||||
|
#if L==1
|
||||||
|
"Missatge de resposta";
|
||||||
|
#elif L==2
|
||||||
|
"Antwortnachricht";
|
||||||
|
#elif L==3
|
||||||
|
"Reply message";
|
||||||
|
#elif L==4
|
||||||
|
"Mensaje de respuesta";
|
||||||
|
#elif L==5
|
||||||
|
"Message de réponse";
|
||||||
|
#elif L==6
|
||||||
|
"Mensaje de respuesta"; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Messaggio di risposta";
|
||||||
|
#elif L==8
|
||||||
|
"Wiadomość odpowiedz";
|
||||||
|
#elif L==9
|
||||||
|
"Mensagem de resposta";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Requester =
|
const char *Txt_Requester =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Sol·licitant";
|
"Sol·licitant";
|
||||||
|
@ -29560,7 +29581,7 @@ const char *Txt_Requester =
|
||||||
|
|
||||||
const char *Txt_Reset =
|
const char *Txt_Reset =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Poner a cero"; // Necessita traduccio
|
"Posar a zero";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Reset";
|
"Reset";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
|
@ -29581,7 +29602,7 @@ const char *Txt_Reset =
|
||||||
|
|
||||||
const char *Txt_Reset_survey =
|
const char *Txt_Reset_survey =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Poner encuesta a cero"; // Necessita traduccio
|
"Posar enquesta a zero";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Reset Umfrage";
|
"Reset Umfrage";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
|
@ -29602,15 +29623,15 @@ const char *Txt_Reset_survey =
|
||||||
|
|
||||||
const char *Txt_results_per_page =
|
const char *Txt_results_per_page =
|
||||||
#if L==1
|
#if L==1
|
||||||
"resultados por página"; // Necessita traduccio
|
"resultats per pàgina";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"results per page"; // Need Übersetzung
|
"Ergebnisse pro Seite";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
"results per page";
|
"results per page";
|
||||||
#elif L==4
|
#elif L==4
|
||||||
"resultados por página";
|
"resultados por página";
|
||||||
#elif L==5
|
#elif L==5
|
||||||
"results per page"; // Besoin de traduction
|
"résultats par page";
|
||||||
#elif L==6
|
#elif L==6
|
||||||
"resultados por página"; // Okoteve traducción
|
"resultados por página"; // Okoteve traducción
|
||||||
#elif L==7
|
#elif L==7
|
||||||
|
@ -29618,7 +29639,7 @@ const char *Txt_results_per_page =
|
||||||
#elif L==8
|
#elif L==8
|
||||||
"wyników na stronie";
|
"wyników na stronie";
|
||||||
#elif L==9
|
#elif L==9
|
||||||
"results per page"; // Necessita de tradução
|
"resultados por página";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Results_tests =
|
const char *Txt_Results_tests =
|
||||||
|
|
|
@ -5022,10 +5022,11 @@ void Usr_PutExtraParamsUsrList (Act_Action_t NextAction)
|
||||||
case ActReqMsgUsr:
|
case ActReqMsgUsr:
|
||||||
Usr_PutHiddenParUsrCodAll (NextAction,Gbl.Usrs.Select.All);
|
Usr_PutHiddenParUsrCodAll (NextAction,Gbl.Usrs.Select.All);
|
||||||
Msg_PutHiddenParamOtherRecipients ();
|
Msg_PutHiddenParamOtherRecipients ();
|
||||||
if (Gbl.Msg.IsReply)
|
if (Gbl.Msg.Reply.IsReply)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamChar ("IsReply",'Y');
|
Par_PutHiddenParamChar ("IsReply",'Y');
|
||||||
Msg_PutHiddenParamMsgCod (Gbl.Msg.RepliedMsgCod);
|
// Par_PutHiddenParamChar ("ShowOtherRecipients",'N');
|
||||||
|
Msg_PutHiddenParamMsgCod (Gbl.Msg.Reply.OriginalMsgCod);
|
||||||
Usr_PutParamOtherUsrCodEncrypted ();
|
Usr_PutParamOtherUsrCodEncrypted ();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -186,7 +186,7 @@ static void Svc_GetListGrpsInAttendanceEvent (long AttCod,char **ListGroups);
|
||||||
|
|
||||||
static int Svc_GetMyLanguage (void);
|
static int Svc_GetMyLanguage (void);
|
||||||
|
|
||||||
static int Svc_sendMessageToUsr (long RepliedMsgCod,long SenderUsrCod,long ReplyUsrCod,long RecipientUsrCod,bool NotifyByEmail,const char *Subject,const char *Content);
|
static int Svc_sendMessageToUsr (long OriginalMsgCod,long SenderUsrCod,long ReplyUsrCod,long RecipientUsrCod,bool NotifyByEmail,const char *Subject,const char *Content);
|
||||||
|
|
||||||
static int Svc_GetTstConfig (long CrsCod);
|
static int Svc_GetTstConfig (long CrsCod);
|
||||||
static int Svc_GetNumTestQuestionsInCrs (long CrsCod);
|
static int Svc_GetNumTestQuestionsInCrs (long CrsCod);
|
||||||
|
@ -3007,7 +3007,7 @@ int swad__sendMessage (struct soap *soap,
|
||||||
/************************* Send a message to one user ************************/
|
/************************* Send a message to one user ************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static int Svc_sendMessageToUsr (long RepliedMsgCod,long SenderUsrCod,long ReplyUsrCod,long RecipientUsrCod,bool NotifyByEmail,const char *Subject,const char *Content)
|
static int Svc_sendMessageToUsr (long OriginalMsgCod,long SenderUsrCod,long ReplyUsrCod,long RecipientUsrCod,bool NotifyByEmail,const char *Subject,const char *Content)
|
||||||
{
|
{
|
||||||
static bool MsgAlreadyInserted = false;
|
static bool MsgAlreadyInserted = false;
|
||||||
static long NewMsgCod;
|
static long NewMsgCod;
|
||||||
|
@ -3058,7 +3058,7 @@ static int Svc_sendMessageToUsr (long RepliedMsgCod,long SenderUsrCod,long Reply
|
||||||
{
|
{
|
||||||
/***** ...then update received message setting Replied field to true *****/
|
/***** ...then update received message setting Replied field to true *****/
|
||||||
sprintf (Query,"UPDATE msg_rcv SET Replied='Y' WHERE MsgCod='%ld' AND UsrCod='%ld'",
|
sprintf (Query,"UPDATE msg_rcv SET Replied='Y' WHERE MsgCod='%ld' AND UsrCod='%ld'",
|
||||||
RepliedMsgCod,SenderUsrCod);
|
OriginalMsgCod,SenderUsrCod);
|
||||||
DB_QueryUPDATE (Query,"can not update a received message");
|
DB_QueryUPDATE (Query,"can not update a received message");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user