Version18.73.6

This commit is contained in:
Antonio Cañas Vargas 2019-03-12 12:51:54 +01:00
parent 29e260ceea
commit cb5cb4297f
5 changed files with 44 additions and 18 deletions

1
icon/marker.svg Normal file
View File

@ -0,0 +1 @@
<svg aria-hidden="true" data-prefix="fas" data-icon="marker" class="svg-inline--fa fa-marker fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#404040" d="M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"></path></svg>

After

Width:  |  Height:  |  Size: 649 B

View File

@ -453,10 +453,15 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.73.4 (2019-03-12)"
#define Log_PLATFORM_VERSION "SWAD 18.73.6 (2019-03-12)"
#define CSS_FILE "swad18.68.3.css"
#define JS_FILE "swad18.64.js"
/*
Version 18.73.6: Mar 12, 2019 Create new email message from list of users. This option will be active when email action allows selecting individual users. (239580 lines)
Copy the following icon to icon public directory:
sudo cp icon/marker.svg /var/www/html/swad/icon/
Version 18.73.5: Mar 12, 2019 Non-editing teachers can select users who don't belong to any group. (? lines)
Version 18.73.4: Mar 12, 2019 Non-editing teachers can send email to students. (239555 lines)
Version 18.73.3: Mar 12, 2019 Don't show icon in record to send a message is user has banned me. (239553 lines)
Version 18.73.2: Mar 12, 2019 Only user's groups are selectable when sending a message. (239549 lines)

View File

@ -884,7 +884,7 @@ void Mai_ListEmails (void)
Usr_UsrDataConstructor (&UsrDat);
/***** List the students' email addresses *****/
fprintf (Gbl.F.Out,"<div class=\"DAT_SMALL LEFT_MIDDLE\">");
fprintf (Gbl.F.Out,"<div class=\"DAT_SMALL CENTER_MIDDLE\">");
for (NumUsr = 0, NumStdsWithEmail = 0, NumAcceptedStdsWithEmail = 0,
StrAddresses[0] = '\0';
NumUsr < Gbl.Usrs.LstUsrs[Rol_STD].NumUsrs;
@ -955,7 +955,7 @@ void Mai_ListEmails (void)
StrAddresses,
Txt_Create_email_message,
The_ClassFormOutBoxBold[Gbl.Prefs.Theme]);
Ico_PutIconTextLink ("pen.svg",
Ico_PutIconTextLink ("marker.svg",
Txt_Create_email_message);
fprintf (Gbl.F.Out,"</a>"
"</div>");

View File

@ -8021,6 +8021,7 @@ static bool Usr_PutActionsSeveralUsrs (Rol_Role_t UsrsRole)
extern const char *Txt_View_homework;
extern const char *Txt_View_attendance;
extern const char *Txt_Send_message;
extern const char *Txt_Create_email_message;
extern const char *Txt_Follow;
extern const char *Txt_Unfollow;
const char *Label[Usr_LIST_USRS_NUM_OPTIONS] =
@ -8030,6 +8031,7 @@ static bool Usr_PutActionsSeveralUsrs (Rol_Role_t UsrsRole)
Txt_View_homework, // Usr_OPTION_HOMEWORK
Txt_View_attendance, // Usr_OPTION_ATTENDANCE
Txt_Send_message, // Usr_OPTION_MESSAGE
Txt_Create_email_message, // Usr_OPTION_EMAIL // TODO: Not activated. Active it when email to users allows selecting individual users
Txt_Follow, // Usr_OPTION_FOLLOW
Txt_Unfollow, // Usr_OPTION_UNFOLLOW
};
@ -8056,25 +8058,32 @@ static bool Usr_PutActionsSeveralUsrs (Rol_Role_t UsrsRole)
case Rol_STD:
ICanChooseOption[Usr_OPTION_RECORDS] =
ICanChooseOption[Usr_OPTION_MESSAGE] =
ICanChooseOption[Usr_OPTION_FOLLOW] = (Gbl.Scope.Current == Sco_SCOPE_CRS &&
(Gbl.Usrs.Me.IBelongToCurrentCrs ||
ICanChooseOption[Usr_OPTION_FOLLOW] =
ICanChooseOption[Usr_OPTION_UNFOLLOW] = (Gbl.Scope.Current == Sco_SCOPE_CRS &&
(Gbl.Usrs.Me.Role.Logged == Rol_STD ||
Gbl.Usrs.Me.Role.Logged == Rol_NET ||
Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
ICanChooseOption[Usr_OPTION_HOMEWORK] =
ICanChooseOption[Usr_OPTION_ATTENDANCE] = (Gbl.Usrs.Me.Role.Logged == Rol_NET ||
Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
ICanChooseOption[Usr_OPTION_UNFOLLOW] = true;
ICanChooseOption[Usr_OPTION_ATTENDANCE] = (Gbl.Scope.Current == Sco_SCOPE_CRS &&
(Gbl.Usrs.Me.Role.Logged == Rol_NET ||
Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
break;
case Rol_TCH:
ICanChooseOption[Usr_OPTION_RECORDS] =
ICanChooseOption[Usr_OPTION_MESSAGE] =
ICanChooseOption[Usr_OPTION_FOLLOW] = (Gbl.Scope.Current == Sco_SCOPE_CRS);
ICanChooseOption[Usr_OPTION_HOMEWORK] = (Gbl.Usrs.Me.Role.Logged == Rol_NET ||
Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
ICanChooseOption[Usr_OPTION_UNFOLLOW] = true;
ICanChooseOption[Usr_OPTION_FOLLOW] =
ICanChooseOption[Usr_OPTION_UNFOLLOW] = (Gbl.Scope.Current == Sco_SCOPE_CRS &&
(Gbl.Usrs.Me.Role.Logged == Rol_STD ||
Gbl.Usrs.Me.Role.Logged == Rol_NET ||
Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
ICanChooseOption[Usr_OPTION_HOMEWORK] = (Gbl.Scope.Current == Sco_SCOPE_CRS &&
(Gbl.Usrs.Me.Role.Logged == Rol_NET ||
Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
break;
default:
return false;
@ -8201,6 +8210,16 @@ void Usr_DoActionOnSeveralUsrs1 (void)
break;
}
break;
case Usr_OPTION_EMAIL: // TODO: Not activated. Active it when email to users allows selecting individual users
switch (Gbl.Action.Act)
{
case ActDoActOnSevStd:
Gbl.Action.Act = ActMaiStd;
break;
default:
break;
}
break;
case Usr_OPTION_FOLLOW:
switch (Gbl.Action.Act)
{

View File

@ -115,7 +115,7 @@ typedef enum
} Usr_ShowUsrsType_t;
#define Usr_SHOW_USRS_TYPE_DEFAULT Usr_LIST_AS_CLASS_PHOTO
#define Usr_LIST_USRS_NUM_OPTIONS 7
#define Usr_LIST_USRS_NUM_OPTIONS 8
typedef enum
{
Usr_OPTION_UNKNOWN = 0,
@ -123,8 +123,9 @@ typedef enum
Usr_OPTION_HOMEWORK = 2,
Usr_OPTION_ATTENDANCE = 3,
Usr_OPTION_MESSAGE = 4,
Usr_OPTION_FOLLOW = 5,
Usr_OPTION_UNFOLLOW = 6,
Usr_OPTION_EMAIL = 5, // TODO: Not activated. Active it when email to users allows selecting individual users
Usr_OPTION_FOLLOW = 6,
Usr_OPTION_UNFOLLOW = 7,
} Usr_ListUsrsOption_t;
#define Usr_LIST_USRS_DEFAULT_OPTION Usr_OPTION_RECORDS