Version 14.92

This commit is contained in:
Antonio Cañas Vargas 2015-03-14 17:39:04 +01:00
parent cd8116f01d
commit 7953f585a1
26 changed files with 1353 additions and 1232 deletions

View File

@ -38,7 +38,8 @@ OBJS = swad_account.o swad_action.o swad_announcement.o swad_assignment.o swad_a
swad_layout.o swad_link.o swad_logo.o \ swad_layout.o swad_link.o swad_logo.o \
swad_mail.o swad_main.o swad_mark.o swad_menu.o swad_message.o \ swad_mail.o swad_main.o swad_mark.o swad_menu.o swad_message.o \
swad_network.o swad_nickname.o swad_notice.o swad_notification.o \ swad_network.o swad_nickname.o swad_notice.o swad_notification.o \
swad_pagination.o swad_parameter.o swad_password.o swad_photo.o swad_place.o swad_plugin.o swad_preference.o swad_privacy.o \ swad_pagination.o swad_parameter.o swad_password.o swad_photo.o \
swad_place.o swad_plugin.o swad_preference.o swad_profile.o swad_privacy.o \
swad_QR.o \ swad_QR.o \
swad_record.o swad_role.o swad_RSS.o \ swad_record.o swad_role.o swad_RSS.o \
swad_scope.o swad_search.o swad_session.o swad_setup.o swad_statistic.o swad_string.o swad_survey.o swad_syllabus.o \ swad_scope.o swad_search.o swad_session.o swad_setup.o swad_statistic.o swad_string.o swad_survey.o swad_syllabus.o \

View File

@ -235,7 +235,7 @@ p {margin:0;}
.FRAME10 .FRAME10
{ {
margin:4px 0; margin:4px 0;
padding:10px 0; padding:0;
background-color:white; background-color:white;
border-radius:8px; border-radius:8px;
box-shadow:1px 1px 1px #CCC; box-shadow:1px 1px 1px #CCC;
@ -246,7 +246,7 @@ p {margin:0;}
.FRAME10_SHADOW .FRAME10_SHADOW
{ {
margin:4px 0 14px 0; margin:4px 0 14px 0;
padding:10px 0; padding:0;
background-color:rgba(255,255,255,0.95); background-color:rgba(255,255,255,0.95);
border-width:1px; border-width:1px;
border-style:solid; border-style:solid;
@ -259,7 +259,7 @@ p {margin:0;}
} }
.TABLE10 .TABLE10
{ {
padding:0 10px; padding:10px;
width:100%; width:100%;
} }
.TIT_TBL_10 .TIT_TBL_10

View File

@ -35,6 +35,7 @@
#include "swad_ID.h" #include "swad_ID.h"
#include "swad_notification.h" #include "swad_notification.h"
#include "swad_parameter.h" #include "swad_parameter.h"
#include "swad_profile.h"
/*****************************************************************************/ /*****************************************************************************/
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
@ -741,7 +742,7 @@ void Acc_CompletelyEliminateAccount (struct UsrData *UsrDat,
DB_QueryDELETE (Query,"can not remove sessions of a user"); DB_QueryDELETE (Query,"can not remove sessions of a user");
/***** Remove user's figures *****/ /***** Remove user's figures *****/
Usr_RemoveUsrFigures (UsrDat->UsrCod); Prf_RemoveUsrFigures (UsrDat->UsrCod);
/***** Remove the user from the list of users without photo *****/ /***** Remove the user from the list of users without photo *****/
Pho_RemoveUsrFromTableClicksWithoutPhoto (UsrDat->UsrCod); Pho_RemoveUsrFromTableClicksWithoutPhoto (UsrDat->UsrCod);

View File

@ -56,6 +56,7 @@
#include "swad_password.h" #include "swad_password.h"
#include "swad_photo.h" #include "swad_photo.h"
#include "swad_preference.h" #include "swad_preference.h"
#include "swad_profile.h"
#include "swad_QR.h" #include "swad_QR.h"
#include "swad_search.h" #include "swad_search.h"
#include "swad_setup.h" #include "swad_setup.h"
@ -2217,7 +2218,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActSeeSignUpReq */{1057, 7,TabUsr,ActSeeSignUpReq ,0x1F0,0x1F0,0x1F0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ShowEnrollmentRequests ,"enrollmentrequest" }, /* ActSeeSignUpReq */{1057, 7,TabUsr,ActSeeSignUpReq ,0x1F0,0x1F0,0x1F0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ShowEnrollmentRequests ,"enrollmentrequest" },
/* ActReqMdfSevUsr */{ 797, 8,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAdminUsrs ,"configs" }, /* ActReqMdfSevUsr */{ 797, 8,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAdminUsrs ,"configs" },
/* ActLstCon */{ 995, 9,TabUsr,ActLstCon ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Con_ShowConnectedUsrs ,"userplugged" }, /* ActLstCon */{ 995, 9,TabUsr,ActLstCon ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Con_ShowConnectedUsrs ,"userplugged" },
/* ActReqPubPrf */{1401,10,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_RequestUserProfile ,"prf" }, /* ActReqPubPrf */{1401,10,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_RequestUserProfile ,"prf" },
// Actions not in menu: // Actions not in menu:
/* ActChgGrp */{ 118,-1,TabUsr,ActReqSelGrp ,0x118,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Grp_ChangeMyGrpsAndShowChanges ,NULL}, /* ActChgGrp */{ 118,-1,TabUsr,ActReqSelGrp ,0x118,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Grp_ChangeMyGrpsAndShowChanges ,NULL},
@ -2329,12 +2330,12 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActReqRemOldUsr */{ 590,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskRemoveOldUsrs ,NULL}, /* ActReqRemOldUsr */{ 590,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskRemoveOldUsrs ,NULL},
/* ActRemOldUsr */{ 773,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemoveOldUsrs ,NULL}, /* ActRemOldUsr */{ 773,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemoveOldUsrs ,NULL},
/* ActSeePubPrf */{1402,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_GetUsrCodAndShowUserProfile,NULL}, /* ActSeePubPrf */{1402,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_GetUsrCodAndShowUserProfile,NULL},
/* ActCal1stClkTim */{1405,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_CalculateFirstClickTime ,NULL}, /* ActCal1stClkTim */{1405,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_CalculateFirstClickTime ,NULL},
/* ActCalNumClk */{1406,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_CalculateNumClicks ,NULL}, /* ActCalNumClk */{1406,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_CalculateNumClicks ,NULL},
/* ActCalNumFilVie */{1409,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_CalculateNumFileViews ,NULL}, /* ActCalNumFilVie */{1409,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_CalculateNumFileViews ,NULL},
/* ActCalNumForPst */{1408,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_CalculateNumForPst ,NULL}, /* ActCalNumForPst */{1408,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_CalculateNumForPst ,NULL},
/* ActCalNumMsgSnt */{1407,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_CalculateNumMsgSnt ,NULL}, /* ActCalNumMsgSnt */{1407,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_CalculateNumMsgSnt ,NULL},
// TabMsg ****************************************************************** // TabMsg ******************************************************************
// Actions in menu: // Actions in menu:
@ -2568,7 +2569,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActSeeMyTimTbl */{ 408, 2,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowClassTimeTable ,"clock" }, /* ActSeeMyTimTbl */{ 408, 2,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowClassTimeTable ,"clock" },
/* ActFrmUsrAcc */{ 36, 3,TabPrf,ActFrmUsrAcc ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Acc_ShowFormAccount ,"arroba" }, /* ActFrmUsrAcc */{ 36, 3,TabPrf,ActFrmUsrAcc ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Acc_ShowFormAccount ,"arroba" },
/* ActReqEdiRecCom */{ 285, 4,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ShowFormMyCommRecord ,"card" }, /* ActReqEdiRecCom */{ 285, 4,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ShowFormMyCommRecord ,"card" },
/* ActEdiPrf */{ 673, 5,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_EditPrefs ,"heart" }, /* ActEdiPrf */{ 673, 5,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pre_EditPrefs ,"heart" },
/* ActAdmBrf */{ 23, 6,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"pendrive" }, /* ActAdmBrf */{ 23, 6,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"pendrive" },
/* ActMFUAct */{ 993, 7,TabPrf,ActMFUAct ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Act_ShowMyMFUActions ,"star" }, /* ActMFUAct */{ 993, 7,TabPrf,ActMFUAct ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Act_ShowMyMFUActions ,"star" },
@ -2607,7 +2608,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActEdiPri */{1403,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pri_EditMyPrivacy ,NULL}, /* ActEdiPri */{1403,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pri_EditMyPrivacy ,NULL},
/* ActChgPriPho */{ 774,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_ChangePhotoVisibility ,NULL}, /* ActChgPriPho */{ 774,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_ChangePhotoVisibility ,NULL},
/* ActChgPriPrf */{1404,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_ChangeProfileVisibility ,NULL}, /* ActChgPriPrf */{1404,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_ChangeProfileVisibility ,NULL},
/* ActReqEdiMyIns */{1165,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ShowFormMyInsCtrDpt ,NULL}, /* ActReqEdiMyIns */{1165,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ShowFormMyInsCtrDpt ,NULL},
/* ActChgCtyMyIns */{1166,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ChgCountryOfMyInstitution ,NULL}, /* ActChgCtyMyIns */{1166,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ChgCountryOfMyInstitution ,NULL},
@ -2620,20 +2621,20 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActReqEdiMyNet */{1172,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Net_ShowFormMyWebsAndSocialNets,NULL}, /* ActReqEdiMyNet */{1172,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Net_ShowFormMyWebsAndSocialNets,NULL},
/* ActChgMyNet */{1173,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Net_UpdateMyWebsAndSocialNets ,NULL}, /* ActChgMyNet */{1173,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Net_UpdateMyWebsAndSocialNets ,NULL},
/* ActChgLay */{ 672,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Lay_ChangeLayout ,Prf_EditPrefs ,NULL}, /* ActChgLay */{ 672,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Lay_ChangeLayout ,Pre_EditPrefs ,NULL},
/* ActChgThe */{ 841,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,The_ChangeTheme ,Prf_EditPrefs ,NULL}, /* ActChgThe */{ 841,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,The_ChangeTheme ,Pre_EditPrefs ,NULL},
/* ActReqChgLan */{ 992,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_AskChangeLanguage ,NULL}, /* ActReqChgLan */{ 992,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pre_AskChangeLanguage ,NULL},
/* ActChgLan */{ 654,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_ChangeLanguage ,Prf_EditPrefs ,NULL}, /* ActChgLan */{ 654,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pre_ChangeLanguage ,Pre_EditPrefs ,NULL},
/* ActChgCol */{ 674,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_ChangeSideCols ,Prf_EditPrefs ,NULL}, /* ActChgCol */{ 674,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pre_ChangeSideCols ,Pre_EditPrefs ,NULL},
/* ActHidLftCol */{ 668,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_HideLeftCol ,Prf_EditPrefs ,NULL}, /* ActHidLftCol */{ 668,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pre_HideLeftCol ,Pre_EditPrefs ,NULL},
/* ActHidRgtCol */{ 669,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_HideRightCol ,Prf_EditPrefs ,NULL}, /* ActHidRgtCol */{ 669,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pre_HideRightCol ,Pre_EditPrefs ,NULL},
/* ActShoLftCol */{ 670,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_ShowLeftCol ,Prf_EditPrefs ,NULL}, /* ActShoLftCol */{ 670,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pre_ShowLeftCol ,Pre_EditPrefs ,NULL},
/* ActShoRgtCol */{ 671,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_ShowRightCol ,Prf_EditPrefs ,NULL}, /* ActShoRgtCol */{ 671,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pre_ShowRightCol ,Pre_EditPrefs ,NULL},
/* ActChgIco */{1092,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Ico_ChangeIconSet ,Prf_EditPrefs ,NULL}, /* ActChgIco */{1092,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Ico_ChangeIconSet ,Pre_EditPrefs ,NULL},
/* ActChgMnu */{1243,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Mnu_ChangeMenu ,Prf_EditPrefs ,NULL}, /* ActChgMnu */{1243,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Mnu_ChangeMenu ,Pre_EditPrefs ,NULL},
/* ActChgNtfPrf */{ 775,-1,TabPrf,ActEdiPrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Ntf_ChangeNotifyEvents ,Prf_EditPrefs ,NULL}, /* ActChgNtfPrf */{ 775,-1,TabPrf,ActEdiPrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Ntf_ChangeNotifyEvents ,Pre_EditPrefs ,NULL},
/* ActPrnUsrQR */{1022,-1,TabPrf,ActFrmUsrAcc ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,QR_PrintQRCode ,NULL}, /* ActPrnUsrQR */{1022,-1,TabPrf,ActFrmUsrAcc ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,QR_PrintQRCode ,NULL},
/* ActPrnMyTimTbl */{ 409,-1,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,TT_ShowClassTimeTable ,NULL}, /* ActPrnMyTimTbl */{ 409,-1,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,TT_ShowClassTimeTable ,NULL},
/* ActEdiTut */{ 65,-1,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowMyTutTimeTable ,NULL}, /* ActEdiTut */{ 65,-1,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowMyTutTimeTable ,NULL},

View File

@ -103,11 +103,19 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.91.1 (2015/03/14)" #define Log_PLATFORM_VERSION "SWAD 14.92 (2015/03/14)"
// 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 14.92: Mar 14, 2015 New module swad_profile for public user's profile. (182202 lines)
1 change necessary in Makefile:
Add swad_profile.o to list of object files
Version 14.91.3: Mar 14, 2015 By default, the logged user's nickname is shown in form to view user's profile
Action to view QR code is now public. (182108 lines)
Version 14.91.2: Mar 14, 2015 URL of public profile is embedded under user's photo in record card.
Changes in layout of record card. (182124 lines)
Version 14.91.1: Mar 14, 2015 Current figures separated from historic figures in layout of public user profile. Version 14.91.1: Mar 14, 2015 Current figures separated from historic figures in layout of public user profile.
Show only number of files, not folder or links. (182112 lines) Show only number of files, not folder or links. (182112 lines)
Version 14.91: Mar 14, 2015 Statistics for number of file views added to user figures. (182091 lines) Version 14.91: Mar 14, 2015 Statistics for number of file views added to user figures. (182091 lines)

View File

@ -1489,7 +1489,7 @@ void Cty_RenameCountry (void)
Lay_ShowErrorAndExit ("Code of country is missing."); Lay_ShowErrorAndExit ("Code of country is missing.");
/* Get the lenguage */ /* Get the lenguage */
Language = Prf_GetParamLanguage (); Language = Pre_GetParamLanguage ();
/* Get the new name for the country */ /* Get the new name for the country */
Par_GetParToText ("Name",NewCtyName,Cty_MAX_LENGTH_COUNTRY_NAME); Par_GetParToText ("Name",NewCtyName,Cty_MAX_LENGTH_COUNTRY_NAME);
@ -1607,7 +1607,7 @@ void Cty_ChangeCtyWWW (void)
Lay_ShowErrorAndExit ("Code of country is missing."); Lay_ShowErrorAndExit ("Code of country is missing.");
/* Get the lenguage */ /* Get the lenguage */
Language = Prf_GetParamLanguage (); Language = Pre_GetParamLanguage ();
/* Get the new WWW for the country */ /* Get the new WWW for the country */
Par_GetParToText ("WWW",NewWWW,Cty_MAX_LENGTH_COUNTRY_NAME); Par_GetParToText ("WWW",NewWWW,Cty_MAX_LENGTH_COUNTRY_NAME);

View File

@ -46,6 +46,7 @@
#include "swad_notification.h" #include "swad_notification.h"
#include "swad_parameter.h" #include "swad_parameter.h"
#include "swad_photo.h" #include "swad_photo.h"
#include "swad_profile.h"
#include "swad_string.h" #include "swad_string.h"
#include "swad_zip.h" #include "swad_zip.h"
@ -9973,7 +9974,7 @@ void Brw_GetAndUpdateFileViews (struct FileMetadata *FileMetadata)
/***** Increment number of file views in my user's figures *****/ /***** Increment number of file views in my user's figures *****/
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
Usr_IncrementNumFileViewsUsr (Gbl.Usrs.Me.UsrDat.UsrCod); Prf_IncrementNumFileViewsUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
} }
else else
FileMetadata->NumMyViews = FileMetadata->NumMyViews =

View File

@ -40,6 +40,7 @@
#include "swad_logo.h" #include "swad_logo.h"
#include "swad_notification.h" #include "swad_notification.h"
#include "swad_parameter.h" #include "swad_parameter.h"
#include "swad_profile.h"
/*****************************************************************************/ /*****************************************************************************/
/************** External global variables from others modules ****************/ /************** External global variables from others modules ****************/
@ -757,7 +758,8 @@ unsigned For_GetNumPstsInThr (long ThrCod)
char Query[512]; char Query[512];
/***** Get number of posts in a thread from database *****/ /***** Get number of posts in a thread from database *****/
sprintf (Query,"SELECT COUNT(*) FROM forum_post WHERE ThrCod='%ld'", sprintf (Query,"SELECT COUNT(*) FROM forum_post"
" WHERE ThrCod='%ld'",
ThrCod); ThrCod);
return (unsigned) DB_QueryCOUNT (Query,"can not get the number of posts in a thread of a forum"); return (unsigned) DB_QueryCOUNT (Query,"can not get the number of posts in a thread of a forum");
} }
@ -3820,7 +3822,7 @@ void For_RecForumPst (void)
} }
/***** Increment number of forum posts in my user's figures *****/ /***** Increment number of forum posts in my user's figures *****/
Usr_IncrementNumForPstUsr (Gbl.Usrs.Me.UsrDat.UsrCod); Prf_IncrementNumForPstUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
/***** Write message of success *****/ /***** Write message of success *****/
Lay_ShowAlert (Lay_SUCCESS,Txt_Post_sent); Lay_ShowAlert (Lay_SUCCESS,Txt_Post_sent);

View File

@ -120,7 +120,7 @@ void Ico_ChangeIconSet (void)
} }
/***** Set preferences from current IP *****/ /***** Set preferences from current IP *****/
Prf_SetPrefsFromIP (); Pre_SetPrefsFromIP ();
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -296,7 +296,7 @@ void Lay_WriteStartOfPage (void)
/* Left bar used to expand-contract central zone */ /* Left bar used to expand-contract central zone */
fprintf (Gbl.F.Out,"<td style=\"width:10px; text-align:right;" fprintf (Gbl.F.Out,"<td style=\"width:10px; text-align:right;"
" vertical-align:top;\">"); " vertical-align:top;\">");
Prf_PutLeftIconToHideShowCols (); Pre_PutLeftIconToHideShowCols ();
fprintf (Gbl.F.Out,"</td>"); fprintf (Gbl.F.Out,"</td>");
if (Gbl.Prefs.Menu == Mnu_MENU_VERTICAL) if (Gbl.Prefs.Menu == Mnu_MENU_VERTICAL)
@ -382,7 +382,7 @@ static void Lay_WriteEndOfPage (void)
/* Right bar used to expand-contract central zone */ /* Right bar used to expand-contract central zone */
fprintf (Gbl.F.Out,"<td style=\"width:10px; text-align:left;" fprintf (Gbl.F.Out,"<td style=\"width:10px; text-align:left;"
" vertical-align:top;\">"); " vertical-align:top;\">");
Prf_PutRigthIconToHideShowCols (); Pre_PutRigthIconToHideShowCols ();
fprintf (Gbl.F.Out,"</td>"); fprintf (Gbl.F.Out,"</td>");
} }
@ -657,7 +657,7 @@ static void Lay_WritePageTopHeading (void)
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
Usr_WriteLoggedUsrHead (); Usr_WriteLoggedUsrHead ();
else else
Prf_PutSelectorToSelectLanguage (); Pre_PutSelectorToSelectLanguage ();
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>" "</tr>"
"</table>" "</table>"
@ -1191,7 +1191,7 @@ void Lay_RefreshNotifsAndConnected (void)
else if (!(Gbl.PID % 1013)) // Do this only one of 1013 times (1013 is prime) else if (!(Gbl.PID % 1013)) // Do this only one of 1013 times (1013 is prime)
Brw_RemoveExpiredExpandedFolders (); // Remove old expanded folders (from all users) Brw_RemoveExpiredExpandedFolders (); // Remove old expanded folders (from all users)
else if (!(Gbl.PID % 1019)) // Do this only one of 1019 times (1019 is prime) else if (!(Gbl.PID % 1019)) // Do this only one of 1019 times (1019 is prime)
Prf_RemoveOldPrefsFromIP (); // Remove old preferences from IP Pre_RemoveOldPrefsFromIP (); // Remove old preferences from IP
else if (!(Gbl.PID % 1021)) // Do this only one of 1021 times (1021 is prime) else if (!(Gbl.PID % 1021)) // Do this only one of 1021 times (1021 is prime)
Sta_RemoveOldEntriesRecentLog (); // Remove old entries in recent log table, it's a slow query Sta_RemoveOldEntriesRecentLog (); // Remove old entries in recent log table, it's a slow query
@ -1466,7 +1466,7 @@ void Lay_ChangeLayout (void)
} }
/***** Set preferences from current IP *****/ /***** Set preferences from current IP *****/
Prf_SetPrefsFromIP (); Pre_SetPrefsFromIP ();
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -352,7 +352,7 @@ void Mnu_ChangeMenu (void)
} }
/***** Set preferences from current IP *****/ /***** Set preferences from current IP *****/
Prf_SetPrefsFromIP (); Pre_SetPrefsFromIP ();
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -42,6 +42,7 @@
#include "swad_notification.h" #include "swad_notification.h"
#include "swad_parameter.h" #include "swad_parameter.h"
#include "swad_photo.h" #include "swad_photo.h"
#include "swad_profile.h"
#include "swad_user.h" #include "swad_user.h"
/*****************************************************************************/ /*****************************************************************************/
@ -1185,7 +1186,7 @@ static long Msg_InsertNewMsg (const char *Subject,const char *Content)
DB_QueryINSERT (Query,"can not create message"); DB_QueryINSERT (Query,"can not create message");
/***** Increment number of messages sent by me *****/ /***** Increment number of messages sent by me *****/
Usr_IncrementNumMsgSntUsr (Gbl.Usrs.Me.UsrDat.UsrCod); Prf_IncrementNumMsgSntUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
return MsgCod; return MsgCod;
} }

View File

@ -30,6 +30,7 @@
#include "swad_database.h" #include "swad_database.h"
#include "swad_global.h" #include "swad_global.h"
#include "swad_parameter.h" #include "swad_parameter.h"
#include "swad_profile.h"
#include "swad_theme.h" #include "swad_theme.h"
/*****************************************************************************/ /*****************************************************************************/
@ -134,13 +135,15 @@ const char *Net_TitleWebsAndSocialNetworks[Net_NUM_WEBS_AND_SOCIAL_NETWORKS] =
/***************************** Private prototypes ****************************/ /***************************** Private prototypes ****************************/
/*****************************************************************************/ /*****************************************************************************/
static void Net_ShowAWebOrSocialNet (const char *URL,
const char *Icon,const char *Title);
static void Net_GetMyWebsAndSocialNetsFromForm (void); static void Net_GetMyWebsAndSocialNetsFromForm (void);
/*****************************************************************************/ /*****************************************************************************/
/************************** Show webs / social networks **********************/ /************************** Show webs / social networks **********************/
/*****************************************************************************/ /*****************************************************************************/
void Net_ShowWebsAndSocialNets (long UsrCod) void Net_ShowWebsAndSocialNets (const struct UsrData *UsrDat)
{ {
char Query[256]; char Query[256];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
@ -148,8 +151,14 @@ void Net_ShowWebsAndSocialNets (long UsrCod)
Net_WebsAndSocialNetworks_t NumURL; Net_WebsAndSocialNetworks_t NumURL;
char URL[Cns_MAX_BYTES_URL+1]; char URL[Cns_MAX_BYTES_URL+1];
/***** Start container *****/
fprintf (Gbl.F.Out,"<div style=\"width:144px; margin:0 auto;\">"); fprintf (Gbl.F.Out,"<div style=\"width:144px; margin:0 auto;\">");
/***** Show link to public profile *****/
Net_ShowAWebOrSocialNet (Prf_GetURLPublicProfile (URL,UsrDat->Nickname),
"swad",Cfg_PLATFORM_PAGE_TITLE);
/***** Show the rest of webs / social networks *****/
for (NumURL = (Net_WebsAndSocialNetworks_t) 0; for (NumURL = (Net_WebsAndSocialNetworks_t) 0;
NumURL < Net_NUM_WEBS_AND_SOCIAL_NETWORKS; NumURL < Net_NUM_WEBS_AND_SOCIAL_NETWORKS;
NumURL++) NumURL++)
@ -157,38 +166,49 @@ void Net_ShowWebsAndSocialNets (long UsrCod)
/***** Get user's web / social network from database *****/ /***** Get user's web / social network from database *****/
sprintf (Query,"SELECT URL FROM usr_webs" sprintf (Query,"SELECT URL FROM usr_webs"
" WHERE UsrCod='%ld' AND Web='%s'", " WHERE UsrCod='%ld' AND Web='%s'",
UsrCod, UsrDat->UsrCod,Net_WebsAndSocialNetworksDB[NumURL]);
Net_WebsAndSocialNetworksDB[NumURL]);
/***** Check number of rows in result *****/ /***** Check if exists the web / social network for this user *****/
if (DB_QuerySELECT (Query,&mysql_res,"can not get user's web / social network")) if (DB_QuerySELECT (Query,&mysql_res,"can not get user's web / social network"))
{ {
/***** Get URL *****/ /* Get URL */
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (mysql_res);
strncpy (URL,row[0],Cns_MAX_BYTES_URL); strncpy (URL,row[0],Cns_MAX_BYTES_URL);
URL[Cns_MAX_BYTES_URL] = '\0'; URL[Cns_MAX_BYTES_URL] = '\0';
/***** Write link and icon *****/ /* Show the web / social network */
fprintf (Gbl.F.Out,"<div class=\"ICON_HIGHLIGHT\"" Net_ShowAWebOrSocialNet (URL,
" style=\"display:inline;\" >" Net_WebsAndSocialNetworksDB[NumURL],
"<a href=\"%s\" target=\"_blank\" title=\"%s\">" Net_TitleWebsAndSocialNetworks[NumURL]);
"<img src=\"%s/%s16x16.gif\""
" style=\"width:16px;height:16px;margin:0 1px;\" alt=\"%s\" />"
"</a>"
"</div>",
URL,
Net_TitleWebsAndSocialNetworks[NumURL],
Gbl.Prefs.IconsURL,Net_WebsAndSocialNetworksDB[NumURL],
Net_TitleWebsAndSocialNetworks[NumURL]);
} }
/***** Free structure that stores the query result *****/ /***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res); DB_FreeMySQLResult (&mysql_res);
} }
/***** End container *****/
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
} }
/*****************************************************************************/
/************************** Show a web / social network **********************/
/*****************************************************************************/
static void Net_ShowAWebOrSocialNet (const char *URL,
const char *Icon,const char *Title)
{
/***** Write link and icon *****/
fprintf (Gbl.F.Out,"<div class=\"ICON_HIGHLIGHT\""
" style=\"display:inline;\">"
"<a href=\"%s\" target=\"_blank\" title=\"%s\">"
"<img src=\"%s/%s16x16.gif\""
" style=\"width:16px;height:16px;margin:0 1px;\" alt=\"%s\" />"
"</a>"
"</div>",
URL,Title,
Gbl.Prefs.IconsURL,Icon,Title);
}
/*****************************************************************************/ /*****************************************************************************/
/********************* Show form to edit my social networks ******************/ /********************* Show form to edit my social networks ******************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -39,7 +39,7 @@
/***************************** Public prototypes *****************************/ /***************************** Public prototypes *****************************/
/*****************************************************************************/ /*****************************************************************************/
void Net_ShowWebsAndSocialNets (long UsrCod); void Net_ShowWebsAndSocialNets (const struct UsrData *UsrDat);
void Net_ShowFormMyWebsAndSocialNets (void); void Net_ShowFormMyWebsAndSocialNets (void);
void Net_UpdateMyWebsAndSocialNets (void); void Net_UpdateMyWebsAndSocialNets (void);
void Net_ShowWebAndSocialNetworksStats (void); void Net_ShowWebAndSocialNetworksStats (void);

View File

@ -235,7 +235,7 @@ void Par_GetMainParameters (void)
} }
/***** Try to get preferences changed from current IP *****/ /***** Try to get preferences changed from current IP *****/
Prf_GetPrefsFromIP (); Pre_GetPrefsFromIP ();
if (Gbl.Prefs.Layout == Lay_LAYOUT_UNKNOWN) if (Gbl.Prefs.Layout == Lay_LAYOUT_UNKNOWN)
Gbl.Prefs.Layout = Lay_LAYOUT_DEFAULT; Gbl.Prefs.Layout = Lay_LAYOUT_DEFAULT;
@ -252,7 +252,7 @@ void Par_GetMainParameters (void)
Gbl.Prefs.Layout = LayoutFromForm; Gbl.Prefs.Layout = LayoutFromForm;
/* Update preferences from current IP */ /* Update preferences from current IP */
Prf_SetPrefsFromIP (); Pre_SetPrefsFromIP ();
} }
/***** Set path of theme *****/ /***** Set path of theme *****/

View File

@ -54,14 +54,14 @@ extern struct Globals Gbl;
/****************************** Private prototypes ***************************/ /****************************** Private prototypes ***************************/
/*****************************************************************************/ /*****************************************************************************/
static void Prf_PutIconsToSelectSideCols (void); static void Pre_PutIconsToSelectSideCols (void);
static void Prf_UpdateSideColsOnUsrDataTable (void); static void Pre_UpdateSideColsOnUsrDataTable (void);
/*****************************************************************************/ /*****************************************************************************/
/***************************** Edit preferences ******************************/ /***************************** Edit preferences ******************************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_EditPrefs (void) void Pre_EditPrefs (void)
{ {
extern const char *Txt_Language; extern const char *Txt_Language;
extern const char *Txt_You_can_only_receive_email_notifications_if_; extern const char *Txt_You_can_only_receive_email_notifications_if_;
@ -71,7 +71,7 @@ void Prf_EditPrefs (void)
Lay_StartRoundFrameTable10 (NULL,2,Txt_Language); Lay_StartRoundFrameTable10 (NULL,2,Txt_Language);
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td style=\"text-align:center;\">"); "<td style=\"text-align:center;\">");
Prf_PutSelectorToSelectLanguage (); Pre_PutSelectorToSelectLanguage ();
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
Lay_EndRoundFrameTable10 (); Lay_EndRoundFrameTable10 ();
@ -94,7 +94,7 @@ void Prf_EditPrefs (void)
Mnu_PutIconsToSelectMenu (); // 4. Menu Mnu_PutIconsToSelectMenu (); // 4. Menu
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"<td>"); "<td>");
Prf_PutIconsToSelectSideCols (); // 5. Side columns Pre_PutIconsToSelectSideCols (); // 5. Side columns
fprintf (Gbl.F.Out,"</td>"); fprintf (Gbl.F.Out,"</td>");
} }
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>"
@ -115,7 +115,7 @@ void Prf_EditPrefs (void)
/******************* Get preferences changed from current IP *****************/ /******************* Get preferences changed from current IP *****************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_GetPrefsFromIP (void) void Pre_GetPrefsFromIP (void)
{ {
char Query[1024]; char Query[1024];
unsigned long NumRows; unsigned long NumRows;
@ -171,7 +171,7 @@ void Prf_GetPrefsFromIP (void)
/************************ Set preferences from current IP ********************/ /************************ Set preferences from current IP ********************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_SetPrefsFromIP (void) void Pre_SetPrefsFromIP (void)
{ {
extern const char *The_ThemeId[The_NUM_THEMES]; extern const char *The_ThemeId[The_NUM_THEMES];
extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS]; extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS];
@ -207,7 +207,7 @@ void Prf_SetPrefsFromIP (void)
/*********************** Remove old preferences from IP **********************/ /*********************** Remove old preferences from IP **********************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_RemoveOldPrefsFromIP (void) void Pre_RemoveOldPrefsFromIP (void)
{ {
char Query[256]; char Query[256];
@ -223,7 +223,7 @@ void Prf_RemoveOldPrefsFromIP (void)
/*****************************************************************************/ /*****************************************************************************/
// Width == 0 means don't force width of selector // Width == 0 means don't force width of selector
void Prf_PutSelectorToSelectLanguage (void) void Pre_PutSelectorToSelectLanguage (void)
{ {
extern const char *Txt_STR_LANG_NAME[Txt_NUM_LANGUAGES]; extern const char *Txt_STR_LANG_NAME[Txt_NUM_LANGUAGES];
Txt_Language_t Lan; Txt_Language_t Lan;
@ -254,7 +254,7 @@ void Prf_PutSelectorToSelectLanguage (void)
/********* Ask user if he/she really wants to change the language ************/ /********* Ask user if he/she really wants to change the language ************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_AskChangeLanguage (void) void Pre_AskChangeLanguage (void)
{ {
extern const char *Txt_Do_you_want_to_change_your_language_to_LANGUAGE[Txt_NUM_LANGUAGES]; extern const char *Txt_Do_you_want_to_change_your_language_to_LANGUAGE[Txt_NUM_LANGUAGES];
extern const char *Txt_Do_you_want_to_change_the_language_to_LANGUAGE[Txt_NUM_LANGUAGES]; extern const char *Txt_Do_you_want_to_change_the_language_to_LANGUAGE[Txt_NUM_LANGUAGES];
@ -262,7 +262,7 @@ void Prf_AskChangeLanguage (void)
Txt_Language_t CurrentLanguage = Gbl.Prefs.Language; Txt_Language_t CurrentLanguage = Gbl.Prefs.Language;
/***** Get param language *****/ /***** Get param language *****/
Gbl.Prefs.Language = Prf_GetParamLanguage (); // Change temporarily language to set form action Gbl.Prefs.Language = Pre_GetParamLanguage (); // Change temporarily language to set form action
/***** Request confirmation *****/ /***** Request confirmation *****/
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
@ -283,7 +283,7 @@ void Prf_AskChangeLanguage (void)
/******************************* Change language *****************************/ /******************************* Change language *****************************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_ChangeLanguage (void) void Pre_ChangeLanguage (void)
{ {
extern const char *Txt_STR_LANG_ID[Txt_NUM_LANGUAGES]; extern const char *Txt_STR_LANG_ID[Txt_NUM_LANGUAGES];
extern const char *Txt_Your_language_has_changed_to_LANGUAGE; extern const char *Txt_Your_language_has_changed_to_LANGUAGE;
@ -293,7 +293,7 @@ void Prf_ChangeLanguage (void)
bool MyLanguageHasChanged = false; bool MyLanguageHasChanged = false;
/***** Get param language *****/ /***** Get param language *****/
Gbl.Prefs.Language = Prf_GetParamLanguage (); Gbl.Prefs.Language = Pre_GetParamLanguage ();
/***** Store language in database *****/ /***** Store language in database *****/
if (Gbl.Usrs.Me.Logged && Gbl.Prefs.Language != Gbl.Usrs.Me.UsrDat.Prefs.Language) if (Gbl.Usrs.Me.Logged && Gbl.Prefs.Language != Gbl.Usrs.Me.UsrDat.Prefs.Language)
@ -305,7 +305,7 @@ void Prf_ChangeLanguage (void)
} }
/***** Set preferences from current IP *****/ /***** Set preferences from current IP *****/
Prf_SetPrefsFromIP (); Pre_SetPrefsFromIP ();
/***** Confirmation *****/ /***** Confirmation *****/
if (MyLanguageHasChanged) if (MyLanguageHasChanged)
@ -318,7 +318,7 @@ void Prf_ChangeLanguage (void)
/*************************** Get parameter language **************************/ /*************************** Get parameter language **************************/
/*****************************************************************************/ /*****************************************************************************/
Txt_Language_t Prf_GetParamLanguage (void) Txt_Language_t Pre_GetParamLanguage (void)
{ {
extern const unsigned Txt_Current_CGI_SWAD_Language; extern const unsigned Txt_Current_CGI_SWAD_Language;
char UnsignedStr[10+1]; char UnsignedStr[10+1];
@ -336,7 +336,7 @@ Txt_Language_t Prf_GetParamLanguage (void)
/************ Put icons to select the layout of the side columns *************/ /************ Put icons to select the layout of the side columns *************/
/*****************************************************************************/ /*****************************************************************************/
static void Prf_PutIconsToSelectSideCols (void) static void Pre_PutIconsToSelectSideCols (void)
{ {
extern const char *Txt_Columns; extern const char *Txt_Columns;
extern const char *Txt_LAYOUT_SIDE_COLUMNS[4]; extern const char *Txt_LAYOUT_SIDE_COLUMNS[4];
@ -371,7 +371,7 @@ static void Prf_PutIconsToSelectSideCols (void)
/**************** Put left icon to hide/show side columns ********************/ /**************** Put left icon to hide/show side columns ********************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_PutLeftIconToHideShowCols (void) void Pre_PutLeftIconToHideShowCols (void)
{ {
extern const char *Txt_Hide_left_column; extern const char *Txt_Hide_left_column;
extern const char *Txt_Show_left_column; extern const char *Txt_Show_left_column;
@ -403,7 +403,7 @@ void Prf_PutLeftIconToHideShowCols (void)
/**************** Put right icon to hide/show side columns *******************/ /**************** Put right icon to hide/show side columns *******************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_PutRigthIconToHideShowCols (void) void Pre_PutRigthIconToHideShowCols (void)
{ {
extern const char *Txt_Hide_right_column; extern const char *Txt_Hide_right_column;
extern const char *Txt_Show_right_column; extern const char *Txt_Show_right_column;
@ -435,80 +435,80 @@ void Prf_PutRigthIconToHideShowCols (void)
/*********************** Change layout of side columns ***********************/ /*********************** Change layout of side columns ***********************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_ChangeSideCols (void) void Pre_ChangeSideCols (void)
{ {
/***** Get param side-columns *****/ /***** Get param side-columns *****/
Gbl.Prefs.SideCols = Prf_GetParamSideCols (); Gbl.Prefs.SideCols = Pre_GetParamSideCols ();
/***** Store side colums in database *****/ /***** Store side colums in database *****/
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
Prf_UpdateSideColsOnUsrDataTable (); Pre_UpdateSideColsOnUsrDataTable ();
/***** Set preferences from current IP *****/ /***** Set preferences from current IP *****/
Prf_SetPrefsFromIP (); Pre_SetPrefsFromIP ();
} }
/*****************************************************************************/ /*****************************************************************************/
/*************************** Hide left side column ***************************/ /*************************** Hide left side column ***************************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_HideLeftCol (void) void Pre_HideLeftCol (void)
{ {
Gbl.Prefs.SideCols &= ~Lay_SHOW_LEFT_COLUMN; // And with 1...101 to hide left column Gbl.Prefs.SideCols &= ~Lay_SHOW_LEFT_COLUMN; // And with 1...101 to hide left column
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
Prf_UpdateSideColsOnUsrDataTable (); Pre_UpdateSideColsOnUsrDataTable ();
/***** Set preferences from current IP *****/ /***** Set preferences from current IP *****/
Prf_SetPrefsFromIP (); Pre_SetPrefsFromIP ();
} }
/*****************************************************************************/ /*****************************************************************************/
/*************************** Hide right side column **************************/ /*************************** Hide right side column **************************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_HideRightCol (void) void Pre_HideRightCol (void)
{ {
Gbl.Prefs.SideCols &= ~Lay_SHOW_RIGHT_COLUMN; // And with 1...110 to hide right column Gbl.Prefs.SideCols &= ~Lay_SHOW_RIGHT_COLUMN; // And with 1...110 to hide right column
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
Prf_UpdateSideColsOnUsrDataTable (); Pre_UpdateSideColsOnUsrDataTable ();
/***** Set preferences from current IP *****/ /***** Set preferences from current IP *****/
Prf_SetPrefsFromIP (); Pre_SetPrefsFromIP ();
} }
/*****************************************************************************/ /*****************************************************************************/
/**************************** Show left side column **************************/ /**************************** Show left side column **************************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_ShowLeftCol (void) void Pre_ShowLeftCol (void)
{ {
Gbl.Prefs.SideCols |= Lay_SHOW_LEFT_COLUMN; // Or with 10 to show left column Gbl.Prefs.SideCols |= Lay_SHOW_LEFT_COLUMN; // Or with 10 to show left column
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
Prf_UpdateSideColsOnUsrDataTable (); Pre_UpdateSideColsOnUsrDataTable ();
/***** Set preferences from current IP *****/ /***** Set preferences from current IP *****/
Prf_SetPrefsFromIP (); Pre_SetPrefsFromIP ();
} }
/*****************************************************************************/ /*****************************************************************************/
/**************************** Show right side column *************************/ /**************************** Show right side column *************************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_ShowRightCol (void) void Pre_ShowRightCol (void)
{ {
Gbl.Prefs.SideCols |= Lay_SHOW_RIGHT_COLUMN; // Or with 01 to show right column Gbl.Prefs.SideCols |= Lay_SHOW_RIGHT_COLUMN; // Or with 01 to show right column
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
Prf_UpdateSideColsOnUsrDataTable (); Pre_UpdateSideColsOnUsrDataTable ();
/***** Set preferences from current IP *****/ /***** Set preferences from current IP *****/
Prf_SetPrefsFromIP (); Pre_SetPrefsFromIP ();
} }
/*****************************************************************************/ /*****************************************************************************/
/************** Update layout of side colums on user data table **************/ /************** Update layout of side colums on user data table **************/
/*****************************************************************************/ /*****************************************************************************/
static void Prf_UpdateSideColsOnUsrDataTable (void) static void Pre_UpdateSideColsOnUsrDataTable (void)
{ {
char Query[512]; char Query[512];
@ -521,7 +521,7 @@ static void Prf_UpdateSideColsOnUsrDataTable (void)
/************** Get parameter used to show/hide side columns *****************/ /************** Get parameter used to show/hide side columns *****************/
/*****************************************************************************/ /*****************************************************************************/
unsigned Prf_GetParamSideCols (void) unsigned Pre_GetParamSideCols (void)
{ {
char UnsignedStr[10+1]; char UnsignedStr[10+1];
unsigned UnsignedNum; // 11 ==> by default, show both side columns unsigned UnsignedNum; // 11 ==> by default, show both side columns

View File

@ -1,7 +1,7 @@
// swad_preference.h: user's preferences // swad_preference.h: user's preferences
#ifndef _SWAD_PRF #ifndef _SWAD_PRE
#define _SWAD_PRF #define _SWAD_PRE
/* /*
SWAD (Shared Workspace At a Distance in Spanish), SWAD (Shared Workspace At a Distance in Spanish),
is a web platform developed at the University of Granada (Spain), is a web platform developed at the University of Granada (Spain),
@ -39,24 +39,24 @@
/***************************** Public prototypes *****************************/ /***************************** Public prototypes *****************************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_EditPrefs (void); void Pre_EditPrefs (void);
void Prf_GetPrefsFromIP (void); void Pre_GetPrefsFromIP (void);
void Prf_SetPrefsFromIP (void); void Pre_SetPrefsFromIP (void);
void Prf_RemoveOldPrefsFromIP (void); void Pre_RemoveOldPrefsFromIP (void);
void Prf_PutSelectorToSelectLanguage (void); void Pre_PutSelectorToSelectLanguage (void);
void Prf_AskChangeLanguage (void); void Pre_AskChangeLanguage (void);
void Prf_ChangeLanguage (void); void Pre_ChangeLanguage (void);
Txt_Language_t Prf_GetParamLanguage (void); Txt_Language_t Pre_GetParamLanguage (void);
void Prf_PutLeftIconToHideShowCols (void); void Pre_PutLeftIconToHideShowCols (void);
void Prf_PutRigthIconToHideShowCols (void); void Pre_PutRigthIconToHideShowCols (void);
void Prf_ChangeSideCols (void); void Pre_ChangeSideCols (void);
void Prf_HideLeftCol (void); void Pre_HideLeftCol (void);
void Prf_HideRightCol (void); void Pre_HideRightCol (void);
void Prf_ShowLeftCol (void); void Pre_ShowLeftCol (void);
void Prf_ShowRightCol (void); void Pre_ShowRightCol (void);
unsigned Prf_GetParamSideCols (void); unsigned Pre_GetParamSideCols (void);
#endif #endif

1111
swad_profile.c Normal file

File diff suppressed because it is too large Load Diff

57
swad_profile.h Normal file
View File

@ -0,0 +1,57 @@
// swad_profile.h: user's public profile
#ifndef _SWAD_PRF
#define _SWAD_PRF
/*
SWAD (Shared Workspace At a Distance in Spanish),
is a web platform developed at the University of Granada (Spain),
and used to support university teaching.
This file is part of SWAD core.
Copyright (C) 1999-2015 Antonio Cañas Vargas
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*****************************************************************************/
/********************************** Headers **********************************/
/*****************************************************************************/
/*****************************************************************************/
/****************************** Public constants *****************************/
/*****************************************************************************/
/*****************************************************************************/
/******************************** Public types *******************************/
/*****************************************************************************/
/*****************************************************************************/
/****************************** Public prototypes ****************************/
/*****************************************************************************/
char *Prf_GetURLPublicProfile (char *URL,const char *NicknameWithoutArroba);
void Prf_RequestUserProfile (void);
void Prf_GetUsrCodAndShowUserProfile (void);
void Prf_ChangeProfileVisibility (void);
void Prf_CalculateFirstClickTime (void);
void Prf_CalculateNumClicks (void);
void Prf_CalculateNumFileViews (void);
void Prf_CalculateNumForPst (void);
void Prf_CalculateNumMsgSnt (void);
void Prf_RemoveUsrFigures (long UsrCod);
void Prf_IncrementNumClicksUsr (long UsrCod);
void Prf_IncrementNumFileViewsUsr (long UsrCod);
void Prf_IncrementNumForPstUsr (long UsrCod);
void Prf_IncrementNumMsgSntUsr (long UsrCod);
#endif

BIN
swad_profile.o Normal file

Binary file not shown.

View File

@ -2030,8 +2030,6 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
extern const char *Txt_First_name; extern const char *Txt_First_name;
extern const char *Txt_Country; extern const char *Txt_Country;
extern const char *Txt_Another_country; extern const char *Txt_Another_country;
extern const char *Txt_Shortcut;
extern const char *Txt_STR_LANG_ID[Txt_NUM_LANGUAGES];
extern const char *Txt_Place_of_origin; extern const char *Txt_Place_of_origin;
extern const char *Txt_Date_of_birth; extern const char *Txt_Date_of_birth;
extern const char *Txt_Institution; extern const char *Txt_Institution;
@ -2045,7 +2043,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
unsigned RecordWidth = Rec_WIDTH_SHARE_RECORD_BIG; unsigned RecordWidth = Rec_WIDTH_SHARE_RECORD_BIG;
char StrRecordWidth[10+1]; char StrRecordWidth[10+1];
unsigned FrameWidth = 10; unsigned FrameWidth = 10;
unsigned Col1Width = 140; unsigned Col1Width = 130;
unsigned Col2Width; unsigned Col2Width;
unsigned Col3Width = 160; unsigned Col3Width = 160;
unsigned Cols1and2Width; unsigned Cols1and2Width;
@ -2379,7 +2377,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/***** User's nickname *****/ /***** User's nickname *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">" "<td class=\"%s\" style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td class=\"HEAD_REC_BIG\"" "<td class=\"HEAD_REC_BIG\""
@ -2413,7 +2411,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
fprintf (Gbl.F.Out,"<td style=\"width:%upx;" fprintf (Gbl.F.Out,"<td style=\"width:%upx;"
" vertical-align:top;\">", " vertical-align:top;\">",
Col3Width); Col3Width);
Net_ShowWebsAndSocialNets (UsrDat->UsrCod); Net_ShowWebsAndSocialNets (UsrDat);
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
@ -2421,7 +2419,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
{ {
/***** User's e-mail *****/ /***** User's e-mail *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">" "<td class=\"%s\" style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2445,7 +2443,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/***** User's ID *****/ /***** User's ID *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">" "<td class=\"%s\" style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2461,7 +2459,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
{ {
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">", " style=\"width:%upx; text-align:right;\">",
ClassForm,Col1Width); ClassForm,Col1Width);
if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) if (TypeOfView == Rec_FORM_MY_COMMON_RECORD)
fprintf (Gbl.F.Out,"%s*",Txt_Sex); fprintf (Gbl.F.Out,"%s*",Txt_Sex);
@ -2586,7 +2584,8 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
} }
else // RoleForm == false else // RoleForm == false
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">" "<td class=\"%s\" style=\"width:%upx;"
" text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2604,7 +2603,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/***** Name *****/ /***** Name *****/
/* Surname 1 */ /* Surname 1 */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">" "<td class=\"%s\" style=\"width:%upx; text-align:right;\">"
"%s", "%s",
ClassForm,Col1Width,Txt_Surname_1); ClassForm,Col1Width,Txt_Surname_1);
if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) if (TypeOfView == Rec_FORM_MY_COMMON_RECORD)
@ -2624,7 +2623,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Surname 2 */ /* Surname 2 */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">" "<td class=\"%s\" style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2644,7 +2643,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* First name */ /* First name */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">" "<td class=\"%s\" style=\"width:%upx; text-align:right;\">"
"%s", "%s",
ClassForm,Col1Width,Txt_First_name); ClassForm,Col1Width,Txt_First_name);
if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) if (TypeOfView == Rec_FORM_MY_COMMON_RECORD)
@ -2666,7 +2665,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Country */ /* Country */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">" " style=\"width:%upx; text-align:right;\">"
"%s", "%s",
ClassForm,Col1Width,Txt_Country); ClassForm,Col1Width,Txt_Country);
if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) if (TypeOfView == Rec_FORM_MY_COMMON_RECORD)
@ -2714,32 +2713,12 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
/***** Shortcut to the user's profile *****/
if (TypeOfView == Rec_RECORD_PUBLIC)
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
"<a href=\"%s/%s?usr=@%s\" class=\"%s\" target=\"_blank\">"
"%s/%s?usr=@%s"
"</a>"
"</td>"
"</tr>",
ClassForm,Col1Width,Txt_Shortcut,
ClassData,Cols2and3Width,
Cfg_HTTPS_URL_SWAD_CGI,Txt_STR_LANG_ID[Gbl.Prefs.Language],UsrDat->Nickname,
ClassData,
Cfg_HTTPS_URL_SWAD_CGI,Txt_STR_LANG_ID[Gbl.Prefs.Language],UsrDat->Nickname);
if (ShowAddressRows) if (ShowAddressRows)
{ {
/* Origin place */ /* Origin place */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">" " style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2761,7 +2740,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Date of birth */ /* Date of birth */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">" " style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2785,7 +2764,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Local address */ /* Local address */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">" " style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2807,7 +2786,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Local phone */ /* Local phone */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">" " style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2829,7 +2808,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Family address */ /* Family address */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">" " style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2851,7 +2830,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Family phone */ /* Family phone */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">" " style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2873,7 +2852,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Common comments for all the courses */ /* Common comments for all the courses */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx;" "<td class=\"%s\" style=\"width:%upx;"
" text-align:left; vertical-align:top;\">" " text-align:right; vertical-align:top;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\" style=\"width:%upx;" "<td colspan=\"2\" class=\"%s\" style=\"width:%upx;"
@ -2903,7 +2882,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Institution */ /* Institution */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">" " style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2928,7 +2907,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Centre */ /* Centre */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">" " style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2955,7 +2934,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Department */ /* Department */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">" " style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2982,7 +2961,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Office */ /* Office */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">" " style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""
@ -2997,7 +2976,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Phone */ /* Phone */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\"" "<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">" " style=\"width:%upx; text-align:right;\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s\"" "<td colspan=\"2\" class=\"%s\""

View File

@ -46,6 +46,7 @@
#include "swad_notice.h" #include "swad_notice.h"
#include "swad_notification.h" #include "swad_notification.h"
#include "swad_parameter.h" #include "swad_parameter.h"
#include "swad_profile.h"
#include "swad_statistic.h" #include "swad_statistic.h"
#include "swad_tab.h" #include "swad_tab.h"
#include "swad_web_service.h" #include "swad_web_service.h"
@ -345,7 +346,7 @@ void Sta_LogAccess (const char *Comments)
/***** Increment my number of clicks *****/ /***** Increment my number of clicks *****/
if (Gbl.Usrs.Me.UsrDat.UsrCod > 0) if (Gbl.Usrs.Me.UsrDat.UsrCod > 0)
Usr_IncrementNumClicksUsr (Gbl.Usrs.Me.UsrDat.UsrCod); Prf_IncrementNumClicksUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -10934,28 +10934,7 @@ const char *Txt_Field_BR_name =
#elif L==8 #elif L==8
"Nome<br />do campo"; "Nome<br />do campo";
#endif #endif
/*
const char *Txt_Figures =
#if L==0
"Xifres";
#elif L==1
"Zahlen";
#elif L==2
"Figures";
#elif L==3
"Cifras";
#elif L==4
"Chiffres";
#elif L==5
"Cifras"; // Okoteve traducción
#elif L==6
"Cifre";
#elif L==7
"Cyfry";
#elif L==8
"N&uacute;meros";
#endif
*/
const char *Txt_File = const char *Txt_File =
#if L==0 #if L==0
"Fitxer"; "Fitxer";

View File

@ -282,7 +282,7 @@ void The_ChangeTheme (void)
} }
/***** Set preferences from current IP *****/ /***** Set preferences from current IP *****/
Prf_SetPrefsFromIP (); Pre_SetPrefsFromIP ();
} }
/*****************************************************************************/ /*****************************************************************************/

File diff suppressed because it is too large Load Diff

View File

@ -210,6 +210,8 @@ void Usr_RestrictLengthAndWriteName (struct UsrData *UsrDat,unsigned MaxChars);
bool Usr_CheckIfUsrIsAdm (long UsrCod,Sco_Scope_t Scope,long Cod); bool Usr_CheckIfUsrIsAdm (long UsrCod,Sco_Scope_t Scope,long Cod);
bool Usr_CheckIfUsrIsSuperuser (long UsrCod); bool Usr_CheckIfUsrIsSuperuser (long UsrCod);
unsigned Usr_GetNumCrssOfUsrWithARole (long UsrCod,Rol_Role_t Role);
unsigned Usr_GetNumUsrsInCrssOfAUsr (long UsrCod,Rol_Role_t UsrRole,Rol_Role_t OthersRole);
bool Usr_CheckIfUsrSharesAnyOfMyCrs (long UsrCod); bool Usr_CheckIfUsrSharesAnyOfMyCrs (long UsrCod);
bool Usr_CheckIfUsrSharesAnyOfMyCrsWithDifferentRole (long UsrCod); bool Usr_CheckIfUsrSharesAnyOfMyCrsWithDifferentRole (long UsrCod);
void Usr_GetMyInstitutions (void); void Usr_GetMyInstitutions (void);
@ -324,18 +326,4 @@ void Usr_ShowWarningNoUsersFound (Rol_Role_t Role);
void Usr_GetAndShowNumUsrsInPlatform (Rol_Role_t Role); void Usr_GetAndShowNumUsrsInPlatform (Rol_Role_t Role);
void Usr_RequestUserProfile (void);
void Usr_GetUsrCodAndShowUserProfile (void);
void Usr_ChangeProfileVisibility (void);
void Usr_CalculateFirstClickTime (void);
void Usr_CalculateNumClicks (void);
void Usr_CalculateNumFileViews (void);
void Usr_CalculateNumForPst (void);
void Usr_CalculateNumMsgSnt (void);
void Usr_RemoveUsrFigures (long UsrCod);
void Usr_IncrementNumClicksUsr (long UsrCod);
void Usr_IncrementNumFileViewsUsr (long UsrCod);
void Usr_IncrementNumForPstUsr (long UsrCod);
void Usr_IncrementNumMsgSntUsr (long UsrCod);
#endif #endif