Version18.83.1

This commit is contained in:
Antonio Cañas Vargas 2019-03-23 13:10:31 +01:00
parent 3ad087f987
commit db179a0dca
7 changed files with 64 additions and 47 deletions

View File

@ -459,10 +459,13 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.86 (2019-03-22)"
#define Log_PLATFORM_VERSION "SWAD 18.86.1 (2019-03-23)"
#define CSS_FILE "swad18.85.1.css"
#define JS_FILE "swad18.85.js"
/*
Version 18.86.1: Mar 23, 2019 Changes in writing of a floating point number.
Mask applied to figure about privacy.
Mash applied when receiving form with privacy. (240944 lines)
Version 18.86: Mar 22, 2019 Profile visibility is splitted into basic and extended.
Fixed bug storing media in database. (240928 lines)
6 changes necessary in database:

View File

@ -44,6 +44,7 @@
#include "swad_logo.h"
#include "swad_network.h"
#include "swad_notice.h"
#include "swad_privacy.h"
#include "swad_profile.h"
#include "swad_role.h"
#include "swad_table.h"
@ -169,7 +170,8 @@ static void Fig_GetAndShowMsgsStats (void);
static void Fig_GetAndShowSurveysStats (void);
static void Fig_GetAndShowNumUsrsPerPrivacy (void);
static void Fig_GetAndShowNumUsrsPerPrivacyForAnObject (const char *TxtObject,
const char *FieldName);
const char *FieldName,
unsigned MaskAllowedVisibility);
static void Fig_GetAndShowNumUsrsPerCookies (void);
static void Fig_GetAndShowNumUsrsPerLanguage (void);
static void Fig_GetAndShowNumUsrsPerFirstDayOfWeek (void);
@ -4817,13 +4819,16 @@ static void Fig_GetAndShowNumUsrsPerPrivacy (void)
/***** Privacy for photo *****/
Fig_GetAndShowNumUsrsPerPrivacyForAnObject (Txt_Photo,
"PhotoVisibility");
"PhotoVisibility",
Pri_PHOTO_ALLOWED_VIS);
/***** Privacy for public profile *****/
Fig_GetAndShowNumUsrsPerPrivacyForAnObject (Txt_Basic_public_profile,
"BaPrfVisibility");
"BaPrfVisibility",
Pri_BASIC_PROFILE_ALLOWED_VIS);
Fig_GetAndShowNumUsrsPerPrivacyForAnObject (Txt_Extended_public_profile,
"ExPrfVisibility");
"ExPrfVisibility",
Pri_EXTENDED_PROFILE_ALLOWED_VIS);
/***** End table and box *****/
Box_EndBoxTable ();
@ -4834,7 +4839,8 @@ static void Fig_GetAndShowNumUsrsPerPrivacy (void)
/*****************************************************************************/
static void Fig_GetAndShowNumUsrsPerPrivacyForAnObject (const char *TxtObject,
const char *FieldName)
const char *FieldName,
unsigned MaskAllowedVisibility)
{
extern const char *Txt_No_of_users;
extern const char *Txt_PERCENT_of_users;
@ -4865,37 +4871,39 @@ static void Fig_GetAndShowNumUsrsPerPrivacyForAnObject (const char *TxtObject,
for (Visibility = (Pri_Visibility_t) 0;
Visibility < Pri_NUM_OPTIONS_PRIVACY;
Visibility++)
{
/* Get the number of users who have chosen this privacy option from database */
if (asprintf (&SubQuery,"usr_data.%s='%s'",
FieldName,Pri_VisibilityDB[Visibility]) < 0)
Lay_NotEnoughMemoryExit ();
NumUsrs[Visibility] = Fig_GetNumUsrsWhoChoseAnOption (SubQuery);
free ((void *) SubQuery);
if (MaskAllowedVisibility & (1 << Visibility))
{
/* Get the number of users who have chosen this privacy option from database */
if (asprintf (&SubQuery,"usr_data.%s='%s'",
FieldName,Pri_VisibilityDB[Visibility]) < 0)
Lay_NotEnoughMemoryExit ();
NumUsrs[Visibility] = Fig_GetNumUsrsWhoChoseAnOption (SubQuery);
free ((void *) SubQuery);
/* Update total number of users */
NumUsrsTotal += NumUsrs[Visibility];
}
/* Update total number of users */
NumUsrsTotal += NumUsrs[Visibility];
}
/***** Write number of users who have chosen each privacy option *****/
for (Visibility = (Pri_Visibility_t) 0;
Visibility < Pri_NUM_OPTIONS_PRIVACY;
Visibility++)
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"DAT LEFT_MIDDLE\">"
"%s"
"</td>"
"<td class=\"DAT RIGHT_MIDDLE\">"
"%u"
"</td>"
"<td class=\"DAT RIGHT_MIDDLE\">"
"%5.2f%%"
"</td>"
"</tr>",
Txt_PRIVACY_OPTIONS[Visibility],NumUsrs[Visibility],
NumUsrsTotal ? (float) NumUsrs[Visibility] * 100.0 /
(float) NumUsrsTotal :
0);
if (MaskAllowedVisibility & (1 << Visibility))
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"DAT LEFT_MIDDLE\">"
"%s"
"</td>"
"<td class=\"DAT RIGHT_MIDDLE\">"
"%u"
"</td>"
"<td class=\"DAT RIGHT_MIDDLE\">"
"%5.2f%%"
"</td>"
"</tr>",
Txt_PRIVACY_OPTIONS[Visibility],NumUsrs[Visibility],
NumUsrsTotal ? (float) NumUsrs[Visibility] * 100.0 /
(float) NumUsrsTotal :
0);
}
/*****************************************************************************/

View File

@ -1310,7 +1310,8 @@ void Pho_ChangePhotoVisibility (void)
extern const char *Pri_VisibilityDB[Pri_NUM_OPTIONS_PRIVACY];
/***** Get param with public/private photo *****/
Gbl.Usrs.Me.UsrDat.PhotoVisibility = Pri_GetParamVisibility ("VisPho");
Gbl.Usrs.Me.UsrDat.PhotoVisibility = Pri_GetParamVisibility ("VisPho",
Pri_PHOTO_ALLOWED_VIS);
/***** Store public/private photo in database *****/
DB_QueryUPDATE ("can not update your preference about photo visibility",

View File

@ -220,13 +220,17 @@ Pri_Visibility_t Pri_GetVisibilityFromStr (const char *Str)
/**************** Get parameter with visibility from form ********************/
/*****************************************************************************/
Pri_Visibility_t Pri_GetParamVisibility (const char *ParamName)
Pri_Visibility_t Pri_GetParamVisibility (const char *ParamName,
unsigned MaskAllowedVisibility)
{
return (Pri_Visibility_t)
Par_GetParToUnsignedLong (ParamName,
0,
Pri_NUM_OPTIONS_PRIVACY - 1,
(unsigned long) Pri_VISIBILITY_UNKNOWN);
Pri_Visibility_t Visibility;
Visibility = (Pri_Visibility_t) Par_GetParToUnsignedLong (ParamName,
0,
Pri_NUM_OPTIONS_PRIVACY - 1,
(unsigned long) Pri_VISIBILITY_UNKNOWN);
return (MaskAllowedVisibility & (1 << Visibility)) ? Visibility :
Pri_VISIBILITY_UNKNOWN;
}
/*****************************************************************************/

View File

@ -62,7 +62,8 @@
void Pri_EditMyPrivacy (void);
Pri_Visibility_t Pri_GetVisibilityFromStr (const char *Str);
Pri_Visibility_t Pri_GetParamVisibility (const char *ParamName);
Pri_Visibility_t Pri_GetParamVisibility (const char *ParamName,
unsigned MaskAllowedVisibility);
bool Pri_ShowingIsAllowed (Pri_Visibility_t Visibility,struct UsrData *UsrDat);

View File

@ -353,7 +353,8 @@ void Prf_ChangeBasicProfileVis (void)
extern const char *Pri_VisibilityDB[Pri_NUM_OPTIONS_PRIVACY];
/***** Get param with public/private photo *****/
Gbl.Usrs.Me.UsrDat.BaPrfVisibility = Pri_GetParamVisibility ("VisBasPrf");
Gbl.Usrs.Me.UsrDat.BaPrfVisibility = Pri_GetParamVisibility ("VisBasPrf",
Pri_BASIC_PROFILE_ALLOWED_VIS);
/***** Store public/private photo in database *****/
DB_QueryUPDATE ("can not update your preference"
@ -372,7 +373,8 @@ void Prf_ChangeExtendedProfileVis (void)
extern const char *Pri_VisibilityDB[Pri_NUM_OPTIONS_PRIVACY];
/***** Get param with public/private photo *****/
Gbl.Usrs.Me.UsrDat.ExPrfVisibility = Pri_GetParamVisibility ("VisExtPrf");
Gbl.Usrs.Me.UsrDat.ExPrfVisibility = Pri_GetParamVisibility ("VisExtPrf",
Pri_EXTENDED_PROFILE_ALLOWED_VIS);
/***** Store public/private photo in database *****/
DB_QueryUPDATE ("can not update your preference"

View File

@ -896,16 +896,14 @@ void Str_WriteFloatNum (FILE *FileDst,float Number)
if (IntegerPart != 0.0)
Format = "%.1f";
else if (FractionaryPart >= 0.095)
Format = "%.1f";
else if (FractionaryPart >= 0.0095)
Format = "%.2f";
else if (FractionaryPart >= 0.00095)
else if (FractionaryPart >= 0.0095)
Format = "%.3f";
else if (FractionaryPart >= 0.000095)
else if (FractionaryPart >= 0.00095)
Format = "%.4f";
else if (FractionaryPart >= 0.0000095)
else if (FractionaryPart >= 0.000095)
Format = "%.5f";
else if (FractionaryPart >= 0.00000095)
else if (FractionaryPart >= 0.0000095)
Format = "%.6f";
else
Format = "%e";