Version 15.161.1

This commit is contained in:
Antonio Cañas Vargas 2016-03-24 16:49:36 +01:00
parent c4b9526c72
commit 70c54684c6
7 changed files with 103 additions and 80 deletions

View File

@ -482,7 +482,7 @@ void Ann_ShowFormAnnouncement (void)
1 << Rol__GUEST_ | 1 << Rol__GUEST_ |
1 << Rol_STUDENT | 1 << Rol_STUDENT |
1 << Rol_TEACHER, 1 << Rol_TEACHER,
false); false,false);
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
@ -513,7 +513,7 @@ void Ann_ReceiveAnnouncement (void)
Str_TO_RIGOROUS_HTML,true); Str_TO_RIGOROUS_HTML,true);
/* Get users who can view this announcement */ /* Get users who can view this announcement */
Rol_GetSelectedRoles (&Roles); Roles = Rol_GetSelectedRoles ();
/***** Create a new announcement in database *****/ /***** Create a new announcement in database *****/
Ann_CreateAnnouncement (Roles,Subject,Content); Ann_CreateAnnouncement (Roles,Subject,Content);

View File

@ -137,13 +137,15 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 15.161 (2016-03-24)" #define Log_PLATFORM_VERSION "SWAD 15.161.1 (2016-03-24)"
#define CSS_FILE "swad15.160.2.css" #define CSS_FILE "swad15.160.2.css"
#define JS_FILE "swad15.131.3.js" #define JS_FILE "swad15.131.3.js"
// 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.161.1: Mar 24, 2016 Code refactoring in forms to select roles.
Put contextual icon "update" integrated in frame in "enrollment requests". (196598 lines)
Version 15.161: Mar 24, 2016 Changes related to enrollments requests. (196581 lines) Version 15.161: Mar 24, 2016 Changes related to enrollments requests. (196581 lines)
1 change necessary in database: 1 change necessary in database:
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1522','es','N','Actualizar inscripciones pendientes'); INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1522','es','N','Actualizar inscripciones pendientes');

View File

@ -102,7 +102,8 @@ static void Enr_MarkOfficialStdsAsRemovable (long ImpGrpCod,bool RemoveSpecified
static void Enr_PutLinkToRemAllStdsThisCrs (void); static void Enr_PutLinkToRemAllStdsThisCrs (void);
static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected); static void Enr_ShowEnrollmentRequestsGivenRoles (void);
static void Enr_PutIconToUpdateEnrollmentRequests (void);
static void Enr_RemoveEnrollmentRequest (long CrsCod,long UsrCod); static void Enr_RemoveEnrollmentRequest (long CrsCod,long UsrCod);
@ -2159,14 +2160,16 @@ void Enr_ShowEnrollmentRequests (void)
switch (Gbl.Usrs.Me.LoggedRole) switch (Gbl.Usrs.Me.LoggedRole)
{ {
case Rol_TEACHER: case Rol_TEACHER:
Enr_ShowEnrollmentRequestsGivenRoles ((1 << Rol_STUDENT) | Gbl.EnrollmentRequests.RolesSelected = (1 << Rol_STUDENT) |
(1 << Rol_TEACHER)); (1 << Rol_TEACHER);
Enr_ShowEnrollmentRequestsGivenRoles ();
break; break;
case Rol_DEG_ADM: case Rol_DEG_ADM:
case Rol_CTR_ADM: case Rol_CTR_ADM:
case Rol_INS_ADM: case Rol_INS_ADM:
case Rol_SYS_ADM: case Rol_SYS_ADM:
Enr_ShowEnrollmentRequestsGivenRoles (1 << Rol_TEACHER); Gbl.EnrollmentRequests.RolesSelected = (1 << Rol_TEACHER);
Enr_ShowEnrollmentRequestsGivenRoles ();
break; break;
default: default:
Lay_ShowErrorAndExit ("You don't have permission to list requesters."); Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
@ -2180,27 +2183,24 @@ void Enr_ShowEnrollmentRequests (void)
void Enr_UpdateEnrollmentRequests (void) void Enr_UpdateEnrollmentRequests (void)
{ {
unsigned RolesSelected;
/***** Get selected roles *****/ /***** Get selected roles *****/
Rol_GetSelectedRoles (&RolesSelected); Gbl.EnrollmentRequests.RolesSelected = Rol_GetSelectedRoles ();
/***** Update enrollment requests *****/ /***** Update enrollment requests *****/
Enr_ShowEnrollmentRequestsGivenRoles (RolesSelected); Enr_ShowEnrollmentRequestsGivenRoles ();
} }
/*****************************************************************************/ /*****************************************************************************/
/************* Show pending requests for enrollment given roles **************/ /************* Show pending requests for enrollment given roles **************/
/*****************************************************************************/ /*****************************************************************************/
// Gbl.EnrollmentRequests.RolesSelected must be set
static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected) static void Enr_ShowEnrollmentRequestsGivenRoles (void)
{ {
extern const char *The_ClassForm[The_NUM_THEMES]; extern const char *The_ClassForm[The_NUM_THEMES];
extern const char *The_ClassFormBold[The_NUM_THEMES];
extern const char *Txt_Enrollment_requests; extern const char *Txt_Enrollment_requests;
extern const char *Txt_Scope; extern const char *Txt_Scope;
extern const char *Txt_Users; extern const char *Txt_Users;
extern const char *Txt_Update;
extern const char *Txt_Course; extern const char *Txt_Course;
extern const char *Txt_Teachers_ABBREVIATION; extern const char *Txt_Teachers_ABBREVIATION;
extern const char *Txt_Requester; extern const char *Txt_Requester;
@ -2226,8 +2226,18 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
char PhotoURL[PATH_MAX+1]; char PhotoURL[PATH_MAX+1];
Rol_Role_t DesiredRole; Rol_Role_t DesiredRole;
/***** Get scope *****/
Gbl.Scope.Allowed = 1 << Sco_SCOPE_SYS |
1 << Sco_SCOPE_CTY |
1 << Sco_SCOPE_INS |
1 << Sco_SCOPE_CTR |
1 << Sco_SCOPE_DEG |
1 << Sco_SCOPE_CRS;
Gbl.Scope.Default = Sco_SCOPE_CRS;
Sco_GetScope ();
/***** Start frame *****/ /***** Start frame *****/
Lay_StartRoundFrame (NULL,Txt_Enrollment_requests,NULL); Lay_StartRoundFrame ("100%",Txt_Enrollment_requests,Enr_PutIconToUpdateEnrollmentRequests);
/***** Selection of scope and roles *****/ /***** Selection of scope and roles *****/
/* Start form */ /* Start form */
@ -2242,14 +2252,6 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
"<td class=\"LEFT_MIDDLE\">", "<td class=\"LEFT_MIDDLE\">",
The_ClassForm[Gbl.Prefs.Theme], The_ClassForm[Gbl.Prefs.Theme],
Txt_Scope); Txt_Scope);
Gbl.Scope.Allowed = 1 << Sco_SCOPE_SYS |
1 << Sco_SCOPE_CTY |
1 << Sco_SCOPE_INS |
1 << Sco_SCOPE_CTR |
1 << Sco_SCOPE_DEG |
1 << Sco_SCOPE_CRS;
Gbl.Scope.Default = Sco_SCOPE_CRS;
Sco_GetScope ();
Sco_PutSelectorScope (true); Sco_PutSelectorScope (true);
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
@ -2264,17 +2266,13 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
Txt_Users); Txt_Users);
Rol_WriteSelectorRoles (1 << Rol_STUDENT | Rol_WriteSelectorRoles (1 << Rol_STUDENT |
1 << Rol_TEACHER, 1 << Rol_TEACHER,
RolesSelected, Gbl.EnrollmentRequests.RolesSelected,
true); false,true);
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>" "</tr>"
"</table>"); "</table>");
/* Send button */ /* End form */
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Act_LinkFormSubmitAnimated (Txt_Update,The_ClassFormBold[Gbl.Prefs.Theme]);
Lay_PutCalculateIconWithText (Txt_Update,Txt_Update);
fprintf (Gbl.F.Out,"</div>");
Act_FormEnd (); Act_FormEnd ();
/***** Build query *****/ /***** Build query *****/
@ -2298,7 +2296,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Rol_TEACHER, (unsigned) Rol_TEACHER,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
case Rol_DEG_ADM: case Rol_DEG_ADM:
// Requests in all degrees administrated by me // Requests in all degrees administrated by me
@ -2314,7 +2312,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<<crs_usr_requests.Role)&%u)<>0" " AND ((1<<crs_usr_requests.Role)&%u)<>0"
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
case Rol_CTR_ADM: case Rol_CTR_ADM:
// Requests in all centres administrated by me // Requests in all centres administrated by me
@ -2331,7 +2329,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<<crs_usr_requests.Role)&%u)<>0" " AND ((1<<crs_usr_requests.Role)&%u)<>0"
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
case Rol_INS_ADM: case Rol_INS_ADM:
// Requests in all institutions administrated by me // Requests in all institutions administrated by me
@ -2349,7 +2347,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<<crs_usr_requests.Role)&%u)<>0" " AND ((1<<crs_usr_requests.Role)&%u)<>0"
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
case Rol_SYS_ADM: case Rol_SYS_ADM:
// All requests // All requests
@ -2361,7 +2359,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" FROM crs_usr_requests" " FROM crs_usr_requests"
" WHERE ((1<<Role)&%u)<>0" " WHERE ((1<<Role)&%u)<>0"
" ORDER BY RequestTime DESC", " ORDER BY RequestTime DESC",
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
default: default:
Lay_ShowErrorAndExit ("You don't have permission to list requesters."); Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
@ -2392,7 +2390,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Rol_TEACHER, (unsigned) Rol_TEACHER,
Gbl.CurrentCty.Cty.CtyCod, Gbl.CurrentCty.Cty.CtyCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
case Rol_DEG_ADM: case Rol_DEG_ADM:
// Requests in degrees of this country administrated by me // Requests in degrees of this country administrated by me
@ -2413,7 +2411,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.CurrentCty.Cty.CtyCod, Gbl.CurrentCty.Cty.CtyCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
case Rol_CTR_ADM: case Rol_CTR_ADM:
// Requests in centres of this country administrated by me // Requests in centres of this country administrated by me
@ -2434,7 +2432,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.CurrentCty.Cty.CtyCod, Gbl.CurrentCty.Cty.CtyCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
case Rol_INS_ADM: case Rol_INS_ADM:
// Requests in institutions of this country administrated by me // Requests in institutions of this country administrated by me
@ -2455,7 +2453,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.CurrentCty.Cty.CtyCod, Gbl.CurrentCty.Cty.CtyCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
case Rol_SYS_ADM: case Rol_SYS_ADM:
// Requests in any course of this country // Requests in any course of this country
@ -2473,7 +2471,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<<crs_usr_requests.Role)&%u)<>0" " AND ((1<<crs_usr_requests.Role)&%u)<>0"
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.CurrentCty.Cty.CtyCod, Gbl.CurrentCty.Cty.CtyCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
default: default:
Lay_ShowErrorAndExit ("You don't have permission to list requesters."); Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
@ -2503,7 +2501,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Rol_TEACHER, (unsigned) Rol_TEACHER,
Gbl.CurrentIns.Ins.InsCod, Gbl.CurrentIns.Ins.InsCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
case Rol_DEG_ADM: case Rol_DEG_ADM:
// Requests in degrees of this institution administrated by me // Requests in degrees of this institution administrated by me
@ -2523,7 +2521,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.CurrentIns.Ins.InsCod, Gbl.CurrentIns.Ins.InsCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
case Rol_CTR_ADM: case Rol_CTR_ADM:
// Requests in centres of this institution administrated by me // Requests in centres of this institution administrated by me
@ -2543,7 +2541,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.CurrentIns.Ins.InsCod, Gbl.CurrentIns.Ins.InsCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; 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_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this institution
case Rol_SYS_ADM: case Rol_SYS_ADM:
@ -2561,7 +2559,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<<crs_usr_requests.Role)&%u)<>0" " AND ((1<<crs_usr_requests.Role)&%u)<>0"
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.CurrentIns.Ins.InsCod, Gbl.CurrentIns.Ins.InsCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
default: default:
Lay_ShowErrorAndExit ("You don't have permission to list requesters."); Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
@ -2590,7 +2588,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Rol_TEACHER, (unsigned) Rol_TEACHER,
Gbl.CurrentCtr.Ctr.CtrCod, Gbl.CurrentCtr.Ctr.CtrCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
case Rol_DEG_ADM: case Rol_DEG_ADM:
// Requests in degrees of this centre administrated by me // Requests in degrees of this centre administrated by me
@ -2609,7 +2607,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.CurrentCtr.Ctr.CtrCod, Gbl.CurrentCtr.Ctr.CtrCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; 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_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 case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this centre
@ -2627,7 +2625,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<<crs_usr_requests.Role)&%u)<>0" " AND ((1<<crs_usr_requests.Role)&%u)<>0"
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.CurrentCtr.Ctr.CtrCod, Gbl.CurrentCtr.Ctr.CtrCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
default: default:
Lay_ShowErrorAndExit ("You don't have permission to list requesters."); Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
@ -2655,7 +2653,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
Gbl.Usrs.Me.UsrDat.UsrCod, Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Rol_TEACHER, (unsigned) Rol_TEACHER,
Gbl.CurrentDeg.Deg.DegCod, Gbl.CurrentDeg.Deg.DegCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; 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_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 case Rol_CTR_ADM: // If I am logged as admin of this centre , I can view all the requesters from this degree
@ -2673,7 +2671,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<<crs_usr_requests.Role)&%u)<>0" " AND ((1<<crs_usr_requests.Role)&%u)<>0"
" ORDER BY crs_usr_requests.RequestTime DESC", " ORDER BY crs_usr_requests.RequestTime DESC",
Gbl.CurrentDeg.Deg.DegCod, Gbl.CurrentDeg.Deg.DegCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
default: default:
Lay_ShowErrorAndExit ("You don't have permission to list requesters."); Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
@ -2696,7 +2694,7 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
" AND ((1<<Role)&%u)<>0" " AND ((1<<Role)&%u)<>0"
" ORDER BY RequestTime DESC", " ORDER BY RequestTime DESC",
Gbl.CurrentCrs.Crs.CrsCod, Gbl.CurrentCrs.Crs.CrsCod,
RolesSelected); Gbl.EnrollmentRequests.RolesSelected);
break; break;
default: default:
Lay_ShowErrorAndExit ("You don't have permission to list requesters."); Lay_ShowErrorAndExit ("You don't have permission to list requesters.");
@ -2868,6 +2866,24 @@ static void Enr_ShowEnrollmentRequestsGivenRoles (unsigned RolesSelected)
Lay_EndRoundFrame (); Lay_EndRoundFrame ();
} }
/*****************************************************************************/
/***************** Put icon to update enrollment requests ********************/
/*****************************************************************************/
static void Enr_PutIconToUpdateEnrollmentRequests (void)
{
extern const char *The_ClassFormBold[The_NUM_THEMES];
extern const char *Txt_Update;
Act_FormStart (ActUpdSignUpReq);
Sco_PutParamScope (Gbl.Scope.Current);
Rol_PutHiddenParamRoles (Gbl.EnrollmentRequests.RolesSelected);
Par_PutHiddenParamUnsigned ("Roles",Gbl.EnrollmentRequests.RolesSelected);
Act_LinkFormSubmitAnimated (Txt_Update,The_ClassFormBold[Gbl.Prefs.Theme]);
Lay_PutCalculateIcon (Txt_Update);
Act_FormEnd ();
}
/*****************************************************************************/ /*****************************************************************************/
/******************** Remove a request for inscription ***********************/ /******************** Remove a request for inscription ***********************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -395,6 +395,10 @@ struct Globals
Sco_Scope_t Default; Sco_Scope_t Default;
unsigned Allowed; unsigned Allowed;
} Scope; } Scope;
struct
{
unsigned RolesSelected;
} EnrollmentRequests;
struct struct
{ {
struct Country Cty; struct Country Cty;

View File

@ -343,7 +343,7 @@ void Rol_ChangeMyRole (void)
/*****************************************************************************/ /*****************************************************************************/
void Rol_WriteSelectorRoles (unsigned RolesAllowed,unsigned RolesSelected, void Rol_WriteSelectorRoles (unsigned RolesAllowed,unsigned RolesSelected,
bool SendOnChange) bool Disabled,bool SendOnChange)
{ {
extern const char *Txt_ROLES_PLURAL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; extern const char *Txt_ROLES_PLURAL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
Rol_Role_t Role; Rol_Role_t Role;
@ -353,12 +353,15 @@ void Rol_WriteSelectorRoles (unsigned RolesAllowed,unsigned RolesSelected,
Role++) Role++)
if ((RolesAllowed & (1 << Role))) if ((RolesAllowed & (1 << Role)))
{ {
fprintf (Gbl.F.Out,"<input type=\"checkbox\" name=\"Roles\" value=\"%u\"", fprintf (Gbl.F.Out,"<input type=\"checkbox\" name=\"Role\" value=\"%u\"",
(unsigned) Role); (unsigned) Role);
if ((RolesSelected & (1 << Role))) if ((RolesSelected & (1 << Role)))
fprintf (Gbl.F.Out," checked=\"checked\""); fprintf (Gbl.F.Out," checked=\"checked\"");
if (Disabled)
fprintf (Gbl.F.Out," disabled=\"disabled\"");
if (SendOnChange) if (SendOnChange)
fprintf (Gbl.F.Out," onchange=\"document.getElementById('%s').submit();\"", fprintf (Gbl.F.Out," onchange=\"document.getElementById('%s').submit();\"",
Gbl.Form.Id); Gbl.Form.Id);
@ -372,33 +375,44 @@ void Rol_WriteSelectorRoles (unsigned RolesAllowed,unsigned RolesSelected,
/******************** Put hidden param with users' roles *********************/ /******************** Put hidden param with users' roles *********************/
/*****************************************************************************/ /*****************************************************************************/
void Rol_PutHiddenParamRoles (unsigned Role) void Rol_PutHiddenParamRoles (unsigned Roles)
{ {
fprintf (Gbl.F.Out,"<input type=\"hidden\" name=\"Roles\" value=\"%u\" />", fprintf (Gbl.F.Out,"<input type=\"hidden\" name=\"Roles\" value=\"%u\" />",
Role); Roles);
} }
/*****************************************************************************/ /*****************************************************************************/
/************************* Get selected users' roles *************************/ /************************* Get selected users' roles *************************/
/*****************************************************************************/ /*****************************************************************************/
void Rol_GetSelectedRoles (unsigned *Roles) unsigned Rol_GetSelectedRoles (void)
{ {
char StrRoles[(10+1)*2]; char StrRoles[(10+1)*2];
const char *Ptr; const char *Ptr;
char UnsignedStr[10+1]; char UnsignedStr[10+1];
unsigned UnsignedNum;
Rol_Role_t Role; Rol_Role_t Role;
unsigned Roles;
Par_GetParMultiToText ("Roles",StrRoles,(10+1)*2); /***** Try to get param "Roles" with multiple roles *****/
*Roles = 0; Par_GetParToText ("Roles",UnsignedStr,10);
if (sscanf (UnsignedStr,"%u",&UnsignedNum) == 1)
Roles = UnsignedNum;
else
Roles = 0;
/***** Try to get multiple param "Role" *****/
Par_GetParMultiToText ("Role",StrRoles,(10+1)*2);
for (Ptr = StrRoles; for (Ptr = StrRoles;
*Ptr;) *Ptr;)
{ {
Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,10); Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,10);
if (sscanf (UnsignedStr,"%u",&Role) != 1) if (sscanf (UnsignedStr,"%u",&Role) != 1)
Lay_ShowErrorAndExit ("can not get user's role"); Lay_ShowErrorAndExit ("can not get user's role");
*Roles |= (1 << Role); Roles |= (1 << Role);
} }
return Roles;
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -79,9 +79,9 @@ void Rol_PutFormToChangeMyRole (bool FormInHead);
void Rol_ChangeMyRole (void); void Rol_ChangeMyRole (void);
void Rol_WriteSelectorRoles (unsigned RolesAllowed,unsigned RolesSelected, void Rol_WriteSelectorRoles (unsigned RolesAllowed,unsigned RolesSelected,
bool SendOnChange); bool Disabled,bool SendOnChange);
void Rol_PutHiddenParamRoles (unsigned Role); void Rol_PutHiddenParamRoles (unsigned Role);
void Rol_GetSelectedRoles (unsigned *Roles); unsigned Rol_GetSelectedRoles (void);
Rol_Role_t Rol_GetRequestedRole (long UsrCod); Rol_Role_t Rol_GetRequestedRole (long UsrCod);

View File

@ -378,13 +378,10 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,bool Sh
extern const char *Txt_Degree; extern const char *Txt_Degree;
extern const char *Txt_Course; extern const char *Txt_Course;
extern const char *Txt_Users; extern const char *Txt_Users;
extern const char *Txt_ROLES_PLURAL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_Answer_survey; extern const char *Txt_Answer_survey;
extern const char *Txt_View_survey_results; extern const char *Txt_View_survey_results;
static unsigned UniqueId = 0; static unsigned UniqueId = 0;
struct Survey Svy; struct Survey Svy;
Rol_Role_t Role;
bool RolesSelected;
char Txt[Cns_MAX_BYTES_TEXT+1]; char Txt[Cns_MAX_BYTES_TEXT+1];
/***** Start frame *****/ /***** Start frame *****/
@ -503,24 +500,14 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,bool Sh
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
/* Users' roles who can answer the survey */ /* Users' roles who can answer the survey */
fprintf (Gbl.F.Out,"<div class=\"%s\">%s:", fprintf (Gbl.F.Out,"<div class=\"%s\">%s:<br />",
Svy.Status.Visible ? "ASG_GRP" : Svy.Status.Visible ? "ASG_GRP" :
"ASG_GRP_LIGHT", "ASG_GRP_LIGHT",
Txt_Users); Txt_Users);
for (Role = Rol_STUDENT, RolesSelected = false; Rol_WriteSelectorRoles (1 << Rol_STUDENT |
Role <= Rol_TEACHER; 1 << Rol_TEACHER,
Role++) Svy.Roles,
{ true,false);
if (RolesSelected)
fprintf (Gbl.F.Out,",");
else
RolesSelected = true;
fprintf (Gbl.F.Out,"<input type=\"checkbox\" name=\"Roles\" value=\"%u\" disabled=\"disabled\"",
(unsigned) Role);
if (Svy.Roles & (1 << Role))
fprintf (Gbl.F.Out," checked=\"checked\"");
fprintf (Gbl.F.Out," />%s",Txt_ROLES_PLURAL_abc[Role][Usr_SEX_UNKNOWN]);
}
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
/* Groups whose users can answer this survey */ /* Groups whose users can answer this survey */
@ -1605,7 +1592,7 @@ void Svy_RequestCreatOrEditSvy (void)
Rol_WriteSelectorRoles (1 << Rol_STUDENT | Rol_WriteSelectorRoles (1 << Rol_STUDENT |
1 << Rol_TEACHER, 1 << Rol_TEACHER,
Svy.Roles, Svy.Roles,
false); false,false);
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
@ -1805,7 +1792,7 @@ void Svy_RecFormSurvey (void)
NewSvy.TimeUTC[Svy_END_TIME] = NewSvy.TimeUTC[Svy_START_TIME] + 24*60*60; // +24 hours NewSvy.TimeUTC[Svy_END_TIME] = NewSvy.TimeUTC[Svy_START_TIME] + 24*60*60; // +24 hours
/***** Get users who can answer this survey *****/ /***** Get users who can answer this survey *****/
Rol_GetSelectedRoles (&(NewSvy.Roles)); NewSvy.Roles = Rol_GetSelectedRoles ();
/***** Check if title is correct *****/ /***** Check if title is correct *****/
if (NewSvy.Title[0]) // If there's a survey title if (NewSvy.Title[0]) // If there's a survey title