Version 16.64

This commit is contained in:
Antonio Cañas Vargas 2016-11-18 00:17:53 +01:00
parent b4d368e5db
commit 29c5269d35
11 changed files with 192 additions and 138 deletions

View File

@ -512,7 +512,7 @@ void ID_ShowFormOthIDs (void)
Lay_StartRoundFrame (NULL,Txt_ID,NULL,NULL); Lay_StartRoundFrame (NULL,Txt_ID,NULL,NULL);
/***** Show user's record *****/ /***** Show user's record *****/
Rec_ShowSharedUsrRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Other.UsrDat);
/***** Form with the user's ID *****/ /***** Form with the user's ID *****/
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL CELLS_PAD_2\">"); fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL CELLS_PAD_2\">");
@ -692,7 +692,7 @@ void ID_RemoveOtherUsrID (void)
ID_GetListIDsFromUsrCod (&Gbl.Usrs.Other.UsrDat); ID_GetListIDsFromUsrCod (&Gbl.Usrs.Other.UsrDat);
/***** Show user's record *****/ /***** Show user's record *****/
Rec_ShowSharedUsrRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Other.UsrDat);
} }
else // User not found else // User not found
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_); Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
@ -807,7 +807,7 @@ void ID_NewOtherUsrID (void)
ID_GetListIDsFromUsrCod (&Gbl.Usrs.Other.UsrDat); ID_GetListIDsFromUsrCod (&Gbl.Usrs.Other.UsrDat);
/***** Show user's record *****/ /***** Show user's record *****/
Rec_ShowSharedUsrRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Other.UsrDat);
} }
else // User not found else // User not found
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_); Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
@ -1014,7 +1014,7 @@ static void ID_ReqConfOrConfOtherUsrID (ID_ReqConfOrConfID_t ReqConfOrConfID)
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_); Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
/***** Show user's record *****/ /***** Show user's record *****/
Rec_ShowSharedUsrRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Other.UsrDat);
} }
else // User not found else // User not found
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_); Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);

View File

@ -166,13 +166,15 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.63.6 (2016-11-17)" #define Log_PLATFORM_VERSION "SWAD 16.64 (2016-11-17)"
#define CSS_FILE "swad16.60.1.css" #define CSS_FILE "swad16.60.1.css"
#define JS_FILE "swad16.46.1.js" #define JS_FILE "swad16.46.1.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 16.64: Nov 17, 2016 Contextual help on students.
Code refactoring in record cards. (207231 lines)
Version 16.63.6: Nov 16, 2016 Contextual help on email unconfirmed. (207184 lines) Version 16.63.6: Nov 16, 2016 Contextual help on email unconfirmed. (207184 lines)
Version 16.63.5: Nov 16, 2016 Contextual help on edition of countries. (207180 lines) Version 16.63.5: Nov 16, 2016 Contextual help on edition of countries. (207180 lines)
Version 16.63.4: Nov 16, 2016 Contextual help on edition of institutions. (207177 lines) Version 16.63.4: Nov 16, 2016 Contextual help on edition of institutions. (207177 lines)

View File

@ -3112,7 +3112,7 @@ static void Enr_ShowFormToEditOtherUsr (void)
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
/***** User's record *****/ /***** User's record *****/
Rec_ShowSharedUsrRecord (Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR,&Gbl.Usrs.Other.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_OTHER_EXISTING_USR_FORM,&Gbl.Usrs.Other.UsrDat);
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -401,7 +401,7 @@ struct Globals
struct struct
{ {
struct UsrData *UsrDat; struct UsrData *UsrDat;
Rec_RecordViewType_t TypeOfView; Rec_SharedRecordViewType_t TypeOfView;
} Record; } Record;
struct struct
{ {

View File

@ -93,6 +93,14 @@ const char *Hlp_ASSESSMENT_Marks = WIKI "ASSESSMENT.Marks";
const char *Hlp_USERS_Groups = WIKI "USERS.Groups"; const char *Hlp_USERS_Groups = WIKI "USERS.Groups";
const char *Hlp_USERS_Students = WIKI "USERS.Students";
const char *Hlp_USERS_Students_shared_record_card = WIKI "USERS.Students#shared-record-card";
const char *Hlp_USERS_Students_course_record_card = WIKI "USERS.Students#course-record-card";
const char *Hlp_USERS_Teachers = WIKI "USERS.Teachers";
const char *Hlp_USERS_Others_guests = WIKI "USERS.Others#guests";
const char *Hlp_USERS_Attendance = WIKI "USERS.Attendance"; const char *Hlp_USERS_Attendance = WIKI "USERS.Attendance";
/***** SOCIAL tab *****/ /***** SOCIAL tab *****/

View File

@ -1127,7 +1127,7 @@ void Mai_ShowFormOthEmail (void)
Lay_StartRoundFrame (NULL,Txt_Email,NULL,NULL); Lay_StartRoundFrame (NULL,Txt_Email,NULL,NULL);
/***** Show user's record *****/ /***** Show user's record *****/
Rec_ShowSharedUsrRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Other.UsrDat);
/***** Form with the user's email *****/ /***** Form with the user's email *****/
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\" style=\"margin:0 auto;\">"); fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\" style=\"margin:0 auto;\">");
@ -1324,7 +1324,7 @@ void Mai_RemoveOtherUsrEmail (void)
Mai_RemoveEmail (&Gbl.Usrs.Other.UsrDat); Mai_RemoveEmail (&Gbl.Usrs.Other.UsrDat);
/***** Show user's record *****/ /***** Show user's record *****/
Rec_ShowSharedUsrRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Other.UsrDat);
} }
else // User not found else // User not found
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_); Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
@ -1403,7 +1403,7 @@ void Mai_NewOtherUsrEmail (void)
(Gbl.Usrs.Other.UsrDat.UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod)); // It's me? (Gbl.Usrs.Other.UsrDat.UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod)); // It's me?
/***** Show user's record *****/ /***** Show user's record *****/
Rec_ShowSharedUsrRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Other.UsrDat);
} }
else // User not found else // User not found
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_); Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);

View File

@ -809,7 +809,7 @@ void Pwd_ShowFormOthPwd (void)
Lay_StartRoundFrame (NULL,Txt_Password,NULL,NULL); Lay_StartRoundFrame (NULL,Txt_Password,NULL,NULL);
/***** Show user's record *****/ /***** Show user's record *****/
Rec_ShowSharedUsrRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Other.UsrDat);
/***** Form to change password *****/ /***** Form to change password *****/
/* Start form */ /* Start form */

View File

@ -283,7 +283,7 @@ bool Prf_ShowUserProfile (struct UsrData *UsrDat)
} }
/***** Common record *****/ /***** Common record *****/
Rec_ShowSharedUsrRecord (Rec_RECORD_PUBLIC,UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_PUBLIC,UsrDat);
/***** Show details of user's profile *****/ /***** Show details of user's profile *****/
Prf_ShowDetailsUserProfile (UsrDat); Prf_ShowDetailsUserProfile (UsrDat);

View File

@ -72,15 +72,16 @@ static void Rec_WriteHeadingRecordFields (void);
static void Rec_GetFieldByCod (long FieldCod,char *Name,unsigned *NumLines,Rec_VisibilityRecordFields_t *Visibility); static void Rec_GetFieldByCod (long FieldCod,char *Name,unsigned *NumLines,Rec_VisibilityRecordFields_t *Visibility);
static void Rec_ShowRecordOneStdCrs (void); static void Rec_ShowRecordOneStdCrs (void);
static void Rec_ListRecordsStds (Rec_RecordViewType_t TypeOfView); static void Rec_ListRecordsStds (Rec_SharedRecordViewType_t ShaTypeOfView,
Rec_CourseRecordViewType_t CrsTypeOfView);
static void Rec_ShowRecordOneTchCrs (void); static void Rec_ShowRecordOneTchCrs (void);
static void Rec_ShowLinkToPrintPreviewOfRecords (void); static void Rec_ShowLinkToPrintPreviewOfRecords (void);
static void Rec_GetParamRecordsPerPage (void); static void Rec_GetParamRecordsPerPage (void);
static void Rec_WriteFormShowOfficeHours (bool ShowOfficeHours,const char *ListUsrCods); static void Rec_WriteFormShowOfficeHours (bool ShowOfficeHours,const char *ListUsrCods);
static bool Rec_GetParamShowOfficeHours (void); static bool Rec_GetParamShowOfficeHours (void);
static void Rec_ShowCrsRecord (Rec_RecordViewType_t TypeOfView,struct UsrData *UsrDat, static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
const char *Anchor); struct UsrData *UsrDat,const char *Anchor);
static void Rec_ShowMyCrsRecordUpdated (void); static void Rec_ShowMyCrsRecordUpdated (void);
static void Rec_PutIconsCommands (void); static void Rec_PutIconsCommands (void);
@ -94,25 +95,25 @@ static void Rec_ShowFullName (struct UsrData *UsrDat);
static void Rec_ShowNickname (struct UsrData *UsrDat,bool PutFormLinks); static void Rec_ShowNickname (struct UsrData *UsrDat,bool PutFormLinks);
static void Rec_ShowCountryInHead (struct UsrData *UsrDat,bool ShowData); static void Rec_ShowCountryInHead (struct UsrData *UsrDat,bool ShowData);
static void Rec_ShowWebsAndSocialNets (struct UsrData *UsrDat, static void Rec_ShowWebsAndSocialNets (struct UsrData *UsrDat,
Rec_RecordViewType_t TypeOfView); Rec_SharedRecordViewType_t TypeOfView);
static void Rec_ShowEmail (struct UsrData *UsrDat,const char *ClassForm); static void Rec_ShowEmail (struct UsrData *UsrDat,const char *ClassForm);
static void Rec_ShowUsrIDs (struct UsrData *UsrDat,const char *ClassForm); static void Rec_ShowUsrIDs (struct UsrData *UsrDat,const char *ClassForm);
static void Rec_ShowRole (struct UsrData *UsrDat, static void Rec_ShowRole (struct UsrData *UsrDat,
Rec_RecordViewType_t TypeOfView, Rec_SharedRecordViewType_t TypeOfView,
const char *ClassForm); const char *ClassForm);
static void Rec_ShowSurname1 (struct UsrData *UsrDat, static void Rec_ShowSurname1 (struct UsrData *UsrDat,
Rec_RecordViewType_t TypeOfView, Rec_SharedRecordViewType_t TypeOfView,
bool DataForm, bool DataForm,
const char *ClassForm); const char *ClassForm);
static void Rec_ShowSurname2 (struct UsrData *UsrDat, static void Rec_ShowSurname2 (struct UsrData *UsrDat,
bool DataForm, bool DataForm,
const char *ClassForm); const char *ClassForm);
static void Rec_ShowFirstName (struct UsrData *UsrDat, static void Rec_ShowFirstName (struct UsrData *UsrDat,
Rec_RecordViewType_t TypeOfView, Rec_SharedRecordViewType_t TypeOfView,
bool DataForm, bool DataForm,
const char *ClassForm); const char *ClassForm);
static void Rec_ShowCountry (struct UsrData *UsrDat, static void Rec_ShowCountry (struct UsrData *UsrDat,
Rec_RecordViewType_t TypeOfView, Rec_SharedRecordViewType_t TypeOfView,
const char *ClassForm); const char *ClassForm);
static void Rec_ShowOriginPlace (struct UsrData *UsrDat, static void Rec_ShowOriginPlace (struct UsrData *UsrDat,
bool ShowData,bool DataForm, bool ShowData,bool DataForm,
@ -939,8 +940,8 @@ void Rec_ListRecordsGsts (void)
extern const char *Txt_You_must_select_one_ore_more_users; extern const char *Txt_You_must_select_one_ore_more_users;
unsigned NumUsrs = 0; unsigned NumUsrs = 0;
const char *Ptr; const char *Ptr;
Rec_RecordViewType_t TypeOfView = (Gbl.Action.Act == ActSeeRecSevGst) ? Rec_RECORD_LIST : Rec_SharedRecordViewType_t TypeOfView = (Gbl.Action.Act == ActSeeRecSevGst) ? Rec_SHA_RECORD_LIST :
Rec_RECORD_PRINT; Rec_SHA_RECORD_PRINT;
struct UsrData UsrDat; struct UsrData UsrDat;
/***** Assign users listing type depending on current action *****/ /***** Assign users listing type depending on current action *****/
@ -1059,7 +1060,7 @@ static void Rec_ShowRecordOneStdCrs (void)
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
/***** Common record *****/ /***** Common record *****/
Rec_ShowSharedUsrRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Other.UsrDat);
/***** Record of the student in the course *****/ /***** Record of the student in the course *****/
/* Get list of fields of records in current course */ /* Get list of fields of records in current course */
@ -1069,10 +1070,10 @@ static void Rec_ShowRecordOneStdCrs (void)
{ {
if (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER || if (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER ||
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM) Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
Rec_ShowCrsRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat,NULL); Rec_ShowCrsRecord (Rec_CRS_RECORD_LIST,&Gbl.Usrs.Other.UsrDat,NULL);
else if (Gbl.Usrs.Me.LoggedRole == Rol_STUDENT && else if (Gbl.Usrs.Me.LoggedRole == Rol_STUDENT &&
Gbl.Usrs.Me.UsrDat.UsrCod == Gbl.Usrs.Other.UsrDat.UsrCod) // It's me Gbl.Usrs.Me.UsrDat.UsrCod == Gbl.Usrs.Other.UsrDat.UsrCod) // It's me
Rec_ShowCrsRecord (Rec_FORM_MY_COURSE_RECORD_AS_STUDENT,&Gbl.Usrs.Other.UsrDat,NULL); Rec_ShowCrsRecord (Rec_CRS_MY_RECORD_AS_STUDENT_FORM,&Gbl.Usrs.Other.UsrDat,NULL);
} }
/* Free list of fields of records */ /* Free list of fields of records */
@ -1085,15 +1086,18 @@ static void Rec_ShowRecordOneStdCrs (void)
void Rec_ListRecordsStdsForEdit (void) void Rec_ListRecordsStdsForEdit (void)
{ {
Rec_ListRecordsStds (Rec_RECORD_LIST); Rec_ListRecordsStds (Rec_SHA_RECORD_LIST,
Rec_CRS_RECORD_LIST);
} }
void Rec_ListRecordsStdsForPrint (void) void Rec_ListRecordsStdsForPrint (void)
{ {
Rec_ListRecordsStds (Rec_RECORD_PRINT); Rec_ListRecordsStds (Rec_SHA_RECORD_PRINT,
Rec_CRS_RECORD_PRINT);
} }
static void Rec_ListRecordsStds (Rec_RecordViewType_t TypeOfView) static void Rec_ListRecordsStds (Rec_SharedRecordViewType_t ShaTypeOfView,
Rec_CourseRecordViewType_t CrsTypeOfView)
{ {
extern const char *Txt_You_must_select_one_ore_more_students; extern const char *Txt_You_must_select_one_ore_more_students;
unsigned NumUsr = 0; unsigned NumUsr = 0;
@ -1105,7 +1109,7 @@ static void Rec_ListRecordsStds (Rec_RecordViewType_t TypeOfView)
Gbl.Usrs.Listing.RecsUsrs = Rec_RECORD_USERS_STUDENTS; Gbl.Usrs.Listing.RecsUsrs = Rec_RECORD_USERS_STUDENTS;
/***** Get parameter with number of user records per page (only for printing) *****/ /***** Get parameter with number of user records per page (only for printing) *****/
if (TypeOfView == Rec_RECORD_PRINT) if (ShaTypeOfView == Rec_SHA_RECORD_PRINT)
Rec_GetParamRecordsPerPage (); Rec_GetParamRecordsPerPage ();
/***** Get list of selected students *****/ /***** Get list of selected students *****/
@ -1122,7 +1126,7 @@ static void Rec_ListRecordsStds (Rec_RecordViewType_t TypeOfView)
/***** Get list of fields of records in current course *****/ /***** Get list of fields of records in current course *****/
Rec_GetListRecordFieldsInCurrentCrs (); Rec_GetListRecordFieldsInCurrentCrs ();
if (TypeOfView == Rec_RECORD_LIST) if (ShaTypeOfView == Rec_SHA_RECORD_LIST)
{ {
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">"); fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
@ -1171,7 +1175,7 @@ static void Rec_ListRecordsStds (Rec_RecordViewType_t TypeOfView)
fprintf (Gbl.F.Out,"\">"); fprintf (Gbl.F.Out,"\">");
/* Common record */ /* Common record */
Rec_ShowSharedUsrRecord (TypeOfView,&UsrDat); Rec_ShowSharedUsrRecord (ShaTypeOfView,&UsrDat);
/* Record of the student in the course */ /* Record of the student in the course */
if (Gbl.CurrentCrs.Records.LstFields.Num) // There are fields in the record if (Gbl.CurrentCrs.Records.LstFields.Num) // There are fields in the record
@ -1179,7 +1183,7 @@ static void Rec_ListRecordsStds (Rec_RecordViewType_t TypeOfView)
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM || Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM ||
(Gbl.Usrs.Me.LoggedRole == Rol_STUDENT && // I am student in this course... (Gbl.Usrs.Me.LoggedRole == Rol_STUDENT && // I am student in this course...
Gbl.Usrs.Me.UsrDat.UsrCod == UsrDat.UsrCod)) // ...and it's me Gbl.Usrs.Me.UsrDat.UsrCod == UsrDat.UsrCod)) // ...and it's me
Rec_ShowCrsRecord (TypeOfView,&UsrDat,Anchor); Rec_ShowCrsRecord (CrsTypeOfView,&UsrDat,Anchor);
fprintf (Gbl.F.Out,"</section>"); fprintf (Gbl.F.Out,"</section>");
@ -1191,8 +1195,7 @@ static void Rec_ListRecordsStds (Rec_RecordViewType_t TypeOfView)
Usr_UsrDataDestructor (&UsrDat); Usr_UsrDataDestructor (&UsrDat);
/***** Free list of fields of records *****/ /***** Free list of fields of records *****/
// if (Gbl.Usrs.Listing.RecsUsrs == Rec_RECORD_USERS_STUDENTS) Rec_FreeListFields ();
Rec_FreeListFields ();
/***** Free memory used by list of selected users' codes *****/ /***** Free memory used by list of selected users' codes *****/
Usr_FreeListsSelectedUsrsCods (); Usr_FreeListsSelectedUsrsCods ();
@ -1255,7 +1258,7 @@ static void Rec_ShowRecordOneTchCrs (void)
" style=\"margin-bottom:12px;\">"); " style=\"margin-bottom:12px;\">");
/* Common record */ /* Common record */
Rec_ShowSharedUsrRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Other.UsrDat);
/* Office hours */ /* Office hours */
Gbl.TimeTable.Type = TT_TUTOR_TIMETABLE; Gbl.TimeTable.Type = TT_TUTOR_TIMETABLE;
@ -1277,8 +1280,8 @@ void Rec_ListRecordsTchs (void)
extern const char *Txt_TIMETABLE_TYPES[TT_NUM_TIMETABLE_TYPES]; extern const char *Txt_TIMETABLE_TYPES[TT_NUM_TIMETABLE_TYPES];
unsigned NumUsrs = 0; unsigned NumUsrs = 0;
const char *Ptr; const char *Ptr;
Rec_RecordViewType_t TypeOfView = (Gbl.Action.Act == ActSeeRecSevTch) ? Rec_RECORD_LIST : Rec_SharedRecordViewType_t TypeOfView = (Gbl.Action.Act == ActSeeRecSevTch) ? Rec_SHA_RECORD_LIST :
Rec_RECORD_PRINT; Rec_SHA_RECORD_PRINT;
struct UsrData UsrDat; struct UsrData UsrDat;
bool ShowOfficeHours; bool ShowOfficeHours;
char Width[10+2+1]; char Width[10+2+1];
@ -1540,13 +1543,21 @@ void Rec_UpdateAndShowOtherCrsRecord (void)
/*****************************************************************************/ /*****************************************************************************/
// Show form or only data depending on TypeOfView // Show form or only data depending on TypeOfView
static void Rec_ShowCrsRecord (Rec_RecordViewType_t TypeOfView,struct UsrData *UsrDat, static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
const char *Anchor) struct UsrData *UsrDat,const char *Anchor)
{ {
extern const char *Hlp_USERS_Students_course_record_card;
extern const char *The_ClassForm[The_NUM_THEMES]; extern const char *The_ClassForm[The_NUM_THEMES];
extern const char *Txt_You_dont_have_permission_to_perform_this_action; extern const char *Txt_You_dont_have_permission_to_perform_this_action;
extern const char *Txt_RECORD_FIELD_VISIBILITY_RECORD[Rec_NUM_TYPES_VISIBILITY]; extern const char *Txt_RECORD_FIELD_VISIBILITY_RECORD[Rec_NUM_TYPES_VISIBILITY];
extern const char *Txt_Save; extern const char *Txt_Save;
const char *Rec_RecordHelp[Rec_COURSE_NUM_VIEW_TYPES] =
{
Hlp_USERS_Students_course_record_card, // Rec_CRS_MY_RECORD_AS_STUDENT_FORM
Hlp_USERS_Students_course_record_card, // Rec_CRS_MY_RECORD_AS_STUDENT_CHECK
Hlp_USERS_Students_course_record_card, // Rec_CRS_RECORD_LIST
NULL, // Rec_CRS_RECORD_PRINT
};
char StrRecordWidth[10+1]; char StrRecordWidth[10+1];
unsigned Col1Width = 210; unsigned Col1Width = 210;
unsigned Col2Width; unsigned Col2Width;
@ -1566,15 +1577,15 @@ static void Rec_ShowCrsRecord (Rec_RecordViewType_t TypeOfView,struct UsrData *U
if (ItsMe) // It's me if (ItsMe) // It's me
switch (TypeOfView) switch (TypeOfView)
{ {
case Rec_RECORD_LIST: case Rec_CRS_RECORD_LIST:
// When listing several records, // When listing several records,
// only my record in course in allowed // only my record in course in allowed
// ==> show form to edit my record as student // ==> show form to edit my record as student
TypeOfView = Rec_FORM_MY_COURSE_RECORD_AS_STUDENT; TypeOfView = Rec_CRS_MY_RECORD_AS_STUDENT_FORM;
break; break;
case Rec_FORM_MY_COURSE_RECORD_AS_STUDENT: case Rec_CRS_MY_RECORD_AS_STUDENT_FORM:
case Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT: case Rec_CRS_MY_RECORD_AS_STUDENT_CHECK:
case Rec_RECORD_PRINT: case Rec_CRS_RECORD_PRINT:
break; break;
default: default:
Lay_ShowErrorAndExit (Txt_You_dont_have_permission_to_perform_this_action); Lay_ShowErrorAndExit (Txt_You_dont_have_permission_to_perform_this_action);
@ -1586,7 +1597,7 @@ static void Rec_ShowCrsRecord (Rec_RecordViewType_t TypeOfView,struct UsrData *U
switch (TypeOfView) switch (TypeOfView)
{ {
case Rec_FORM_MY_COURSE_RECORD_AS_STUDENT: case Rec_CRS_MY_RECORD_AS_STUDENT_FORM:
for (NumField = 0; for (NumField = 0;
NumField < Gbl.CurrentCrs.Records.LstFields.Num; NumField < Gbl.CurrentCrs.Records.LstFields.Num;
NumField++) NumField++)
@ -1597,15 +1608,15 @@ static void Rec_ShowCrsRecord (Rec_RecordViewType_t TypeOfView,struct UsrData *U
break; break;
} }
break; break;
case Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT: case Rec_CRS_MY_RECORD_AS_STUDENT_CHECK:
break; break;
case Rec_RECORD_LIST: case Rec_CRS_RECORD_LIST:
DataForm = true; DataForm = true;
Act_FormStartAnchor (ActRcvRecOthUsr,Anchor); Act_FormStartAnchor (ActRcvRecOthUsr,Anchor);
Usr_PutHiddenParUsrCodAll (ActRcvRecOthUsr,Gbl.Usrs.Select.All); Usr_PutHiddenParUsrCodAll (ActRcvRecOthUsr,Gbl.Usrs.Select.All);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
break; break;
case Rec_RECORD_PRINT: case Rec_CRS_RECORD_PRINT:
break; break;
default: default:
break; break;
@ -1615,7 +1626,8 @@ static void Rec_ShowCrsRecord (Rec_RecordViewType_t TypeOfView,struct UsrData *U
/***** Start frame *****/ /***** Start frame *****/
sprintf (StrRecordWidth,"%upx",Rec_RECORD_WIDTH); sprintf (StrRecordWidth,"%upx",Rec_RECORD_WIDTH);
Lay_StartRoundFrameTable (StrRecordWidth,NULL,NULL,NULL,2); Lay_StartRoundFrameTable (StrRecordWidth,NULL,
NULL,Rec_RecordHelp[TypeOfView],2);
/***** Header *****/ /***** Header *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
@ -1642,15 +1654,15 @@ static void Rec_ShowCrsRecord (Rec_RecordViewType_t TypeOfView,struct UsrData *U
NumField < Gbl.CurrentCrs.Records.LstFields.Num; NumField < Gbl.CurrentCrs.Records.LstFields.Num;
NumField++, Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd) NumField++, Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd)
{ {
ShowField = !(TypeOfView == Rec_FORM_MY_COURSE_RECORD_AS_STUDENT || ShowField = !(TypeOfView == Rec_CRS_MY_RECORD_AS_STUDENT_FORM ||
TypeOfView == Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT) || TypeOfView == Rec_CRS_MY_RECORD_AS_STUDENT_CHECK) ||
Gbl.CurrentCrs.Records.LstFields.Lst[NumField].Visibility != Rec_HIDDEN_FIELD; Gbl.CurrentCrs.Records.LstFields.Lst[NumField].Visibility != Rec_HIDDEN_FIELD;
// If the field must be shown... // If the field must be shown...
if (ShowField) if (ShowField)
{ {
ICanEdit = TypeOfView == Rec_RECORD_LIST || ICanEdit = TypeOfView == Rec_CRS_RECORD_LIST ||
(TypeOfView == Rec_FORM_MY_COURSE_RECORD_AS_STUDENT && (TypeOfView == Rec_CRS_MY_RECORD_AS_STUDENT_FORM &&
Gbl.CurrentCrs.Records.LstFields.Lst[NumField].Visibility == Rec_EDITABLE_FIELD); Gbl.CurrentCrs.Records.LstFields.Lst[NumField].Visibility == Rec_EDITABLE_FIELD);
/* Name of the field */ /* Name of the field */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
@ -1661,7 +1673,7 @@ static void Rec_ShowCrsRecord (Rec_RecordViewType_t TypeOfView,struct UsrData *U
"REC_DAT_SMALL", "REC_DAT_SMALL",
Gbl.RowEvenOdd,Col1Width, Gbl.RowEvenOdd,Col1Width,
Gbl.CurrentCrs.Records.LstFields.Lst[NumField].Name); Gbl.CurrentCrs.Records.LstFields.Lst[NumField].Name);
if (TypeOfView == Rec_RECORD_LIST) if (TypeOfView == Rec_CRS_RECORD_LIST)
fprintf (Gbl.F.Out,"<span class=\"DAT_SMALL\"> (%s)</span>", fprintf (Gbl.F.Out,"<span class=\"DAT_SMALL\"> (%s)</span>",
Txt_RECORD_FIELD_VISIBILITY_RECORD[Gbl.CurrentCrs.Records.LstFields.Lst[NumField].Visibility]); Txt_RECORD_FIELD_VISIBILITY_RECORD[Gbl.CurrentCrs.Records.LstFields.Lst[NumField].Visibility]);
fprintf (Gbl.F.Out,"</td>"); fprintf (Gbl.F.Out,"</td>");
@ -1862,10 +1874,10 @@ static void Rec_ShowMyCrsRecordUpdated (void)
Lay_ShowAlert (Lay_SUCCESS,Txt_Your_record_card_in_this_course_has_been_updated); Lay_ShowAlert (Lay_SUCCESS,Txt_Your_record_card_in_this_course_has_been_updated);
/***** Common record *****/ /***** Common record *****/
Rec_ShowSharedUsrRecord (Rec_RECORD_LIST,&Gbl.Usrs.Me.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Me.UsrDat);
/***** Show updated user's record *****/ /***** Show updated user's record *****/
Rec_ShowCrsRecord (Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT,&Gbl.Usrs.Me.UsrDat,NULL); Rec_ShowCrsRecord (Rec_CRS_MY_RECORD_AS_STUDENT_CHECK,&Gbl.Usrs.Me.UsrDat,NULL);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1917,7 +1929,7 @@ void Rec_ShowFormSignUpWithMyCommonRecord (void)
/***** Show the form *****/ /***** Show the form *****/
Act_FormStart (ActSignUp); Act_FormStart (ActSignUp);
Rec_ShowSharedUsrRecord (Rec_FORM_SIGN_UP,&Gbl.Usrs.Me.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_SIGN_UP_FORM,&Gbl.Usrs.Me.UsrDat);
Lay_PutConfirmButton (Txt_Sign_up); Lay_PutConfirmButton (Txt_Sign_up);
Act_FormEnd (); Act_FormEnd ();
} }
@ -1950,7 +1962,7 @@ void Rec_ShowFormMyCommRecord (void)
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
/***** My record *****/ /***** My record *****/
Rec_ShowSharedUsrRecord (Rec_FORM_MY_COMMON_RECORD,&Gbl.Usrs.Me.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_MY_RECORD_FORM,&Gbl.Usrs.Me.UsrDat);
Rec_WriteLinkToDataProtectionClause (); Rec_WriteLinkToDataProtectionClause ();
} }
@ -1961,7 +1973,7 @@ void Rec_ShowFormMyCommRecord (void)
void Rec_ShowFormOtherNewCommonRecord (struct UsrData *UsrDat) void Rec_ShowFormOtherNewCommonRecord (struct UsrData *UsrDat)
{ {
/***** Show the form *****/ /***** Show the form *****/
Rec_ShowSharedUsrRecord (Rec_FORM_NEW_RECORD_OTHER_NEW_USR,UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_OTHER_NEW_USR_FORM,UsrDat);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1976,7 +1988,7 @@ void Rec_ShowMyCommonRecordUpd (void)
Lay_ShowAlert (Lay_SUCCESS,Txt_Your_personal_data_have_been_updated); Lay_ShowAlert (Lay_SUCCESS,Txt_Your_personal_data_have_been_updated);
/***** Show my record for checking *****/ /***** Show my record for checking *****/
Rec_ShowSharedUsrRecord (Rec_MY_COMMON_RECORD_CHECK,&Gbl.Usrs.Me.UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_MY_RECORD_CHECK,&Gbl.Usrs.Me.UsrDat);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1993,7 +2005,7 @@ void Rec_ShowCommonRecordUnmodifiable (struct UsrData *UsrDat)
/***** Show user's record *****/ /***** Show user's record *****/
fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\">"); fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\">");
Rec_ShowSharedUsrRecord (Rec_CHECK_OTHER_USR_COMMON_RECORD,UsrDat); Rec_ShowSharedUsrRecord (Rec_SHA_OTHER_USR_CHECK,UsrDat);
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
} }
@ -2002,68 +2014,92 @@ void Rec_ShowCommonRecordUnmodifiable (struct UsrData *UsrDat)
/*****************************************************************************/ /*****************************************************************************/
// Show form or only data depending on TypeOfView // Show form or only data depending on TypeOfView
void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
struct UsrData *UsrDat) struct UsrData *UsrDat)
{ {
extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS]; extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
extern const char *Hlp_PROFILE_Record; extern const char *Hlp_PROFILE_Record;
extern const char *Hlp_USERS_Students_shared_record_card;
extern const char *The_ClassForm[The_NUM_THEMES]; extern const char *The_ClassForm[The_NUM_THEMES];
extern const char *Txt_Save_changes; extern const char *Txt_Save_changes;
extern const char *Txt_Register; extern const char *Txt_Register;
extern const char *Txt_Confirm; extern const char *Txt_Confirm;
const char *Rec_RecordHelp[Rec_SHARED_NUM_VIEW_TYPES] =
{
NULL, // Rec_SHA_SIGN_UP_FORM
Hlp_PROFILE_Record, // Rec_SHA_MY_RECORD_FORM
Hlp_PROFILE_Record, // Rec_SHA_MY_RECORD_CHECK
NULL, // Rec_SHA_OTHER_EXISTING_USR_FORM
NULL, // Rec_SHA_OTHER_NEW_USR_FORM
NULL, // Rec_SHA_OTHER_USR_CHECK
NULL, // Rec_SHA_RECORD_LIST
NULL, // Rec_SHA_RECORD_PRINT
NULL, // Rec_SHA_RECORD_PUBLIC
};
const char *Rec_RecordListHelp[Rol_NUM_ROLES] =
{
NULL, // Rol_UNKNOWN
NULL, // Rol__GUEST_
NULL, // Rol_VISITOR
Hlp_USERS_Students_shared_record_card, // Rol_STUDENT
NULL, // Rol_TEACHER
NULL, // Rol_DEG_ADM
NULL, // Rol_CTR_ADM
NULL, // Rol_INS_ADM
NULL, // Rol_SYS_ADM
};
char StrRecordWidth[10+1]; char StrRecordWidth[10+1];
const char *ClassForm = "REC_DAT"; const char *ClassForm = "REC_DAT";
bool ItsMe = (Gbl.Usrs.Me.UsrDat.UsrCod == UsrDat->UsrCod); bool ItsMe = (Gbl.Usrs.Me.UsrDat.UsrCod == UsrDat->UsrCod);
bool IAmLoggedAsTeacher = (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER); // My current role is teacher bool IAmLoggedAsTeacher = (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER); // My current role is teacher
bool IAmLoggedAsSysAdm = (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM); // My current role is superuser bool IAmLoggedAsSysAdm = (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM); // My current role is superuser
bool CountryForm = (TypeOfView == Rec_FORM_MY_COMMON_RECORD); bool CountryForm = (TypeOfView == Rec_SHA_MY_RECORD_FORM);
bool DataForm = (TypeOfView == Rec_FORM_MY_COMMON_RECORD || bool DataForm = (TypeOfView == Rec_SHA_MY_RECORD_FORM ||
TypeOfView == Rec_FORM_NEW_RECORD_OTHER_NEW_USR || TypeOfView == Rec_SHA_OTHER_NEW_USR_FORM ||
(TypeOfView == Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR && (TypeOfView == Rec_SHA_OTHER_EXISTING_USR_FORM &&
Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM)); Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM));
bool PutFormLinks; // Put links (forms) inside record card bool PutFormLinks; // Put links (forms) inside record card
bool ShowData = (ItsMe || bool ShowData = (ItsMe ||
Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM || Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM ||
UsrDat->Accepted); UsrDat->Accepted);
bool ShowIDRows = (TypeOfView != Rec_RECORD_PUBLIC); bool ShowIDRows = (TypeOfView != Rec_SHA_RECORD_PUBLIC);
bool ShowAddressRows = (TypeOfView == Rec_FORM_MY_COMMON_RECORD || bool ShowAddressRows = (TypeOfView == Rec_SHA_MY_RECORD_FORM ||
TypeOfView == Rec_MY_COMMON_RECORD_CHECK || TypeOfView == Rec_SHA_MY_RECORD_CHECK ||
TypeOfView == Rec_FORM_MY_COURSE_RECORD_AS_STUDENT || ((TypeOfView == Rec_SHA_RECORD_LIST ||
TypeOfView == Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT || TypeOfView == Rec_SHA_RECORD_PRINT) &&
((TypeOfView == Rec_RECORD_LIST ||
TypeOfView == Rec_RECORD_PRINT) &&
(IAmLoggedAsTeacher || IAmLoggedAsSysAdm) && (IAmLoggedAsTeacher || IAmLoggedAsSysAdm) &&
UsrDat->RoleInCurrentCrsDB == Rol_STUDENT)); UsrDat->RoleInCurrentCrsDB == Rol_STUDENT));
bool ShowTeacherRows = (((TypeOfView == Rec_FORM_MY_COMMON_RECORD || bool ShowTeacherRows = (((TypeOfView == Rec_SHA_MY_RECORD_FORM ||
TypeOfView == Rec_MY_COMMON_RECORD_CHECK || TypeOfView == Rec_SHA_MY_RECORD_CHECK ||
TypeOfView == Rec_FORM_MY_COURSE_RECORD_AS_STUDENT ||
TypeOfView == Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT) &&
(UsrDat->Roles & (1 << Rol_TEACHER))) || // He/she (me, really) is a teacher in any course (UsrDat->Roles & (1 << Rol_TEACHER))) || // He/she (me, really) is a teacher in any course
((TypeOfView == Rec_RECORD_LIST || ((TypeOfView == Rec_SHA_RECORD_LIST ||
TypeOfView == Rec_RECORD_PRINT) && TypeOfView == Rec_SHA_RECORD_PRINT) &&
UsrDat->RoleInCurrentCrsDB == Rol_TEACHER)); // He/she is a teacher in the current course UsrDat->RoleInCurrentCrsDB == Rol_TEACHER))); // He/she is a teacher in the current course
struct Instit Ins; struct Instit Ins;
/***** Initializations *****/ /***** Initializations *****/
switch (TypeOfView) switch (TypeOfView)
{ {
case Rec_FORM_SIGN_UP: case Rec_SHA_SIGN_UP_FORM:
case Rec_FORM_MY_COMMON_RECORD: case Rec_SHA_MY_RECORD_FORM:
case Rec_FORM_MY_COURSE_RECORD_AS_STUDENT: case Rec_SHA_OTHER_NEW_USR_FORM:
case Rec_FORM_NEW_RECORD_OTHER_NEW_USR: case Rec_SHA_OTHER_EXISTING_USR_FORM:
case Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR:
ClassForm = The_ClassForm[Gbl.Prefs.Theme]; ClassForm = The_ClassForm[Gbl.Prefs.Theme];
break; break;
case Rec_MY_COMMON_RECORD_CHECK: case Rec_SHA_MY_RECORD_CHECK:
case Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT: case Rec_SHA_OTHER_USR_CHECK:
case Rec_CHECK_OTHER_USR_COMMON_RECORD: case Rec_SHA_RECORD_LIST:
case Rec_RECORD_LIST: case Rec_SHA_RECORD_PUBLIC:
case Rec_RECORD_PUBLIC: case Rec_SHA_RECORD_PRINT:
case Rec_RECORD_PRINT:
ClassForm = "REC_DAT"; ClassForm = "REC_DAT";
break; break;
} }
Rec_RecordHelp[Rec_SHA_RECORD_LIST] = Rec_RecordListHelp[UsrDat->RoleInCurrentCrsDB];
PutFormLinks = !Gbl.Form.Inside && // Only if not inside another form PutFormLinks = !Gbl.Form.Inside && // Only if not inside another form
Act_Actions[Gbl.Action.Act].BrowserWindow == Act_THIS_WINDOW; // Only in main window Act_Actions[Gbl.Action.Act].BrowserWindow == Act_THIS_WINDOW; // Only in main window
@ -2076,9 +2112,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
Gbl.Record.UsrDat = UsrDat; Gbl.Record.UsrDat = UsrDat;
Gbl.Record.TypeOfView = TypeOfView; Gbl.Record.TypeOfView = TypeOfView;
Lay_StartRoundFrameTable (StrRecordWidth,NULL, Lay_StartRoundFrameTable (StrRecordWidth,NULL,
Rec_PutIconsCommands, Rec_PutIconsCommands,Rec_RecordHelp[TypeOfView],
TypeOfView == Rec_FORM_MY_COMMON_RECORD ? Hlp_PROFILE_Record :
NULL,
2); 2);
/***** Institution and user's photo *****/ /***** Institution and user's photo *****/
@ -2120,16 +2154,16 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/***** Start form *****/ /***** Start form *****/
switch (TypeOfView) switch (TypeOfView)
{ {
case Rec_FORM_MY_COMMON_RECORD: case Rec_SHA_MY_RECORD_FORM:
Act_FormStart (ActChgMyData); Act_FormStart (ActChgMyData);
break; break;
case Rec_FORM_NEW_RECORD_OTHER_NEW_USR: case Rec_SHA_OTHER_NEW_USR_FORM:
Act_FormStart ( Gbl.Action.Act == ActReqMdfStd ? ActCreStd : Act_FormStart ( Gbl.Action.Act == ActReqMdfStd ? ActCreStd :
(Gbl.Action.Act == ActReqMdfTch ? ActCreTch : (Gbl.Action.Act == ActReqMdfTch ? ActCreTch :
ActCreOth)); ActCreOth));
ID_PutParamOtherUsrIDPlain (); // New user ID_PutParamOtherUsrIDPlain (); // New user
break; break;
case Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR: case Rec_SHA_OTHER_EXISTING_USR_FORM:
Act_FormStart ( UsrDat->RoleInCurrentCrsDB == Rol_STUDENT ? ActUpdStd : Act_FormStart ( UsrDat->RoleInCurrentCrsDB == Rol_STUDENT ? ActUpdStd :
(UsrDat->RoleInCurrentCrsDB == Rol_TEACHER ? ActUpdTch : (UsrDat->RoleInCurrentCrsDB == Rol_TEACHER ? ActUpdTch :
ActUpdOth)); ActUpdOth));
@ -2203,17 +2237,17 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/***** Button and end form *****/ /***** Button and end form *****/
switch (TypeOfView) switch (TypeOfView)
{ {
case Rec_FORM_MY_COMMON_RECORD: case Rec_SHA_MY_RECORD_FORM:
Lay_PutConfirmButton (Txt_Save_changes); Lay_PutConfirmButton (Txt_Save_changes);
Act_FormEnd (); Act_FormEnd ();
break; break;
case Rec_FORM_NEW_RECORD_OTHER_NEW_USR: case Rec_SHA_OTHER_NEW_USR_FORM:
if (Gbl.CurrentCrs.Grps.NumGrps) // This course has groups? if (Gbl.CurrentCrs.Grps.NumGrps) // This course has groups?
Grp_ShowLstGrpsToChgOtherUsrsGrps (UsrDat->UsrCod); Grp_ShowLstGrpsToChgOtherUsrsGrps (UsrDat->UsrCod);
Lay_PutConfirmButton (Txt_Register); Lay_PutConfirmButton (Txt_Register);
Act_FormEnd (); Act_FormEnd ();
break; break;
case Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR: case Rec_SHA_OTHER_EXISTING_USR_FORM:
/***** Show list of groups to register/remove me/user *****/ /***** Show list of groups to register/remove me/user *****/
if (Gbl.CurrentCrs.Grps.NumGrps) // This course has groups? if (Gbl.CurrentCrs.Grps.NumGrps) // This course has groups?
{ {
@ -2562,10 +2596,10 @@ static void Rec_ShowCountryInHead (struct UsrData *UsrDat,bool ShowData)
/*****************************************************************************/ /*****************************************************************************/
static void Rec_ShowWebsAndSocialNets (struct UsrData *UsrDat, static void Rec_ShowWebsAndSocialNets (struct UsrData *UsrDat,
Rec_RecordViewType_t TypeOfView) Rec_SharedRecordViewType_t TypeOfView)
{ {
fprintf (Gbl.F.Out,"<td class=\"REC_C3_MID CENTER_TOP\">"); fprintf (Gbl.F.Out,"<td class=\"REC_C3_MID CENTER_TOP\">");
if (TypeOfView != Rec_RECORD_PRINT) if (TypeOfView != Rec_SHA_RECORD_PRINT)
Net_ShowWebsAndSocialNets (UsrDat); Net_ShowWebsAndSocialNets (UsrDat);
fprintf (Gbl.F.Out,"</td>"); fprintf (Gbl.F.Out,"</td>");
} }
@ -2625,7 +2659,7 @@ static void Rec_ShowUsrIDs (struct UsrData *UsrDat,const char *ClassForm)
/*****************************************************************************/ /*****************************************************************************/
static void Rec_ShowRole (struct UsrData *UsrDat, static void Rec_ShowRole (struct UsrData *UsrDat,
Rec_RecordViewType_t TypeOfView, Rec_SharedRecordViewType_t TypeOfView,
const char *ClassForm) const char *ClassForm)
{ {
extern const char *Usr_StringsSexDB[Usr_NUM_SEXS]; extern const char *Usr_StringsSexDB[Usr_NUM_SEXS];
@ -2633,10 +2667,10 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
extern const char *Txt_Sex; extern const char *Txt_Sex;
extern const char *Txt_SEX_SINGULAR_Abc[Usr_NUM_SEXS]; extern const char *Txt_SEX_SINGULAR_Abc[Usr_NUM_SEXS];
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
bool RoleForm = (TypeOfView == Rec_FORM_SIGN_UP || bool RoleForm = (TypeOfView == Rec_SHA_SIGN_UP_FORM ||
TypeOfView == Rec_FORM_NEW_RECORD_OTHER_NEW_USR || TypeOfView == Rec_SHA_OTHER_NEW_USR_FORM ||
TypeOfView == Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR); TypeOfView == Rec_SHA_OTHER_EXISTING_USR_FORM);
bool SexForm = (TypeOfView == Rec_FORM_MY_COMMON_RECORD); bool SexForm = (TypeOfView == Rec_SHA_MY_RECORD_FORM);
Rol_Role_t DefaultRoleInCurrentCrs; Rol_Role_t DefaultRoleInCurrentCrs;
Rol_Role_t Role; Rol_Role_t Role;
Usr_Sex_t Sex; Usr_Sex_t Sex;
@ -2650,7 +2684,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
ClassForm,Txt_Role); ClassForm,Txt_Role);
switch (TypeOfView) switch (TypeOfView)
{ {
case Rec_FORM_SIGN_UP: // I want to apply for enrollment case Rec_SHA_SIGN_UP_FORM: // I want to apply for enrollment
DefaultRoleInCurrentCrs = ((UsrDat->Roles & (1 << Rol_TEACHER)) || // I am teacher in other courses DefaultRoleInCurrentCrs = ((UsrDat->Roles & (1 << Rol_TEACHER)) || // I am teacher in other courses
UsrDat->UsrCod == Gbl.CurrentCrs.Crs.RequesterUsrCod) ? // I am the creator of the course UsrDat->UsrCod == Gbl.CurrentCrs.Crs.RequesterUsrCod) ? // I am the creator of the course
Rol_TEACHER : Rol_TEACHER :
@ -2668,7 +2702,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
} }
fprintf (Gbl.F.Out,"</select>"); fprintf (Gbl.F.Out,"</select>");
break; break;
case Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR: // The other user already exists in the platform case Rec_SHA_OTHER_EXISTING_USR_FORM: // The other user already exists in the platform
fprintf (Gbl.F.Out,"<select name=\"Role\">"); fprintf (Gbl.F.Out,"<select name=\"Role\">");
if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected
{ {
@ -2736,7 +2770,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
} }
fprintf (Gbl.F.Out,"</select>"); fprintf (Gbl.F.Out,"</select>");
break; break;
case Rec_FORM_NEW_RECORD_OTHER_NEW_USR: // The other user does not exist in platform case Rec_SHA_OTHER_NEW_USR_FORM: // The other user does not exist in platform
fprintf (Gbl.F.Out,"<select name=\"Role\">"); fprintf (Gbl.F.Out,"<select name=\"Role\">");
if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected
switch (Gbl.Usrs.Me.LoggedRole) switch (Gbl.Usrs.Me.LoggedRole)
@ -2812,10 +2846,10 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
"</td>" "</td>"
"</tr>", "</tr>",
ClassForm, ClassForm,
TypeOfView == Rec_MY_COMMON_RECORD_CHECK ? Txt_Sex : TypeOfView == Rec_SHA_MY_RECORD_CHECK ? Txt_Sex :
Txt_Role, Txt_Role,
TypeOfView == Rec_MY_COMMON_RECORD_CHECK ? Txt_SEX_SINGULAR_Abc[UsrDat->Sex] : TypeOfView == Rec_SHA_MY_RECORD_CHECK ? Txt_SEX_SINGULAR_Abc[UsrDat->Sex] :
Txt_ROLES_SINGUL_Abc[UsrDat->RoleInCurrentCrsDB][UsrDat->Sex]); Txt_ROLES_SINGUL_Abc[UsrDat->RoleInCurrentCrsDB][UsrDat->Sex]);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -2823,7 +2857,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
/*****************************************************************************/ /*****************************************************************************/
static void Rec_ShowSurname1 (struct UsrData *UsrDat, static void Rec_ShowSurname1 (struct UsrData *UsrDat,
Rec_RecordViewType_t TypeOfView, Rec_SharedRecordViewType_t TypeOfView,
bool DataForm, bool DataForm,
const char *ClassForm) const char *ClassForm)
{ {
@ -2833,7 +2867,7 @@ static void Rec_ShowSurname1 (struct UsrData *UsrDat,
"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">" "<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">"
"%s", "%s",
ClassForm,Txt_Surname_1); ClassForm,Txt_Surname_1);
if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) if (TypeOfView == Rec_SHA_MY_RECORD_FORM)
fprintf (Gbl.F.Out,"*"); fprintf (Gbl.F.Out,"*");
fprintf (Gbl.F.Out,":</td>" fprintf (Gbl.F.Out,":</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">"); "<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
@ -2883,7 +2917,7 @@ static void Rec_ShowSurname2 (struct UsrData *UsrDat,
/*****************************************************************************/ /*****************************************************************************/
static void Rec_ShowFirstName (struct UsrData *UsrDat, static void Rec_ShowFirstName (struct UsrData *UsrDat,
Rec_RecordViewType_t TypeOfView, Rec_SharedRecordViewType_t TypeOfView,
bool DataForm, bool DataForm,
const char *ClassForm) const char *ClassForm)
{ {
@ -2893,7 +2927,7 @@ static void Rec_ShowFirstName (struct UsrData *UsrDat,
"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">" "<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">"
"%s", "%s",
ClassForm,Txt_First_name); ClassForm,Txt_First_name);
if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) if (TypeOfView == Rec_SHA_MY_RECORD_FORM)
fprintf (Gbl.F.Out,"*"); fprintf (Gbl.F.Out,"*");
fprintf (Gbl.F.Out,":</td>" fprintf (Gbl.F.Out,":</td>"
"<td colspan=\"2\"" "<td colspan=\"2\""
@ -2915,7 +2949,7 @@ static void Rec_ShowFirstName (struct UsrData *UsrDat,
/*****************************************************************************/ /*****************************************************************************/
static void Rec_ShowCountry (struct UsrData *UsrDat, static void Rec_ShowCountry (struct UsrData *UsrDat,
Rec_RecordViewType_t TypeOfView, Rec_SharedRecordViewType_t TypeOfView,
const char *ClassForm) const char *ClassForm)
{ {
extern const char *Txt_Country; extern const char *Txt_Country;
@ -2933,7 +2967,7 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,
"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">" "<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">"
"%s", "%s",
ClassForm,Txt_Country); ClassForm,Txt_Country);
if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) if (TypeOfView == Rec_SHA_MY_RECORD_FORM)
fprintf (Gbl.F.Out,"*"); fprintf (Gbl.F.Out,"*");
fprintf (Gbl.F.Out,":</td>" fprintf (Gbl.F.Out,":</td>"
"<td colspan=\"2\"" "<td colspan=\"2\""

View File

@ -32,7 +32,7 @@
#include "swad_user.h" #include "swad_user.h"
/*****************************************************************************/ /*****************************************************************************/
/***************************** Public constants ******************************/ /*********************** Public constants and types **************************/
/*****************************************************************************/ /*****************************************************************************/
#define Rec_RECORD_WIDTH 560 #define Rec_RECORD_WIDTH 560
@ -45,24 +45,31 @@
/******************************* Public types ********************************/ /******************************* Public types ********************************/
/*****************************************************************************/ /*****************************************************************************/
#define Rec_SHARED_NUM_VIEW_TYPES 9
typedef enum typedef enum
{ {
Rec_FORM_SIGN_UP, Rec_SHA_SIGN_UP_FORM,
Rec_FORM_MY_COMMON_RECORD, Rec_SHA_MY_RECORD_FORM,
Rec_MY_COMMON_RECORD_CHECK, Rec_SHA_MY_RECORD_CHECK,
Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR, Rec_SHA_OTHER_EXISTING_USR_FORM,
Rec_FORM_NEW_RECORD_OTHER_NEW_USR, Rec_SHA_OTHER_NEW_USR_FORM,
Rec_CHECK_OTHER_USR_COMMON_RECORD, Rec_SHA_OTHER_USR_CHECK,
Rec_FORM_MY_COURSE_RECORD_AS_STUDENT, Rec_SHA_RECORD_LIST,
Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT, Rec_SHA_RECORD_PRINT,
Rec_SHA_RECORD_PUBLIC,
} Rec_SharedRecordViewType_t;
Rec_RECORD_LIST, #define Rec_COURSE_NUM_VIEW_TYPES 4
Rec_RECORD_PRINT, typedef enum
Rec_RECORD_PUBLIC, {
} Rec_RecordViewType_t; Rec_CRS_MY_RECORD_AS_STUDENT_FORM,
Rec_CRS_MY_RECORD_AS_STUDENT_CHECK,
Rec_CRS_RECORD_LIST,
Rec_CRS_RECORD_PRINT,
} Rec_CourseRecordViewType_t;
typedef enum { typedef enum {
Rec_RECORD_USERS_UNKNOWN, Rec_RECORD_USERS_UNKNOWN,
@ -140,7 +147,7 @@ void Rec_ShowFormMyCommRecord (void);
void Rec_ShowFormOtherNewCommonRecord (struct UsrData *UsrDat); void Rec_ShowFormOtherNewCommonRecord (struct UsrData *UsrDat);
void Rec_ShowMyCommonRecordUpd (void); void Rec_ShowMyCommonRecordUpd (void);
void Rec_ShowCommonRecordUnmodifiable (struct UsrData *UsrDat); void Rec_ShowCommonRecordUnmodifiable (struct UsrData *UsrDat);
void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
struct UsrData *UsrDat); struct UsrData *UsrDat);
void Rec_UpdateMyRecord (void); void Rec_UpdateMyRecord (void);

View File

@ -6715,6 +6715,7 @@ static void Usr_PutLinkToSeeGuests (void)
void Usr_SeeGuests (void) void Usr_SeeGuests (void)
{ {
extern const char *Hlp_USERS_Others_guests;
extern const char *The_ClassForm[The_NUM_THEMES]; extern const char *The_ClassForm[The_NUM_THEMES];
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];
extern const char *Txt_Scope; extern const char *Txt_Scope;
@ -6754,7 +6755,7 @@ void Usr_SeeGuests (void)
/***** Start frame *****/ /***** Start frame *****/
Lay_StartRoundFrame (NULL,Txt_ROLES_PLURAL_Abc[Rol__GUEST_][Usr_SEX_UNKNOWN], Lay_StartRoundFrame (NULL,Txt_ROLES_PLURAL_Abc[Rol__GUEST_][Usr_SEX_UNKNOWN],
Usr_PutIconsListGsts,NULL); Usr_PutIconsListGsts,Hlp_USERS_Others_guests);
/***** Form to select range of guests *****/ /***** Form to select range of guests *****/
switch (Gbl.Usrs.Me.LoggedRole) switch (Gbl.Usrs.Me.LoggedRole)
@ -6839,6 +6840,7 @@ void Usr_SeeGuests (void)
void Usr_SeeStudents (void) void Usr_SeeStudents (void)
{ {
extern const char *Hlp_USERS_Students;
extern const char *The_ClassForm[The_NUM_THEMES]; extern const char *The_ClassForm[The_NUM_THEMES];
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];
extern const char *Txt_Scope; extern const char *Txt_Scope;
@ -6899,7 +6901,7 @@ void Usr_SeeStudents (void)
/***** Start frame *****/ /***** Start frame *****/
Lay_StartRoundFrame (NULL,Txt_ROLES_PLURAL_Abc[Rol_STUDENT][Usr_SEX_UNKNOWN], Lay_StartRoundFrame (NULL,Txt_ROLES_PLURAL_Abc[Rol_STUDENT][Usr_SEX_UNKNOWN],
Usr_PutIconsListStds,NULL); Usr_PutIconsListStds,Hlp_USERS_Students);
/***** Form to select range of students *****/ /***** Form to select range of students *****/
switch (Gbl.Usrs.Me.LoggedRole) switch (Gbl.Usrs.Me.LoggedRole)
@ -7007,6 +7009,7 @@ void Usr_SeeStudents (void)
void Usr_SeeTeachers (void) void Usr_SeeTeachers (void)
{ {
extern const char *Hlp_USERS_Teachers;
extern const char *The_ClassForm[The_NUM_THEMES]; extern const char *The_ClassForm[The_NUM_THEMES];
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];
extern const char *Txt_Scope; extern const char *Txt_Scope;
@ -7053,7 +7056,7 @@ void Usr_SeeTeachers (void)
{ {
/***** Start frame *****/ /***** Start frame *****/
Lay_StartRoundFrame (NULL,Txt_ROLES_PLURAL_Abc[Rol_TEACHER][Usr_SEX_UNKNOWN], Lay_StartRoundFrame (NULL,Txt_ROLES_PLURAL_Abc[Rol_TEACHER][Usr_SEX_UNKNOWN],
Usr_PutIconsListTchs,NULL); Usr_PutIconsListTchs,Hlp_USERS_Teachers);
/***** Form to select scope *****/ /***** Form to select scope *****/
fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\">"); fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\">");