Version 14.50.4

This commit is contained in:
Antonio Cañas Vargas 2015-01-01 19:39:46 +01:00
parent 4c4e514884
commit 2bda10d434
15 changed files with 161 additions and 149 deletions

View File

@ -33,7 +33,7 @@ body
background-color:white;
font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
}
input {font-size:10pt;}
input {font-size:10pt; vertical-align:middle;}
select {font-size:10pt;}
textarea {font-size:8pt;}
table
@ -149,9 +149,9 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;}
.DAY_WRK_LIGHT {color:#E0E0E0; font-size:8pt;}
.DAY_NO_WORK_LIGHT {color:#FFE0FF; font-size:8pt;}
.DAY_HLD_LIGHT {color:#FFE0E0; font-size:8pt;}
.DAY {border:solid 1px; border-color:#FFFFFF;}
.DAY {border:solid 1px; border-color:white;}
.TODAY {border:solid 1px; border-color:#50B800;}
.DAY_EVENT {border:solid 1px; border-color:#FFFFFF; background-color:#FFF080;}
.DAY_EVENT {border:solid 1px; border-color:white; background-color:#FFF080;}
.TODAY_EVENT {border:solid 1px; border-color:#50B800; background-color:#FFF080;}
/********************************** Notice ***********************************/
@ -264,6 +264,7 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;}
.ICON16x16B {width:16px; height:16px; vertical-align:middle; display:block;}
.ICON28x28 {width:28px; height:28px; vertical-align:middle;}
.ICON32x32 {width:32px; height:32px; vertical-align:middle;}
.ICON32x32B {width:32px; height:32px; vertical-align:middle; display:block;}
.ICON64x64 {width:64px; height:64px; vertical-align:middle;}
/********************************* Frame 10 **********************************/
@ -427,12 +428,12 @@ a:hover img.CENTRE_PHOTO_SHOW
.WHITE_COURSE {color:#4D88A1; font-size:20pt; white-space:nowrap;}
.GREY_COURSE {font-family:Georgia, "DejaVu LGC Serif", "Bitstream Vera Serif", serif; color:#F7F6F5; font-size:20pt; white-space:nowrap;}
.BLUE_COURSE {font-family:Georgia, "DejaVu LGC Serif", "Bitstream Vera Serif", serif; color:#FFFFFF; font-size:20pt; white-space:nowrap;}
.YELLOW_COURSE {font-family:Georgia, "DejaVu LGC Serif", "Bitstream Vera Serif", serif; color:#FFFFFF; font-size:20pt; white-space:nowrap;}
.BLUE_COURSE {font-family:Georgia, "DejaVu LGC Serif", "Bitstream Vera Serif", serif; color:white; font-size:20pt; white-space:nowrap;}
.YELLOW_COURSE {font-family:Georgia, "DejaVu LGC Serif", "Bitstream Vera Serif", serif; color:white; font-size:20pt; white-space:nowrap;}
.WHITE_HEAD {color:#E0E0E0; font-size:10pt; white-space:nowrap;}
.GREY_HEAD {color:#E0E0E0; font-size:10pt; white-space:nowrap;}
.BLUE_HEAD {color:#FFFFFF; font-size:10pt; white-space:nowrap;}
.BLUE_HEAD {color:white; font-size:10pt; white-space:nowrap;}
.YELLOW_HEAD {color:#B3B0B3; font-size:10pt; white-space:nowrap;}
.WHITE_CUR_TIME {color:#808080; font-size:12pt; font-weight:bold;}
@ -442,12 +443,12 @@ a:hover img.CENTRE_PHOTO_SHOW
.WHITE_NOTIF {color:#707070; font-size:10pt; white-space:nowrap;}
.GREY_NOTIF {color:#E0E0E0; font-size:10pt; white-space:nowrap;}
.BLUE_NOTIF {color:#FFFFFF; font-size:10pt; white-space:nowrap;}
.BLUE_NOTIF {color:white; font-size:10pt; white-space:nowrap;}
.YELLOW_NOTIF {color:#B3B0B3; font-size:10pt; white-space:nowrap;}
.WHITE_USR {color:#E0E0E0; font-size:12pt; font-weight:bold; white-space:nowrap;}
.GREY_USR {color:#E0E0E0; font-size:12pt; font-weight:bold; white-space:nowrap;}
.BLUE_USR {color:#FFFFFF; font-size:12pt; font-weight:bold; white-space:nowrap;}
.BLUE_USR {color:white; font-size:12pt; font-weight:bold; white-space:nowrap;}
.YELLOW_USR {color:#B3B0B3; font-size:12pt; font-weight:bold; white-space:nowrap;}
.WHITE_CONNECTED {color:#398000; font-size:10pt;}
@ -773,11 +774,11 @@ a:hover img.CENTRE_PHOTO_SHOW
.PRAC {background-color:#DBE5E9; border:solid 2px; border-color:#E4EEF2 #D0DADE #D0DADE #E4EEF2;}
.TUTO {background-color:#D6E9C3; border:solid 2px; border-color:#DFEEE0 #CAE3B1 #CAE3B1 #DFEEE0;}
.USR_LIST_TYPE_OFF {border:solid 1px; border-color:#FFFFFF;}
.USR_LIST_TYPE_OFF {border:solid 1px; border-color:white;}
.USR_LIST_TYPE_ON {border:solid 1px; border-color:#50B800;}
.LAYOUT_OFF {background-color:white;}
.LAYOUT_ON {background-color:#80E000;}
.LAYOUT_OFF {height:32px; text-align:center; vertical-align:middle; border:solid 1px; border-color:white; background-color:white;}
.LAYOUT_ON {height:32px; text-align:center; vertical-align:middle; border:solid 1px; border-color:#C0DAE4; background-color:#DDECF1;}
.LOG {font-family:"Arial Narrow", "Nimbus Sans L", "DejaVu LGC Sans Condensed", sans-serif; color:#606060; font-size:9pt;}
.LOG_R {font-family:"Arial Narrow", "Nimbus Sans L", "DejaVu LGC Sans Condensed", sans-serif; color:#FF0000; font-size:9pt;}

View File

@ -32,7 +32,7 @@ body
background-color:white;
font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
}
input {font-size:16pt;}
input {font-size:16pt; vertical-align:middle;}
select {font-size:16pt;}
textarea {font-size:12pt;}
table
@ -99,9 +99,9 @@ p {margin:0;}
.DAY_WRK_LIGHT {color:#E0E0E0; font-size:8pt;}
.DAY_NO_WORK_LIGHT {color:#FFE0FF; font-size:8pt;}
.DAY_HLD_LIGHT {color:#FFE0E0; font-size:8pt;}
.DAY {border:solid 1px; border-color:#FFFFFF;}
.DAY {border:solid 1px; border-color:white;}
.TODAY {border:solid 1px; border-color:#50B800;}
.DAY_EVENT {border:solid 1px; border-color:#FFFFFF; background-color:#FFF080;}
.DAY_EVENT {border:solid 1px; border-color:white; background-color:#FFF080;}
.TODAY_EVENT {border:solid 1px; border-color:#50B800; background-color:#FFF080;}
/********************************** Notice ***********************************/
@ -228,6 +228,7 @@ p {margin:0;}
.ICON16x16 {width:16px; height:16px; vertical-align:middle;}
.ICON16x16B {width:16px; height:16px; vertical-align:middle; display:block;}
.ICON32x32 {width:32px; height:32px; vertical-align:middle;}
.ICON32x32B {width:32px; height:32px; vertical-align:middle; display:block;}
.ICON64x64 {width:64px; height:64px; vertical-align:middle;}
/********************************* Frame 10 **********************************/
@ -390,17 +391,17 @@ a:hover img.CENTRE_PHOTO_SHOW
.WHITE_COURSE {color:#4D88A1; font-size:14pt; white-space:nowrap;}
.GREY_COURSE {font-Family:Georgia, "DejaVu LGC Serif", "Bitstream Vera Serif", serif; color:#F7F6F5; font-size:14pt; white-space:nowrap;}
.BLUE_COURSE {font-Family:Georgia, "DejaVu LGC Serif", "Bitstream Vera Serif", serif; color:#FFFFFF; font-size:14pt; white-space:nowrap;}
.YELLOW_COURSE {font-Family:Georgia, "DejaVu LGC Serif", "Bitstream Vera Serif", serif; color:#FFFFFF; font-size:14pt; white-space:nowrap;}
.BLUE_COURSE {font-Family:Georgia, "DejaVu LGC Serif", "Bitstream Vera Serif", serif; color:white; font-size:14pt; white-space:nowrap;}
.YELLOW_COURSE {font-Family:Georgia, "DejaVu LGC Serif", "Bitstream Vera Serif", serif; color:white; font-size:14pt; white-space:nowrap;}
.WHITE_HEAD {color:#E0E0E0; font-size:16pt; white-space:nowrap;}
.GREY_HEAD {color:#E0E0E0; font-size:16pt; white-space:nowrap;}
.BLUE_HEAD {color:#FFFFFF; font-size:16pt; white-space:nowrap;}
.BLUE_HEAD {color:white; font-size:16pt; white-space:nowrap;}
.YELLOW_HEAD {color:#B3B0B3; font-size:16pt; white-space:nowrap;}
.WHITE_USR {color:#E0E0E0; font-size:16pt; font-weight:bold; white-space:nowrap;}
.GREY_USR {color:#E0E0E0; font-size:16pt; font-weight:bold; white-space:nowrap;}
.BLUE_USR {color:#FFFFFF; font-size:16pt; font-weight:bold; white-space:nowrap;}
.BLUE_USR {color:white; font-size:16pt; font-weight:bold; white-space:nowrap;}
.YELLOW_USR {color:#B3B0B3; font-size:16pt; font-weight:bold; white-space:nowrap;}
.WHITE_CONNECTED {color:#398000; font-size:10pt;}
@ -584,11 +585,11 @@ a:hover img.CENTRE_PHOTO_SHOW
.CUR_TIME {color:#BAD2DA; font-size:12pt; font-weight:bold;}
.USR_LIST_TYPE_OFF {border:solid 1px; border-color:#FFFFFF;}
.USR_LIST_TYPE_OFF {border:solid 1px; border-color:white;}
.USR_LIST_TYPE_ON {border:solid 1px; border-color:#50B800;}
.LAYOUT_OFF {background-color:white;}
.LAYOUT_ON {background-color:#80E000;}
.LAYOUT_OFF {height:32px; text-align:center; vertical-align:middle; border:solid 1px; border-color:white; background-color:white;}
.LAYOUT_ON {height:32px; text-align:center; vertical-align:middle; border:solid 1px; border-color:#C0DAE4; background-color:#DDECF1;}
.LOG {font-Family:"Arial Narrow", "Nimbus Sans L", "DejaVu LGC Sans Condensed", sans-serif; color:#606060; font-size:9pt;}
.LOG_R {font-Family:"Arial Narrow", "Nimbus Sans L", "DejaVu LGC Sans Condensed", sans-serif; color:#FF0000; font-size:9pt;}

View File

@ -998,6 +998,7 @@ Profile:
856. ActDetMyPho Receive my photo and detect faces on it
857. ActUpdMyPho Update my photo
858. ActRemMyPho Remove my photo
878. ActChgPubPho Change photo privacity
859. ActReqEdiMyIns Request the edition of my institution, centre and department
860. ActChgCtyMyIns Change the country of my institution
@ -1020,7 +1021,6 @@ Profile:
875. ActShoLftCol Show left side column
876. ActShoRgtCol Show right side column
877. ActChgIco Change icon set
878. ActChgPubPho Change photo privacity
879. ActChgNtfPrf Change whether to notify by e-mail new messages
880. ActPrnUsrQR Show my QR code ready to print
881. ActPrnMyTimTbl Show the timetable listo to impresión of all my courses
@ -2220,6 +2220,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActDetMyPho */{ 693,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Pho_RecMyPhotoDetFaces ,NULL},
/* ActUpdMyPho */{ 694,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_UpdateMyPhoto1 ,Pho_UpdateMyPhoto2 ,NULL},
/* ActRemMyPho */{ 428,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_RemoveMyPhoto1 ,Pho_RemoveMyPhoto2 ,NULL},
/* ActChgPubPho */{ 774,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_ChangePublicPhoto ,Rec_ShowMyCommonRecordUpd ,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},
@ -2242,7 +2243,6 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActShoLftCol */{ 670,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_ShowLeftCol ,Prf_EditPrefs ,NULL},
/* ActShoRgtCol */{ 671,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_ShowRightCol ,Prf_EditPrefs ,NULL},
/* ActChgIco */{1092,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Ico_ChangeIconSet ,Prf_EditPrefs ,NULL},
/* ActChgPubPho */{ 774,-1,TabPrf,ActEdiPrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_ChangePublicPhoto ,Prf_EditPrefs ,NULL},
/* ActChgNtfPrf */{ 775,-1,TabPrf,ActEdiPrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Ntf_ChangeNotifyEvents ,Prf_EditPrefs ,NULL},
/* ActPrnUsrQR */{1022,-1,TabPrf,ActFrmUsrAcc ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,QR_PrintQRCode ,NULL},

View File

@ -1065,29 +1065,29 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
#define ActDetMyPho (ActSeeAllStaCrs+29)
#define ActUpdMyPho (ActSeeAllStaCrs+30)
#define ActRemMyPho (ActSeeAllStaCrs+31)
#define ActChgPubPho (ActSeeAllStaCrs+32)
#define ActReqEdiMyIns (ActSeeAllStaCrs+32)
#define ActChgCtyMyIns (ActSeeAllStaCrs+33)
#define ActChgMyIns (ActSeeAllStaCrs+34)
#define ActChgMyCtr (ActSeeAllStaCrs+35)
#define ActChgMyDpt (ActSeeAllStaCrs+36)
#define ActChgMyOff (ActSeeAllStaCrs+37)
#define ActChgMyOffPho (ActSeeAllStaCrs+38)
#define ActReqEdiMyIns (ActSeeAllStaCrs+33)
#define ActChgCtyMyIns (ActSeeAllStaCrs+34)
#define ActChgMyIns (ActSeeAllStaCrs+35)
#define ActChgMyCtr (ActSeeAllStaCrs+36)
#define ActChgMyDpt (ActSeeAllStaCrs+37)
#define ActChgMyOff (ActSeeAllStaCrs+38)
#define ActChgMyOffPho (ActSeeAllStaCrs+39)
#define ActReqEdiMyNet (ActSeeAllStaCrs+39)
#define ActChgMyNet (ActSeeAllStaCrs+40)
#define ActReqEdiMyNet (ActSeeAllStaCrs+40)
#define ActChgMyNet (ActSeeAllStaCrs+41)
#define ActChgLay (ActSeeAllStaCrs+41)
#define ActChgThe (ActSeeAllStaCrs+42)
#define ActReqChgLan (ActSeeAllStaCrs+43)
#define ActChgLan (ActSeeAllStaCrs+44)
#define ActChgCol (ActSeeAllStaCrs+45)
#define ActHidLftCol (ActSeeAllStaCrs+46)
#define ActHidRgtCol (ActSeeAllStaCrs+47)
#define ActShoLftCol (ActSeeAllStaCrs+48)
#define ActShoRgtCol (ActSeeAllStaCrs+49)
#define ActChgIco (ActSeeAllStaCrs+50)
#define ActChgPubPho (ActSeeAllStaCrs+51)
#define ActChgLay (ActSeeAllStaCrs+42)
#define ActChgThe (ActSeeAllStaCrs+43)
#define ActReqChgLan (ActSeeAllStaCrs+44)
#define ActChgLan (ActSeeAllStaCrs+45)
#define ActChgCol (ActSeeAllStaCrs+46)
#define ActHidLftCol (ActSeeAllStaCrs+47)
#define ActHidRgtCol (ActSeeAllStaCrs+48)
#define ActShoLftCol (ActSeeAllStaCrs+49)
#define ActShoRgtCol (ActSeeAllStaCrs+50)
#define ActChgIco (ActSeeAllStaCrs+51)
#define ActChgNtfPrf (ActSeeAllStaCrs+52)
#define ActPrnUsrQR (ActSeeAllStaCrs+53)

View File

@ -35,11 +35,12 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.50.3 (2015/01/01)"
#define Log_PLATFORM_VERSION "SWAD 14.50.4 (2015/01/01)"
// Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h | tail -1
/*
Version 14.50.4 :Jan 01, 2014 Changes in preferences and photos. (172705 lines)
Version 14.50.3 :Jan 01, 2014 Changes in layout of preferences. (172691 lines)
Version 14.50.2 :Jan 01, 2014 Changes in CSS. (172739 lines)
Version 14.50.1 :Dec 31, 2014 Horizontal menu (not finished). (172736 lines)

View File

@ -75,13 +75,14 @@ void Ico_PutIconsToSelectIconSet (void)
IconSet < Ico_NUM_ICON_SETS;
IconSet++)
{
fprintf (Gbl.F.Out,"<td class=\"%s\" style=\"text-align:center;\">",
fprintf (Gbl.F.Out,"<td class=\"%s\">",
IconSet == Gbl.Prefs.IconSet ? "LAYOUT_ON" :
"LAYOUT_OFF");
Act_FormStart (ActChgIco);
Par_PutHiddenParamString ("IconSet",Ico_IconSetId[IconSet]);
fprintf (Gbl.F.Out,"<input type=\"image\" src=\"%s/%s/%s/%s/heart32x32.gif\""
" alt=\"%s\" title=\"%s\" class=\"ICON32x32\" />"
" alt=\"%s\" title=\"%s\" class=\"ICON32x32B\""
" style=\"margin:0 auto;\" />"
"</form>"
"</td>",
Gbl.Prefs.IconsURL,

View File

@ -2033,13 +2033,14 @@ void Lay_PutIconsToSelectLayout (void)
Layout < Lay_NUM_LAYOUTS;
Layout++)
{
fprintf (Gbl.F.Out,"<td class=\"%s\" style=\"text-align:center;\">",
fprintf (Gbl.F.Out,"<td class=\"%s\">",
Layout == Gbl.Prefs.Layout ? "LAYOUT_ON" :
"LAYOUT_OFF");
Act_FormStart (ActChgLay);
Par_PutHiddenParamUnsigned ("Layout",(unsigned) Layout);
fprintf (Gbl.F.Out,"<input type=\"image\" src=\"%s/%s32x32.gif\""
" alt=\"%s\" title=\"%s\" class=\"ICON32x32\" />"
" alt=\"%s\" title=\"%s\" class=\"ICON32x32B\""
" style=\"margin:0 auto;\" />"
"</form>"
"</td>",
Gbl.Prefs.IconsURL,

View File

@ -1648,7 +1648,7 @@ void Ntf_MarkAllNotifAsSeen (void)
void Ntf_PutFormChangeNotifSentByEMail (void)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
extern const char *Txt_Change_preferences;
extern const char *Txt_Save_changes;
extern const char *Txt_Notifications;
extern const char *Txt_Create_BR_notification;
extern const char *Txt_Notify_me_BR_by_e_mail;
@ -1705,7 +1705,7 @@ void Ntf_PutFormChangeNotifSentByEMail (void)
/***** End form *****/
fprintf (Gbl.F.Out,"</table>");
Lay_PutSendButton (Txt_Change_preferences);
Lay_PutSendButton (Txt_Save_changes);
fprintf (Gbl.F.Out,"</form>");
/***** End table *****/

View File

@ -79,12 +79,12 @@ const char *Pho_StrAvgPhotoPrograms[Pho_NUM_AVERAGE_PHOTO_TYPES] =
/*****************************************************************************/
static void Pho_PutLinkToRemoveUsrPhoto (const struct UsrData *UsrDat);
static void Pho_UpdatePhoto1 (struct UsrData *UsrDat);
static void Pho_UpdatePhoto2 (void);
static void Pho_ClearPhotoName (long UsrCod);
static void Pho_PutFormPublicPhoto (void);
static long Pho_GetDegWithAvgPhotoLeastRecentlyUpdated (void);
static long Pho_GetTimeAvgPhotoWasComputed (long DegCod);
static long Pho_GetTimeToComputeAvgPhoto (long DegCod);
@ -137,7 +137,7 @@ bool Pho_CheckIfICanChangeOtherUsrPhoto (long UsrCod)
}
/*****************************************************************************/
/********* Put a link to the action used to request user's photo *************/
/********** Put a link to the action used to request user's photo ************/
/*****************************************************************************/
void Pho_PutLinkToChangeUsrPhoto (const struct UsrData *UsrDat)
@ -178,7 +178,6 @@ static void Pho_PutLinkToRemoveUsrPhoto (const struct UsrData *UsrDat)
extern const char *Txt_Remove_photo;
/***** Link for changing / uploading the photo *****/
fprintf (Gbl.F.Out,"<div style=\"text-align:center;\">");
if (UsrDat->UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod) // It's me
Act_FormStart (ActRemMyPho);
else // Not me
@ -189,8 +188,7 @@ static void Pho_PutLinkToRemoveUsrPhoto (const struct UsrData *UsrDat)
Act_LinkFormSubmit (Txt_Remove_photo,The_ClassFormul[Gbl.Prefs.Theme]);
Lay_PutSendIcon ("delon",Txt_Remove_photo,Txt_Remove_photo);
fprintf (Gbl.F.Out,"</form>"
"</div>");
fprintf (Gbl.F.Out,"</form>");
}
/*****************************************************************************/
@ -236,14 +234,18 @@ void Pho_ReqPhoto (const struct UsrData *UsrDat,bool PhotoExists,const char *Pho
/***** Write message about photo presence or ausence *****/
if (PhotoExists) // User has photo
{
Pho_PutLinkToRemoveUsrPhoto (UsrDat); // Link (form) to remove photo
/***** Forms to remove photo and make it public *****/
fprintf (Gbl.F.Out,"<div style=\"text-align:center;\">");
Pho_PutLinkToRemoveUsrPhoto (UsrDat);
Pho_PutFormPublicPhoto ();
fprintf (Gbl.F.Out,"</div>");
/* Show photo */
Pho_ShowUsrPhoto (UsrDat,PhotoURL,"PHOTO150x200",true);
}
Lay_ShowAlert (Lay_INFO,Txt_You_can_send_a_file_with_an_image_in_jpg_format_);
/***** Write a form to send photo *****/
/***** Form to send photo *****/
if (ItsMe)
Act_FormStart (ActDetMyPho);
else
@ -1006,6 +1008,62 @@ void Pho_ShowUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
fprintf (Gbl.F.Out," />");
}
/*****************************************************************************/
/*********************** Select public / private photo ***********************/
/*****************************************************************************/
static void Pho_PutFormPublicPhoto (void)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
extern const char *Txt_Public_photo;
/***** Start form *****/
Act_FormStart (ActChgPubPho);
/***** Checkbox to select between public or private photo *****/
fprintf (Gbl.F.Out,"<input type=\"checkbox\" name=\"PublicPhoto\" value=\"Y\"");
if (Gbl.Usrs.Me.UsrDat.PublicPhoto)
fprintf (Gbl.F.Out," checked=\"checked\"");
fprintf (Gbl.F.Out," onchange=\"javascript:document.getElementById('%s').submit();\" />"
"<span class=\"%s\">%s</span>",
Gbl.FormId,
The_ClassFormul[Gbl.Prefs.Theme],Txt_Public_photo);
/***** End form *****/
fprintf (Gbl.F.Out,"</form>");
}
/*****************************************************************************/
/********** Get parameter with public / private photo from form **************/
/*****************************************************************************/
bool Pho_GetParamPublicPhoto (void)
{
char YN[1+1];
Par_GetParToText ("PublicPhoto",YN,1);
return (Str_ConvertToUpperLetter (YN[0]) == 'Y');
}
/*****************************************************************************/
/*********************** Change public / private photo ***********************/
/*****************************************************************************/
void Pho_ChangePublicPhoto (void)
{
char Query[512];
/***** Get param with public/private photo *****/
Gbl.Usrs.Me.UsrDat.PublicPhoto = Pho_GetParamPublicPhoto ();
/***** Store public/private photo in database *****/
sprintf (Query,"UPDATE usr_data SET PublicPhoto='%c' WHERE UsrCod='%ld'",
Gbl.Usrs.Me.UsrDat.PublicPhoto ? 'Y' :
'N',
Gbl.Usrs.Me.UsrDat.UsrCod);
DB_QueryUPDATE (Query,"can not update your preference about public photo");
}
/*****************************************************************************/
/******** Calculate average photos of all students from each degree **********/
/*****************************************************************************/

View File

@ -101,6 +101,9 @@ void Pho_UpdatePhotoName (struct UsrData *UsrDat);
void Pho_ShowUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
const char *ClassPhoto,bool Zoom);
bool Pho_GetParamPublicPhoto (void);
void Pho_ChangePublicPhoto (void);
void Pho_CalcPhotoDegree (void);
void Pho_RemoveObsoleteStatDegrees (void);
void Pho_ShowPhotoDegree (void);

View File

@ -54,7 +54,6 @@ extern struct Globals Gbl;
/*****************************************************************************/
static void Prf_UpdateSideColsOnUsrDataTable (void);
static void Prf_PutFormPublicPhoto (void);
/*****************************************************************************/
/***************************** Edit preferences ******************************/
@ -75,7 +74,7 @@ void Prf_EditPrefs (void)
"</tr>");
Lay_EndRoundFrameTable10 ();
/***** Layout & icons *****/
/***** Layout, icons, theme & side columns *****/
fprintf (Gbl.F.Out,"<table style=\"margin:0 auto; border-spacing:10px;\">"
"<tr>"
"<td>");
@ -84,12 +83,6 @@ void Prf_EditPrefs (void)
"<td>");
Ico_PutIconsToSelectIconSet ();
fprintf (Gbl.F.Out,"</td>"
"</tr>"
"</table>");
/***** Theme & side colums *****/
fprintf (Gbl.F.Out,"<table style=\"margin:0 auto; border-spacing:10px;\">"
"<tr>"
"<td>");
The_PutIconsToSelectTheme ();
fprintf (Gbl.F.Out,"</td>"
@ -101,9 +94,6 @@ void Prf_EditPrefs (void)
if (Gbl.Usrs.Me.Logged)
{
/***** Public / private photo *****/
Prf_PutFormPublicPhoto ();
/***** Automatic e-mail to notify of new events *****/
Ntf_PutFormChangeNotifSentByEMail ();
@ -342,14 +332,14 @@ void Prf_PutIconsToSelectSideCols (void)
SideCols <= Lay_SHOW_BOTH_COLUMNS;
SideCols++)
{
fprintf (Gbl.F.Out,"<td class=\"%s\" style=\"text-align:center;\">",
fprintf (Gbl.F.Out,"<td class=\"%s\">",
SideCols == Gbl.Prefs.SideCols ? "LAYOUT_ON" :
"LAYOUT_OFF");
Act_FormStart (ActChgCol);
Par_PutHiddenParamUnsigned ("SideCols",SideCols);
fprintf (Gbl.F.Out,"<input type=\"image\" src=\"%s/layout%u%u_32x20.gif\""
" alt=\"%s\" title=\"%s\""
" style=\"display:block; width:32px; height:20px;\" />"
" alt=\"%s\" title=\"%s\" style=\"display:block;"
" width:32px; height:20px; margin:0 auto;\" />"
"</form>"
"</td>",
Gbl.Prefs.IconsURL,
@ -529,65 +519,3 @@ unsigned Prf_GetParamSideCols (void)
return UnsignedNum;
}
/*****************************************************************************/
/*********************** Select public / private photo ***********************/
/*****************************************************************************/
static void Prf_PutFormPublicPhoto (void)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
extern const char *Txt_Public_photo;
/***** Start form *****/
Lay_StartRoundFrameTable10 (NULL,2,Txt_Public_photo);
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\">",
The_ClassFormul[Gbl.Prefs.Theme]);
Act_FormStart (ActChgPubPho);
/***** Checkbox to select between public or private photo *****/
fprintf (Gbl.F.Out,"<input type=\"checkbox\" name=\"PublicPhoto\" value=\"Y\"");
if (Gbl.Usrs.Me.UsrDat.PublicPhoto)
fprintf (Gbl.F.Out," checked=\"checked\"");
fprintf (Gbl.F.Out," onchange=\"javascript:document.getElementById('%s').submit();\" />",
Gbl.FormId);
fprintf (Gbl.F.Out,"%s",Txt_Public_photo);
/***** End form *****/
fprintf (Gbl.F.Out,"</form>"
"</td>"
"</tr>");
Lay_EndRoundFrameTable10 ();
}
/*****************************************************************************/
/********** Get parameter with public / private photo from form **************/
/*****************************************************************************/
bool Prf_GetParamPublicPhoto (void)
{
char YN[1+1];
Par_GetParToText ("PublicPhoto",YN,1);
return (Str_ConvertToUpperLetter (YN[0]) == 'Y');
}
/*****************************************************************************/
/*********************** Change public / private photo ***********************/
/*****************************************************************************/
void Prf_ChangePublicPhoto (void)
{
char Query[512];
/***** Get param with public/private photo *****/
Gbl.Usrs.Me.UsrDat.PublicPhoto = Prf_GetParamPublicPhoto ();
/***** Store public/private photo in database *****/
sprintf (Query,"UPDATE usr_data SET PublicPhoto='%c' WHERE UsrCod='%ld'",
Gbl.Usrs.Me.UsrDat.PublicPhoto ? 'Y' :
'N',
Gbl.Usrs.Me.UsrDat.UsrCod);
DB_QueryUPDATE (Query,"can not update your preference about public photo");
}

View File

@ -60,7 +60,4 @@ void Prf_ShowLeftCol (void);
void Prf_ShowRightCol (void);
unsigned Prf_GetParamSideCols (void);
bool Prf_GetParamPublicPhoto (void);
void Prf_ChangePublicPhoto (void);
#endif

View File

@ -1862,7 +1862,7 @@ void Rec_ShowFormMyCommRecord (void)
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_including_your_sex;
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_including_your_name;
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_including_your_country_nationality;
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
/***** If user has no sex, name and surname... *****/
if (Gbl.Usrs.Me.UsrDat.Sex == Usr_SEX_UNKNOWN)
@ -1882,7 +1882,7 @@ void Rec_ShowFormMyCommRecord (void)
/***** My record *****/
Act_FormStart (ActChgMyData);
Rec_ShowCommonRecord (Rec_FORM_MY_COMMON_RECORD,&Gbl.Usrs.Me.UsrDat);
Lay_PutSendButton (Txt_Save);
Lay_PutSendButton (Txt_Save_changes);
Rec_WriteLinkToDataProtectionClause ();
fprintf (Gbl.F.Out,"</form>"
"</div>");
@ -2979,7 +2979,7 @@ void Rec_GetUsrExtraDataFromRecordForm (struct UsrData *UsrDat)
UsrDat->Sex = (Usr_Sex_t) UnsignedNum;
/***** Get whether photo is public from form *****/
UsrDat->PublicPhoto = Prf_GetParamPublicPhoto ();
UsrDat->PublicPhoto = Pho_GetParamPublicPhoto ();
/***** Get country code *****/
Par_GetParToText ("OthCtyCod",LongStr,1+10);

View File

@ -16247,7 +16247,7 @@ const char *Txt_MENU_TITLE[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
#elif L==1
"Dokumente"
#elif L==2
"Documents area"
"Documents"
#elif L==3
"Documentos"
#elif L==4
@ -17283,7 +17283,7 @@ const char *Txt_MENU_TITLE[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
#elif L==1
"Aktentasche"
#elif L==2
"Virtual pendrive"
"Briefcase"
#elif L==3
"Malet&iacute;n"
#elif L==4
@ -17291,9 +17291,9 @@ const char *Txt_MENU_TITLE[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
#elif L==5
"Malet&iacute;n" // Okoteve traducción
#elif L==6
"Penna USB"
"Cartella"
#elif L==7
"Pendrive"
"Teczka"
#elif L==8
"Pasta"
#endif
@ -32006,6 +32006,27 @@ const char *Txt_Save =
"Salvar";
#endif
const char *Txt_Save_changes =
#if L==0
"Desar canvis";
#elif L==1
"&Auml;nderungen speichern";
#elif L==2
"Save changes";
#elif L==3
"Guardar cambios";
#elif L==4
"Enregistrer les modifications";
#elif L==5
"&Ntilde;ongatu";
#elif L==6
"Salva modifiche";
#elif L==7
"Zapisz zmiany";
#elif L==8
"Salvar altera&ccedil;&otilde;es";
#endif
const char *Txt_Save_file_properties =
#if L==0
"Guardar les propietats del fitxer";
@ -41805,17 +41826,17 @@ const char *Txt_The_ZIP_file_has_been_unzipped_successfully =
const char *Txt_Theme_SKIN =
#if L==0
"Tema (colors)";
"Tema";
#elif L==1
"Skin";
#elif L==2
"Theme";
#elif L==3
"Tema (colores)";
"Tema";
#elif L==4
"Th&egrave;me";
#elif L==5
"Tema (colores)"; // Okoteve traducción
"Tema"; // Okoteve traducción
#elif L==6
"Tema";
#elif L==7

View File

@ -239,14 +239,14 @@ void The_PutIconsToSelectTheme (void)
Theme < The_NUM_THEMES;
Theme++)
{
fprintf (Gbl.F.Out,"<td class=\"%s\" style=\"text-align:center;\">",
fprintf (Gbl.F.Out,"<td class=\"%s\">",
Theme == Gbl.Prefs.Theme ? "LAYOUT_ON" :
"LAYOUT_OFF");
Act_FormStart (ActChgThe);
Par_PutHiddenParamString ("Theme",The_ThemeId[Theme]);
fprintf (Gbl.F.Out,"<input type=\"image\" src=\"%s/%s/%s/theme_32x20.gif\""
" alt=\"%s\" title=\"%s\" style=\"display:block;"
" width:32px; height:20px;\" />"
" width:32px; height:20px; margin:0 auto;\" />"
"</form>"
"</td>",
Gbl.Prefs.IconsURL,