mirror of https://github.com/acanas/swad-core.git
Version18.73.6
This commit is contained in:
parent
29e260ceea
commit
cb5cb4297f
|
@ -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 |
|
@ -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)
|
||||
|
|
|
@ -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>");
|
||||
|
|
43
swad_user.c
43
swad_user.c
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue