diff --git a/swad_changelog.h b/swad_changelog.h index 5272d55fc..b2a0822db 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -103,12 +103,13 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 14.77.2 (2015/03/05)" +#define Log_PLATFORM_VERSION "SWAD 14.77.3 (2015/03/05)" // 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 | tail -1 /* - Version 14.77.2: Mar 05, 2015 Changes in shared record. (? lines) + Version 14.77.3: Mar 05, 2015 Changes in shared record. (178509 lines) + Version 14.77.2: Mar 05, 2015 Changes in shared record. (178504 lines) Version 14.77.1: Mar 05, 2015 New option to select the user and then go to his/her public user's profile. (178475 lines) 2 changes necessary in database: INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1401','es','N','Solicitar perfil de usuario'); diff --git a/swad_record.c b/swad_record.c index 53dcc43f7..d4aafc338 100644 --- a/swad_record.c +++ b/swad_record.c @@ -2088,6 +2088,23 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, TypeOfView == Rec_RECORD_PRINT) && IAmTeacher && Gbl.Usrs.Listing.RecsUsrs == Rec_RECORD_USERS_STUDENTS)))); bool ShowData = ItsMe || UsrDat->Accepted || IAmDegAdmin || IAmSuperuser; + bool ShowMailIDRoleRows = (TypeOfView != Rec_RECORD_PUBLIC); + bool ShowAddressRows = (TypeOfView == Rec_FORM_MY_COMMON_RECORD || + TypeOfView == Rec_MY_COMMON_RECORD_CHECK || + TypeOfView == Rec_FORM_MY_COURSE_RECORD || + TypeOfView == Rec_MY_COURSE_RECORD_CHECK || + ((TypeOfView == Rec_RECORD_LIST || + TypeOfView == Rec_RECORD_PRINT) && + (IAmTeacher || IAmSuperuser) && + UsrDat->RoleInCurrentCrsDB == Rol_ROLE_STUDENT)); + bool ShowTeacherRows = (((TypeOfView == Rec_FORM_MY_COMMON_RECORD || + TypeOfView == Rec_MY_COMMON_RECORD_CHECK || + TypeOfView == Rec_FORM_MY_COURSE_RECORD || + TypeOfView == Rec_MY_COURSE_RECORD_CHECK) && + (UsrDat->Roles & (1 << Rol_ROLE_TEACHER))) || // He/she (me, really) is a teacher in any course + ((TypeOfView == Rec_RECORD_LIST || + TypeOfView == Rec_RECORD_PRINT) && + UsrDat->RoleInCurrentCrsDB == Rol_ROLE_TEACHER)); // He/she is a teacher in the current course Usr_Sex_t Sex; Rol_Role_t Role; Rol_Role_t DefaultRoleInCurrentCrs; @@ -2134,6 +2151,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, case Rec_MY_COMMON_RECORD_CHECK: case Rec_OTHER_USR_COMMON_RECORD_CHECK: case Rec_RECORD_LIST: + case Rec_RECORD_PUBLIC: RecordWidth = Rec_WIDTH_SHARE_RECORD_SMALL; FrameWidth = 10; Col3Width = 160; @@ -2163,7 +2181,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, /***** Institution *****/ fprintf (Gbl.F.Out,"" "" + " text-align:left; vertical-align:top;\">" "" "" "" "" "
" "" - "%s
%s
%s
 " + " vertical-align:top;\">" + "%s
%s
%s" "
" "", - UsrDat->FirstName[0] ? UsrDat->FirstName : - " ", - UsrDat->Surname1[0] ? UsrDat->Surname1 : - " ", - UsrDat->Surname2[0] ? UsrDat->Surname2 : - " "); + UsrDat->FirstName , + UsrDat->Surname1, + UsrDat->Surname2); /***** Photo *****/ ShowPhoto = Pho_ShowUsrPhotoIsAllowed (UsrDat,PhotoURL); - fprintf (Gbl.F.Out,"", TypeOfView == Rec_FORM_MY_COMMON_RECORD ? ClassForm : ClassData, @@ -2376,318 +2391,315 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, if (!DataForm) QR_PutLinkToPrintQRCode (QR_NICKNAME,UsrDat,false); } - fprintf (Gbl.F.Out,"" - ""); - - /***** User's e-mail *****/ - fprintf (Gbl.F.Out,"" - "" - "%s:" - "" - "", - ClassForm,Col1Width,Txt_Email, - ClassData,Col2Width); - if (UsrDat->Email[0]) - { - if (ShowEmail) - { - fprintf (Gbl.F.Out,"Email); - Str_LimitLengthHTMLStr (UsrDat->Email,36); - fprintf (Gbl.F.Out," class=\"%s\">%s", - ClassData,UsrDat->Email); - } - else - fprintf (Gbl.F.Out,"********"); - } fprintf (Gbl.F.Out,""); /***** User's web and social networks *****/ - fprintf (Gbl.F.Out,"", Col3Width); Net_ShowWebsAndSocialNets (UsrDat->UsrCod); fprintf (Gbl.F.Out,"" ""); - /***** User's ID *****/ - fprintf (Gbl.F.Out,"" - "" - "%s:" - "" - "", - ClassForm,Col1Width,Txt_ID, - ClassData,Col2Width); - ID_WriteUsrIDs (UsrDat,ShowID); - fprintf (Gbl.F.Out,"" - ""); - - /***** User's role *****/ - if (RoleForm) + if (ShowMailIDRoleRows) { + /***** User's e-mail *****/ fprintf (Gbl.F.Out,"" - "", - ClassForm,Col1Width); - if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) - fprintf (Gbl.F.Out,"%s*",Txt_Sex); - else - fprintf (Gbl.F.Out,"%s",Txt_Role); - fprintf (Gbl.F.Out,":" - "", - ClassData,Col2Width); - switch (TypeOfView) - { - case Rec_FORM_SIGN_UP: // I want to apply for enrollment - DefaultRoleInCurrentCrs = (UsrDat->Roles & (1 << Rol_ROLE_TEACHER)) ? Rol_ROLE_TEACHER : - Rol_ROLE_STUDENT; - fprintf (Gbl.F.Out,""); - break; - case Rec_FORM_MY_COMMON_RECORD: // It's me, change my data - for (Sex = Usr_SEX_FEMALE; - Sex <= Usr_SEX_MALE; - Sex++) - { - fprintf (Gbl.F.Out,"\"%s\""%s", - Gbl.Prefs.IconsURL,Usr_StringsSexDB[Sex], - Txt_SEX_SINGULAR_Abc[Sex], - Txt_SEX_SINGULAR_Abc[Sex]); - } - break; - case Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR: // The other user already exists in the platform - if (UsrDat->RoleInCurrentCrsDB < Rol_ROLE_STUDENT) // The other user does not belong to current course - { - /* If there is a request of this user, default role is the requested role */ - if ((DefaultRoleInCurrentCrs = Rol_GetRequestedRole (UsrDat->UsrCod)) == Rol_ROLE_UNKNOWN) - DefaultRoleInCurrentCrs = (UsrDat->Roles & (1 << Rol_ROLE_TEACHER)) ? Rol_ROLE_TEACHER : - Rol_ROLE_STUDENT; - } - else - DefaultRoleInCurrentCrs = UsrDat->RoleInCurrentCrsDB; + "" + "%s:" + "" + "", + ClassForm,Col1Width,Txt_Email, + ClassData,Col2Width); + if (UsrDat->Email[0]) + { + if (ShowEmail) + { + fprintf (Gbl.F.Out,"Email); + Str_LimitLengthHTMLStr (UsrDat->Email,36); + fprintf (Gbl.F.Out," class=\"%s\">%s", + ClassData,UsrDat->Email); + } + else + fprintf (Gbl.F.Out,"********"); + } + fprintf (Gbl.F.Out,""); - fprintf (Gbl.F.Out,""); - break; - case Rec_FORM_NEW_RECORD_OTHER_NEW_USR: // The other user does not exist in platform - fprintf (Gbl.F.Out,""); - break; - default: - break; - } - fprintf (Gbl.F.Out,"" - ""); - } - else // RoleForm == false + /***** User's ID *****/ fprintf (Gbl.F.Out,"" - "" - "%s:" - "" - "" - "%s" - "" - "", - ClassForm,Col1Width, - TypeOfView == Rec_MY_COMMON_RECORD_CHECK ? Txt_Sex : - Txt_Role, - ClassData,Col2Width, - TypeOfView == Rec_MY_COMMON_RECORD_CHECK ? Txt_SEX_SINGULAR_Abc[UsrDat->Sex] : - Txt_ROLES_SINGULAR_Abc[UsrDat->RoleInCurrentCrsDB][UsrDat->Sex]); + "" + "%s:" + "" + "", + ClassForm,Col1Width,Txt_ID, + ClassData,Col2Width); + ID_WriteUsrIDs (UsrDat,ShowID); + fprintf (Gbl.F.Out,"" + ""); + + /***** User's role *****/ + if (RoleForm) + { + fprintf (Gbl.F.Out,"" + "", + ClassForm,Col1Width); + if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) + fprintf (Gbl.F.Out,"%s*",Txt_Sex); + else + fprintf (Gbl.F.Out,"%s",Txt_Role); + fprintf (Gbl.F.Out,":" + "", + ClassData,Col2Width); + switch (TypeOfView) + { + case Rec_FORM_SIGN_UP: // I want to apply for enrollment + DefaultRoleInCurrentCrs = (UsrDat->Roles & (1 << Rol_ROLE_TEACHER)) ? Rol_ROLE_TEACHER : + Rol_ROLE_STUDENT; + fprintf (Gbl.F.Out,""); + break; + case Rec_FORM_MY_COMMON_RECORD: // It's me, change my data + for (Sex = Usr_SEX_FEMALE; + Sex <= Usr_SEX_MALE; + Sex++) + { + fprintf (Gbl.F.Out,"\"%s\""%s", + Gbl.Prefs.IconsURL,Usr_StringsSexDB[Sex], + Txt_SEX_SINGULAR_Abc[Sex], + Txt_SEX_SINGULAR_Abc[Sex]); + } + break; + case Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR: // The other user already exists in the platform + if (UsrDat->RoleInCurrentCrsDB < Rol_ROLE_STUDENT) // The other user does not belong to current course + { + /* If there is a request of this user, default role is the requested role */ + if ((DefaultRoleInCurrentCrs = Rol_GetRequestedRole (UsrDat->UsrCod)) == Rol_ROLE_UNKNOWN) + DefaultRoleInCurrentCrs = (UsrDat->Roles & (1 << Rol_ROLE_TEACHER)) ? Rol_ROLE_TEACHER : + Rol_ROLE_STUDENT; + } + else + DefaultRoleInCurrentCrs = UsrDat->RoleInCurrentCrsDB; + + fprintf (Gbl.F.Out,""); + break; + case Rec_FORM_NEW_RECORD_OTHER_NEW_USR: // The other user does not exist in platform + fprintf (Gbl.F.Out,""); + break; + default: + break; + } + fprintf (Gbl.F.Out,"" + ""); + } + else // RoleForm == false + fprintf (Gbl.F.Out,"" + "" + "%s:" + "" + "" + "%s" + "" + "", + ClassForm,Col1Width, + TypeOfView == Rec_MY_COMMON_RECORD_CHECK ? Txt_Sex : + Txt_Role, + ClassData,Col2Width, + TypeOfView == Rec_MY_COMMON_RECORD_CHECK ? Txt_SEX_SINGULAR_Abc[UsrDat->Sex] : + Txt_ROLES_SINGULAR_Abc[UsrDat->RoleInCurrentCrsDB][UsrDat->Sex]); + } /***** Name *****/ /* Surname 1 */ fprintf (Gbl.F.Out,"" - "" - "%s", - ClassForm,Col1Width,Txt_Surname_1); + "" + "%s", + ClassForm,Col1Width,Txt_Surname_1); if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) fprintf (Gbl.F.Out,"*"); fprintf (Gbl.F.Out,":" - "", - ClassData,Cols2and3Width); + "", + ClassData,Cols2and3Width); if (DataForm) fprintf (Gbl.F.Out,"", - Usr_MAX_LENGTH_USR_NAME_OR_SURNAME,UsrDat->Surname1); + " style=\"width:400px;\" maxlength=\"%u\" value=\"%s\" />", + Usr_MAX_LENGTH_USR_NAME_OR_SURNAME,UsrDat->Surname1); else if (UsrDat->Surname1[0]) fprintf (Gbl.F.Out,"%s",UsrDat->Surname1); fprintf (Gbl.F.Out,"" - ""); + ""); /* Surname 2 */ fprintf (Gbl.F.Out,"" - "" - "%s:" - "" - "", - ClassForm,Col1Width, - Txt_Surname_2, - ClassData,Cols2and3Width); + "" + "%s:" + "" + "", + ClassForm,Col1Width, + Txt_Surname_2, + ClassData,Cols2and3Width); if (DataForm) fprintf (Gbl.F.Out,"", - Usr_MAX_LENGTH_USR_NAME_OR_SURNAME,UsrDat->Surname2); + " style=\"width:400px;\" maxlength=\"%u\" value=\"%s\" />", + Usr_MAX_LENGTH_USR_NAME_OR_SURNAME,UsrDat->Surname2); else if (UsrDat->Surname2[0]) fprintf (Gbl.F.Out,"%s", UsrDat->Surname2); fprintf (Gbl.F.Out,"" - ""); + ""); /* First name */ fprintf (Gbl.F.Out,"" - "" - "%s", - ClassForm,Col1Width,Txt_First_name); + "" + "%s", + ClassForm,Col1Width,Txt_First_name); if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) fprintf (Gbl.F.Out,"*"); fprintf (Gbl.F.Out,":" - "", - ClassData,Cols2and3Width); + "", + ClassData,Cols2and3Width); if (DataForm) fprintf (Gbl.F.Out,"", - Usr_MAX_LENGTH_USR_NAME_OR_SURNAME,UsrDat->FirstName); + " style=\"width:400px;\" maxlength=\"%u\" value=\"%s\" />", + Usr_MAX_LENGTH_USR_NAME_OR_SURNAME,UsrDat->FirstName); else if (UsrDat->FirstName[0]) fprintf (Gbl.F.Out,"%s",UsrDat->FirstName); fprintf (Gbl.F.Out,"" - ""); + ""); - if (TypeOfView == Rec_FORM_MY_COMMON_RECORD || - TypeOfView == Rec_MY_COMMON_RECORD_CHECK || - TypeOfView == Rec_FORM_MY_COURSE_RECORD || - TypeOfView == Rec_MY_COURSE_RECORD_CHECK || - ((TypeOfView == Rec_RECORD_LIST || - TypeOfView == Rec_RECORD_PRINT) && - (IAmTeacher || IAmSuperuser) && - (UsrDat->RoleInCurrentCrsDB == Rol_ROLE_GUEST__ || - UsrDat->RoleInCurrentCrsDB == Rol_ROLE_STUDENT))) + /* Country */ + fprintf (Gbl.F.Out,"" + "" + "%s", + ClassForm,Col1Width,Txt_Country); + if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) + fprintf (Gbl.F.Out,"*"); + fprintf (Gbl.F.Out,":" + "", + ClassData,Cols2and3Width); + if (ShowData) { - /* Country */ - fprintf (Gbl.F.Out,"" - "" - "%s", - ClassForm,Col1Width,Txt_Country); - if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) - fprintf (Gbl.F.Out,"*"); - fprintf (Gbl.F.Out,":" - "", - ClassData,Cols2and3Width); - if (ShowData) + if (DataForm) { - if (DataForm) + /* If list of countries is empty, try to get it */ + if (!Gbl.Ctys.Num) { - /* If list of countries is empty, try to get it */ - if (!Gbl.Ctys.Num) - { - Gbl.Ctys.SelectedOrderType = Cty_ORDER_BY_COUNTRY; - Cty_GetListCountries (Cty_GET_ONLY_COUNTRIES); - } + Gbl.Ctys.SelectedOrderType = Cty_ORDER_BY_COUNTRY; + Cty_GetListCountries (Cty_GET_ONLY_COUNTRIES); + } - fprintf (Gbl.F.Out,"" + "" + "",Txt_Another_country); + for (NumCty = 0; + NumCty < Gbl.Ctys.Num; + NumCty++) + { + fprintf (Gbl.F.Out,"",Txt_Another_country); - for (NumCty = 0; - NumCty < Gbl.Ctys.Num; - NumCty++) - { - fprintf (Gbl.F.Out,"", - Gbl.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]); - } - fprintf (Gbl.F.Out,""); - } - else if (UsrDat->CtyCod > 0) - { - Cty_GetCountryName (UsrDat->CtyCod,CtyName); - fprintf (Gbl.F.Out,"%s",CtyName); + fprintf (Gbl.F.Out,">%s", + Gbl.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]); } + fprintf (Gbl.F.Out,""); } - fprintf (Gbl.F.Out,"" - ""); + else if (UsrDat->CtyCod > 0) + { + Cty_GetCountryName (UsrDat->CtyCod,CtyName); + fprintf (Gbl.F.Out,"%s",CtyName); + } + } + fprintf (Gbl.F.Out,"" + ""); + if (ShowAddressRows) + { /* Origin place */ fprintf (Gbl.F.Out,"" "Roles & (1 << Rol_ROLE_TEACHER))) || // He/she (me, really) is a teacher in any course - ((TypeOfView == Rec_RECORD_LIST || - TypeOfView == Rec_RECORD_PRINT) && - (UsrDat->RoleInCurrentCrsDB == Rol_ROLE_GUEST__ || - UsrDat->RoleInCurrentCrsDB == Rol_ROLE_TEACHER))) // He/she is a teacher in the current course + if (ShowTeacherRows) { /* Institution */ fprintf (Gbl.F.Out,"" @@ -2972,7 +2976,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, /***** End frame *****/ Lay_EndRoundFrameTable10 (); - } + } /*****************************************************************************/ /*********************** Write a link to netiquette rules ********************/