mirror of https://github.com/acanas/swad-core.git
Version 15.34.1
This commit is contained in:
parent
58277e9168
commit
7609708949
|
@ -359,8 +359,16 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;}
|
|||
text-align:center;
|
||||
overflow:hidden;
|
||||
}
|
||||
.NOTICE_TEXT_BRIEF
|
||||
{
|
||||
clear:both;
|
||||
font-size:12pt;
|
||||
color:#204080;
|
||||
overflow:hidden;
|
||||
}
|
||||
.NOTICE_TEXT_ACTIVE
|
||||
{
|
||||
padding:10px 20px;
|
||||
clear:both;
|
||||
font-size:12pt;
|
||||
color:#204080;
|
||||
|
@ -368,6 +376,7 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;}
|
|||
}
|
||||
.NOTICE_TEXT_OBSOLETE
|
||||
{
|
||||
padding:10px 20px;
|
||||
clear:both;
|
||||
font-size:12pt;
|
||||
color:#4070A0;
|
||||
|
|
|
@ -313,6 +313,7 @@ form {margin:0; display:inline;}
|
|||
}
|
||||
.NOTICE_TEXT_ACTIVE
|
||||
{
|
||||
padding:10px 20px;
|
||||
clear:both;
|
||||
font-size:12pt;
|
||||
color:#204080;
|
||||
|
@ -320,6 +321,7 @@ form {margin:0; display:inline;}
|
|||
}
|
||||
.NOTICE_TEXT_OBSOLETE
|
||||
{
|
||||
padding:10px 20px;
|
||||
clear:both;
|
||||
font-size:12pt;
|
||||
color:#4070A0;
|
||||
|
|
|
@ -2440,7 +2440,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
// TabMsg ******************************************************************
|
||||
// Actions in menu:
|
||||
/* ActSeeNtf */{ 990, 0,TabMsg,ActSeeNtf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Ntf_ShowMyNotifications ,"bell" },
|
||||
/* ActSeeAnn */{1235, 1,TabMsg,ActSeeAnn ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Ann_ShowAllAnnouncements ,"note" },
|
||||
/* ActSeeAnn */{1235, 1,TabMsg,ActSeeAnn ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Ann_ShowAllAnnouncements ,"note" },
|
||||
/* ActSeeNot */{ 762, 2,TabMsg,ActSeeNot ,0x1FF,0x1FF,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Not_ListNotices ,"note" },
|
||||
/* ActSeeFor */{ 95, 3,TabMsg,ActSeeFor ,0x1FC,0x1FC,0x1FC,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,For_ShowForumList ,"forum" },
|
||||
/* ActSeeChtRms */{ 51, 4,TabMsg,ActSeeChtRms ,0x1FC,0x1FC,0x1FC,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Cht_ShowChatRooms ,"chat" },
|
||||
|
|
|
@ -73,7 +73,7 @@ static void Ann_CreateAnnouncement (unsigned Roles,const char *Subject,const cha
|
|||
void Ann_ShowAllAnnouncements (void)
|
||||
{
|
||||
extern const char *Txt_New_announcement;
|
||||
extern const char *Txt_All_announcements;
|
||||
extern const char *Txt_Announcements;
|
||||
extern const char *Txt_No_announcements;
|
||||
char Query[256];
|
||||
MYSQL_RES *mysql_res;
|
||||
|
@ -97,14 +97,32 @@ void Ann_ShowAllAnnouncements (void)
|
|||
}
|
||||
|
||||
/***** Get announcements from database *****/
|
||||
sprintf (Query,"SELECT AnnCod,Status,Roles,Subject,Content"
|
||||
" FROM announcements"
|
||||
" ORDER BY AnnCod DESC");
|
||||
if (ICanEditAnnouncements)
|
||||
/* Select all announcements */
|
||||
sprintf (Query,"SELECT AnnCod,Status,Roles,Subject,Content"
|
||||
" FROM announcements"
|
||||
" ORDER BY AnnCod DESC");
|
||||
else if (Gbl.Usrs.Me.Logged)
|
||||
/* Select only active announcements I can see */
|
||||
sprintf (Query,"SELECT AnnCod,Status,Roles,Subject,Content"
|
||||
" FROM announcements"
|
||||
" WHERE Status='%u' AND (Roles&%u)<>0 "
|
||||
" ORDER BY AnnCod DESC",
|
||||
(unsigned) Ann_ACTIVE_ANNOUNCEMENT,
|
||||
Gbl.Usrs.Me.UsrDat.Roles); // All my roles in different courses
|
||||
else // No user logged
|
||||
/* Select only active announcements for unknown users */
|
||||
sprintf (Query,"SELECT AnnCod,Status,Roles,Subject,Content"
|
||||
" FROM announcements"
|
||||
" WHERE Status='%u' AND (Roles&%u)<>0 "
|
||||
" ORDER BY AnnCod DESC",
|
||||
(unsigned) Ann_ACTIVE_ANNOUNCEMENT,
|
||||
(unsigned) (1 << Rol_UNKNOWN));
|
||||
NumAnnouncements = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get announcements");
|
||||
|
||||
if (NumAnnouncements)
|
||||
/***** Start frame *****/
|
||||
Lay_StartRoundFrame ("550px",Txt_All_announcements);
|
||||
Lay_StartRoundFrame ("550px",Txt_Announcements);
|
||||
else
|
||||
Lay_ShowAlert (Lay_INFO,Txt_No_announcements);
|
||||
|
||||
|
@ -170,7 +188,7 @@ void Ann_ShowMyAnnouncementsNotMarkedAsSeen (void)
|
|||
/***** Select announcements not seen *****/
|
||||
// Roles == 24 ==> Teachers and students
|
||||
sprintf (Query,"SELECT AnnCod,Subject,Content FROM announcements"
|
||||
" WHERE (Roles&%u)<>0 AND Status='%u'"
|
||||
" WHERE Status='%u' AND (Roles&%u)<>0 "
|
||||
" AND AnnCod NOT IN"
|
||||
" (SELECT AnnCod FROM ann_seen WHERE UsrCod='%ld')"
|
||||
" ORDER BY AnnCod DESC", // Newest first
|
||||
|
@ -249,7 +267,7 @@ static void Ann_DrawAnAnnouncement (long AnnCod,Ann_Status_t Status,
|
|||
"NOTICE_AUTHOR_OBSOLETE", // Ann_OBSOLETE_ANNOUNCEMENT
|
||||
};
|
||||
Rol_Role_t Role;
|
||||
bool RolesSelected;
|
||||
bool SomeRolesAreSelected;
|
||||
|
||||
/***** Start yellow note *****/
|
||||
fprintf (Gbl.F.Out,"<div class=\"%s\" style=\"width:500px;\">",
|
||||
|
@ -320,15 +338,14 @@ static void Ann_DrawAnAnnouncement (long AnnCod,Ann_Status_t Status,
|
|||
/* Users' roles who can view this announcement */
|
||||
fprintf (Gbl.F.Out,"<p class=\"%s\">%s:",
|
||||
UsersClass[Status],Txt_Users);
|
||||
for (Role = Rol_STUDENT, RolesSelected = false;
|
||||
for (Role = Rol_UNKNOWN, SomeRolesAreSelected = false;
|
||||
Role <= Rol_TEACHER;
|
||||
Role++)
|
||||
if (Roles & (1 << Role))
|
||||
{
|
||||
if (RolesSelected)
|
||||
if (SomeRolesAreSelected)
|
||||
fprintf (Gbl.F.Out,",");
|
||||
else
|
||||
RolesSelected = true;
|
||||
SomeRolesAreSelected = true;
|
||||
fprintf (Gbl.F.Out," %s",Txt_ROLES_PLURAL_abc[Role][Usr_SEX_UNKNOWN]);
|
||||
}
|
||||
fprintf (Gbl.F.Out,"</p>");
|
||||
|
@ -433,7 +450,13 @@ void Ann_ShowFormAnnouncement (void)
|
|||
"<td class=\"DAT LEFT_TOP\">",
|
||||
The_ClassForm[Gbl.Prefs.Theme],
|
||||
Txt_Users);
|
||||
Rol_WriteSelectorRoles (1 << Rol_STUDENT |
|
||||
Rol_WriteSelectorRoles (1 << Rol_UNKNOWN |
|
||||
1 << Rol__GUEST_ |
|
||||
1 << Rol_STUDENT |
|
||||
1 << Rol_TEACHER,
|
||||
1 << Rol_UNKNOWN |
|
||||
1 << Rol__GUEST_ |
|
||||
1 << Rol_STUDENT |
|
||||
1 << Rol_TEACHER);
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
|
|
@ -109,11 +109,12 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.34 (2015/11/01)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.34.1 (2015/11/01)"
|
||||
|
||||
// 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 15.34.1: Nov 01, 2015 Global announcements can be seen by all. (186939 lines)
|
||||
Version 15.34: Nov 01, 2015 Global announcements can be hidden. (186896 lines)
|
||||
3 changes necessary in database:
|
||||
ALTER TABLE announcements ADD COLUMN Status TINYINT NOT NULL DEFAULT 0 AFTER AnnCod,ADD INDEX (Status);
|
||||
|
|
|
@ -2142,7 +2142,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
extern const char *Txt_Register;
|
||||
extern const char *Txt_Reject;
|
||||
extern const char *Txt_No_enrollment_requests;
|
||||
unsigned Roles;
|
||||
unsigned RolesSelected;
|
||||
char Query[1024];
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
|
@ -2194,25 +2194,28 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
"<td class=\"DAT LEFT_MIDDLE\">",
|
||||
The_ClassForm[Gbl.Prefs.Theme],
|
||||
Txt_Users);
|
||||
Rol_GetSelectedRoles (&Roles);
|
||||
if (!Roles)
|
||||
Rol_GetSelectedRoles (&RolesSelected);
|
||||
if (!RolesSelected)
|
||||
/* Set default roles */
|
||||
switch (Gbl.Usrs.Me.LoggedRole)
|
||||
{
|
||||
case Rol_TEACHER:
|
||||
Roles = (1 << Rol_STUDENT) | (1 << Rol_TEACHER);
|
||||
RolesSelected = (1 << Rol_STUDENT) |
|
||||
(1 << Rol_TEACHER);
|
||||
break;
|
||||
case Rol_DEG_ADM:
|
||||
case Rol_CTR_ADM:
|
||||
case Rol_INS_ADM:
|
||||
case Rol_SYS_ADM:
|
||||
Roles = (1 << Rol_TEACHER);
|
||||
RolesSelected = (1 << Rol_TEACHER);
|
||||
break;
|
||||
default:
|
||||
Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
|
||||
break;
|
||||
}
|
||||
Rol_WriteSelectorRoles (Roles);
|
||||
Rol_WriteSelectorRoles (1 << Rol_STUDENT |
|
||||
1 << Rol_TEACHER,
|
||||
RolesSelected);
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>"
|
||||
"</table>");
|
||||
|
@ -2242,7 +2245,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_DEG_ADM:
|
||||
sprintf (Query,"SELECT crs_usr_requests.ReqCod,"
|
||||
|
@ -2257,7 +2260,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_CTR_ADM:
|
||||
sprintf (Query,"SELECT crs_usr_requests.ReqCod,"
|
||||
|
@ -2273,7 +2276,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_INS_ADM:
|
||||
sprintf (Query,"SELECT crs_usr_requests.ReqCod,"
|
||||
|
@ -2290,7 +2293,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_SYS_ADM:
|
||||
sprintf (Query,"SELECT ReqCod,"
|
||||
|
@ -2301,7 +2304,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" FROM crs_usr_requests"
|
||||
" WHERE ((1<<Role)&%u)<>0"
|
||||
" ORDER BY RequestTime DESC",
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
default:
|
||||
Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
|
||||
|
@ -2328,7 +2331,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Gbl.CurrentIns.Ins.InsCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_DEG_ADM:
|
||||
sprintf (Query,"SELECT crs_usr_requests.ReqCod,"
|
||||
|
@ -2347,7 +2350,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Gbl.CurrentIns.Ins.InsCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_CTR_ADM:
|
||||
sprintf (Query,"SELECT crs_usr_requests.ReqCod,"
|
||||
|
@ -2366,7 +2369,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Gbl.CurrentIns.Ins.InsCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this institution
|
||||
case Rol_SYS_ADM:
|
||||
|
@ -2383,7 +2386,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.CurrentIns.Ins.InsCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
default:
|
||||
Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
|
||||
|
@ -2409,7 +2412,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Gbl.CurrentCtr.Ctr.CtrCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_DEG_ADM:
|
||||
sprintf (Query,"SELECT crs_usr_requests.ReqCod,"
|
||||
|
@ -2427,7 +2430,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Gbl.CurrentCtr.Ctr.CtrCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_CTR_ADM: // If I am logged as admin of this centre , I can view all the requesters from this centre
|
||||
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this centre
|
||||
|
@ -2444,7 +2447,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.CurrentCtr.Ctr.CtrCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
default:
|
||||
Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
|
||||
|
@ -2469,7 +2472,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Gbl.CurrentDeg.Deg.DegCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
case Rol_DEG_ADM: // If I am logged as admin of this degree , I can view all the requesters from this degree
|
||||
case Rol_CTR_ADM: // If I am logged as admin of this centre , I can view all the requesters from this degree
|
||||
|
@ -2486,7 +2489,7 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" AND ((1<<crs_usr_requests.Role)&%u)<>0"
|
||||
" ORDER BY crs_usr_requests.RequestTime DESC",
|
||||
Gbl.CurrentDeg.Deg.DegCod,
|
||||
Roles);
|
||||
RolesSelected);
|
||||
break;
|
||||
default:
|
||||
Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
|
||||
|
@ -2507,7 +2510,8 @@ void Enr_ShowEnrollmentRequests (void)
|
|||
" WHERE CrsCod='%ld'"
|
||||
" AND ((1<<Role)&%u)<>0"
|
||||
" ORDER BY RequestTime DESC",
|
||||
Gbl.CurrentCrs.Crs.CrsCod,Roles);
|
||||
Gbl.CurrentCrs.Crs.CrsCod,
|
||||
RolesSelected);
|
||||
break;
|
||||
default:
|
||||
Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
|
||||
|
|
|
@ -619,12 +619,13 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
|
|||
UniqueId,(long) TimeUTC);
|
||||
|
||||
/***** Write the content of the notice *****/
|
||||
fprintf (Gbl.F.Out,"<div class=\"%s\">%s",
|
||||
TextClass[Status],Content);
|
||||
if (TypeNoticesListing == Not_LIST_BRIEF_NOTICES)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\">");
|
||||
fprintf (Gbl.F.Out,"<div class=\"NOTICE_TEXT_BRIEF\">%s</div>",
|
||||
Content);
|
||||
|
||||
/* Form to view full notice */
|
||||
fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\">");
|
||||
Act_FormStart (ActShoNot);
|
||||
Not_PutHiddenParamNotCod (NotCod);
|
||||
Act_LinkFormSubmit (Txt_See_full_notice,The_ClassForm[Gbl.Prefs.Theme]);
|
||||
|
@ -638,7 +639,9 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
|
|||
Act_FormEnd ();
|
||||
fprintf (Gbl.F.Out,"</div>");
|
||||
}
|
||||
fprintf (Gbl.F.Out,"</div>");
|
||||
else
|
||||
fprintf (Gbl.F.Out,"<div class=\"%s\">%s</div>",
|
||||
TextClass[Status],Content);
|
||||
|
||||
/***** Write the author *****/
|
||||
fprintf (Gbl.F.Out,"<div class=\"%s\">",
|
||||
|
|
24
swad_role.c
24
swad_role.c
|
@ -348,22 +348,24 @@ void Rol_ChangeMyRole (void)
|
|||
/********************* Write selector of users' roles ************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Rol_WriteSelectorRoles (unsigned Roles)
|
||||
void Rol_WriteSelectorRoles (unsigned RolesAllowed,
|
||||
unsigned RolesSelected)
|
||||
{
|
||||
extern const char *Txt_ROLES_PLURAL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||
Rol_Role_t Role;
|
||||
|
||||
for (Role = Rol_STUDENT;
|
||||
Role <= Rol_TEACHER;
|
||||
for (Role = Rol_UNKNOWN;
|
||||
Role <= Rol_SYS_ADM;
|
||||
Role++)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<input type=\"checkbox\" name=\"Roles\" value=\"%u\"",
|
||||
(unsigned) Role);
|
||||
if ((Roles & (1 << Role)))
|
||||
fprintf (Gbl.F.Out," checked=\"checked\"");
|
||||
fprintf (Gbl.F.Out," />%s<br />",
|
||||
Txt_ROLES_PLURAL_abc[Role][Usr_SEX_UNKNOWN]);
|
||||
}
|
||||
if ((RolesAllowed & (1 << Role)))
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<input type=\"checkbox\" name=\"Roles\" value=\"%u\"",
|
||||
(unsigned) Role);
|
||||
if ((RolesSelected & (1 << Role)))
|
||||
fprintf (Gbl.F.Out," checked=\"checked\"");
|
||||
fprintf (Gbl.F.Out," />%s<br />",
|
||||
Txt_ROLES_PLURAL_abc[Role][Usr_SEX_UNKNOWN]);
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -78,7 +78,8 @@ unsigned Rol_ConvertUnsignedStrToRoles (const char *UnsignedStr);
|
|||
void Rol_PutFormToChangeMyRole (bool FormInHead);
|
||||
void Rol_ChangeMyRole (void);
|
||||
|
||||
void Rol_WriteSelectorRoles (unsigned Roles);
|
||||
void Rol_WriteSelectorRoles (unsigned RolesAllowed,
|
||||
unsigned RolesSelected);
|
||||
void Rol_GetSelectedRoles (unsigned *Roles);
|
||||
|
||||
Rol_Role_t Rol_GetRequestedRole (long UsrCod);
|
||||
|
|
|
@ -1572,7 +1572,9 @@ void Svy_RequestCreatOrEditSvy (void)
|
|||
"<td class=\"DAT LEFT_MIDDLE\">",
|
||||
The_ClassForm[Gbl.Prefs.Theme],
|
||||
Txt_Users);
|
||||
Rol_WriteSelectorRoles (Svy.Roles);
|
||||
Rol_WriteSelectorRoles (1 << Rol_STUDENT |
|
||||
1 << Rol_TEACHER,
|
||||
Svy.Roles);
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
||||
|
|
|
@ -294,9 +294,6 @@ static bool Tab_CheckIfICanViewTab (Act_Tab_t Tab)
|
|||
Gbl.CurrentCrs.Crs.CrsCod <= 0);
|
||||
case TabCrs:
|
||||
return (Gbl.CurrentCrs.Crs.CrsCod > 0);
|
||||
case TabMsg: // TODO: Show this tab in any case when Announcements will be available for all
|
||||
return (Gbl.Usrs.Me.Logged ||
|
||||
Gbl.CurrentCrs.Crs.CrsCod > 0);
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
|
|
42
swad_text.c
42
swad_text.c
|
@ -2002,27 +2002,6 @@ const char *Txt_All =
|
|||
"Tudo";
|
||||
#endif
|
||||
|
||||
const char *Txt_All_announcements =
|
||||
#if L==0
|
||||
"Tots els anuncis";
|
||||
#elif L==1
|
||||
"Alle Bekanntmachungen";
|
||||
#elif L==2
|
||||
"All announcements";
|
||||
#elif L==3
|
||||
"Todos los anuncios";
|
||||
#elif L==4
|
||||
"Tous les annonces";
|
||||
#elif L==5
|
||||
"Todos los anuncios"; // Okoteve traducción
|
||||
#elif L==6
|
||||
"Tutti i annunci";
|
||||
#elif L==7
|
||||
"Wszystkie ogłoszenia";
|
||||
#elif L==8
|
||||
"Todos os anúncios";
|
||||
#endif
|
||||
|
||||
const char *Txt_all_degrees =
|
||||
#if L==0
|
||||
"Totes les titulacions";
|
||||
|
@ -2338,6 +2317,27 @@ const char *Txt_and_X_other_recipients = // Warning: it is very important to inc
|
|||
"...e %u outros destinatários";
|
||||
#endif
|
||||
|
||||
const char *Txt_Announcements =
|
||||
#if L==0
|
||||
"Anuncis";
|
||||
#elif L==1
|
||||
"Bekanntmachungen";
|
||||
#elif L==2
|
||||
"Announcements";
|
||||
#elif L==3
|
||||
"Anuncios";
|
||||
#elif L==4
|
||||
"Annonces";
|
||||
#elif L==5
|
||||
"Anuncios"; // Okoteve traducción
|
||||
#elif L==6
|
||||
"Annunci";
|
||||
#elif L==7
|
||||
"Ogłoszenia";
|
||||
#elif L==8
|
||||
"Anúncios";
|
||||
#endif
|
||||
|
||||
const char *Txt_Announcement_of_exam_removed =
|
||||
#if L==0
|
||||
"Convocatoria d'examen eliminada.";
|
||||
|
|
Loading…
Reference in New Issue