mirror of https://github.com/acanas/swad-core.git
Version 14.50.4
This commit is contained in:
parent
4c4e514884
commit
2bda10d434
|
@ -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;}
|
||||
|
|
|
@ -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;}
|
||||
|
|
|
@ -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},
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 *****/
|
||||
|
|
74
swad_photo.c
74
swad_photo.c
|
@ -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 **********/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
35
swad_text.c
35
swad_text.c
|
@ -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í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í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
|
||||
"Änderungen speichern";
|
||||
#elif L==2
|
||||
"Save changes";
|
||||
#elif L==3
|
||||
"Guardar cambios";
|
||||
#elif L==4
|
||||
"Enregistrer les modifications";
|
||||
#elif L==5
|
||||
"Ñongatu";
|
||||
#elif L==6
|
||||
"Salva modifiche";
|
||||
#elif L==7
|
||||
"Zapisz zmiany";
|
||||
#elif L==8
|
||||
"Salvar alteraçõ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ème";
|
||||
#elif L==5
|
||||
"Tema (colores)"; // Okoteve traducción
|
||||
"Tema"; // Okoteve traducción
|
||||
#elif L==6
|
||||
"Tema";
|
||||
#elif L==7
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue