mirror of https://github.com/acanas/swad-core.git
Version 16.144
This commit is contained in:
parent
08e7c7bc7e
commit
a4e30e209f
|
@ -1714,10 +1714,14 @@ a:hover img.CENTRE_PHOTO_SHOW
|
||||||
border-radius:6px;
|
border-radius:6px;
|
||||||
box-shadow:2px 5px 15px #888;
|
box-shadow:2px 5px 15px #888;
|
||||||
}
|
}
|
||||||
.ZOOM_TXT
|
.ZOOM_TXT_LINE
|
||||||
{
|
{
|
||||||
color:#202020;
|
display:block;
|
||||||
font-size:12pt;
|
width:186px;
|
||||||
|
white-space:nowrap;
|
||||||
|
overflow:hidden;
|
||||||
|
text-overflow:ellipsis;
|
||||||
|
margin:0 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.NO_BR {white-space:nowrap;}
|
.NO_BR {white-space:nowrap;}
|
||||||
|
@ -1881,9 +1885,9 @@ a:hover img.CENTRE_PHOTO_SHOW
|
||||||
.LST_EDIT_REC {color:#008000; font-weight:bold; font-size:11pt; height:20px; padding-top:0; padding-bottom:0; margin-top:-1px; margin-bottom:-1px; border-width:1px; border-style:solid; border-color:#ECE9D8;}
|
.LST_EDIT_REC {color:#008000; font-weight:bold; font-size:11pt; height:20px; padding-top:0; padding-bottom:0; margin-top:-1px; margin-bottom:-1px; border-width:1px; border-style:solid; border-color:#ECE9D8;}
|
||||||
.LST_EDIT_REC_HID {color:#89BE87; font-weight:bold; font-size:11pt; height:20px; padding-top:0; padding-bottom:0; margin-top:-1px; margin-bottom:-1px; border-width:1px; border-style:solid; border-color:#ECE9D8;}
|
.LST_EDIT_REC_HID {color:#89BE87; font-weight:bold; font-size:11pt; height:20px; padding-top:0; padding-bottom:0; margin-top:-1px; margin-bottom:-1px; border-width:1px; border-style:solid; border-color:#ECE9D8;}
|
||||||
|
|
||||||
.DAT {color:#404040; font-size:13pt;}
|
.DAT {color:#606060; font-size:13pt;}
|
||||||
.DAT_NOBR {color:#404040; font-size:13pt; white-space:nowrap;}
|
.DAT_NOBR {color:#606060; font-size:13pt; white-space:nowrap;}
|
||||||
.DAT_BOLD {color:#404040; font-size:13pt; font-weight:bold;}
|
.DAT_BOLD {color:#606060; font-size:13pt; font-weight:bold;}
|
||||||
.DAT_GREEN {color:#008000; font-size:13pt;}
|
.DAT_GREEN {color:#008000; font-size:13pt;}
|
||||||
.DAT_LIGHT {color:#A0A0A0; font-size:13pt;}
|
.DAT_LIGHT {color:#A0A0A0; font-size:13pt;}
|
||||||
.DAT_N {color:black; font-size:13pt;}
|
.DAT_N {color:black; font-size:13pt;}
|
||||||
|
@ -1899,9 +1903,9 @@ a:hover img.CENTRE_PHOTO_SHOW
|
||||||
border-width:1px;
|
border-width:1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.DAT_SMALL {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#707070; font-size:12pt;}
|
.DAT_SMALL {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#606060; font-size:12pt;}
|
||||||
.DAT_SMALL_LIGHT {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#A0A0A0; font-size:12pt;}
|
.DAT_SMALL_LIGHT {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#A0A0A0; font-size:12pt;}
|
||||||
.DAT_SMALL_NOBR {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#707070; font-size:12pt; white-space:nowrap;}
|
.DAT_SMALL_NOBR {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#606060; font-size:12pt; white-space:nowrap;}
|
||||||
.DAT_SMALL_N {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
|
.DAT_SMALL_N {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
|
||||||
.DAT_SMALL_NOBR_N {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
|
.DAT_SMALL_NOBR_N {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
|
||||||
|
|
|
@ -725,9 +725,7 @@ function zoom (img,urlPhoto,idCaption) {
|
||||||
document.getElementById('zoomLyr').style.left = xPos + 'px';
|
document.getElementById('zoomLyr').style.left = xPos + 'px';
|
||||||
document.getElementById('zoomLyr').style.top = yPos + 'px';
|
document.getElementById('zoomLyr').style.top = yPos + 'px';
|
||||||
document.getElementById('zoomImg').src = urlPhoto;
|
document.getElementById('zoomImg').src = urlPhoto;
|
||||||
document.getElementById('zoomTxt').innerHTML = '<span class="ZOOM_TXT">' +
|
document.getElementById('zoomTxt').innerHTML = document.getElementById(idCaption).innerHTML;
|
||||||
document.getElementById(idCaption).innerHTML +
|
|
||||||
'</span>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Exit from zooming a user's photograph
|
// Exit from zooming a user's photograph
|
|
@ -192,21 +192,20 @@
|
||||||
// TODO: En los detalles de asistencia debería salir la fecha de cada sesión
|
// TODO: En los detalles de asistencia debería salir la fecha de cada sesión
|
||||||
// TODO: System admin should view link "Visits to course"
|
// TODO: System admin should view link "Visits to course"
|
||||||
|
|
||||||
// TODO: Bajo la foto de cada usuario el país
|
|
||||||
|
|
||||||
// TODO: Un administrador de institución, ¿debería poder cambiar la contraseña de un usuario de esa institución? No lo tengo claro.
|
// TODO: Un administrador de institución, ¿debería poder cambiar la contraseña de un usuario de esa institución? No lo tengo claro.
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 16.143.4 (2017-03-01)"
|
#define Log_PLATFORM_VERSION "SWAD 16.144 (2017-03-01)"
|
||||||
#define CSS_FILE "swad16.139.6.css"
|
#define CSS_FILE "swad16.144.css"
|
||||||
#define JS_FILE "swad16.143.2.js"
|
#define JS_FILE "swad16.144.js"
|
||||||
|
|
||||||
// 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 16.144: Mar 01, 2017 Label with the user's country under her/his enlarged photo. (213265 lines)
|
||||||
Version 16.143.4: Mar 01, 2017 New place for QR icon in user's record card. (213249 lines)
|
Version 16.143.4: Mar 01, 2017 New place for QR icon in user's record card. (213249 lines)
|
||||||
Version 16.143.3: Feb 28, 2017 Changes in layout of page head. (213238 lines)
|
Version 16.143.3: Feb 28, 2017 Changes in layout of page head. (213238 lines)
|
||||||
Version 16.143.2: Feb 28, 2017 Fixed bug in user timeline. (213237 lines)
|
Version 16.143.2: Feb 28, 2017 Fixed bug in user timeline. (213237 lines)
|
||||||
|
|
|
@ -1200,13 +1200,15 @@ void Cty_WriteSelectorOfCountry (void)
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/**************************** Get country full name **************************/
|
/**************************** Get country full name **************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
// If ClassLink == NULL ==> do not put link
|
||||||
|
|
||||||
void Cty_WriteCountryName (long CtyCod,const char *Class)
|
void Cty_WriteCountryName (long CtyCod,const char *ClassLink)
|
||||||
{
|
{
|
||||||
extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
|
extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
|
||||||
char CtyName[Cty_MAX_BYTES_COUNTRY_NAME + 1];
|
char CtyName[Cty_MAX_BYTES_COUNTRY_NAME + 1];
|
||||||
char ActTxt[Act_MAX_LENGTH_ACTION_TXT + 1];
|
char ActTxt[Act_MAX_LENGTH_ACTION_TXT + 1];
|
||||||
bool PutForm = !Gbl.Form.Inside && // Only if not inside another form
|
bool PutForm = ClassLink &&
|
||||||
|
!Gbl.Form.Inside && // Only if not inside another form
|
||||||
Act_Actions[Gbl.Action.Act].BrowserWindow == Act_THIS_WINDOW; // Only in main window
|
Act_Actions[Gbl.Action.Act].BrowserWindow == Act_THIS_WINDOW; // Only in main window
|
||||||
|
|
||||||
/***** Get country name *****/
|
/***** Get country name *****/
|
||||||
|
@ -1218,7 +1220,7 @@ void Cty_WriteCountryName (long CtyCod,const char *Class)
|
||||||
Act_FormStart (ActSeeCtyInf);
|
Act_FormStart (ActSeeCtyInf);
|
||||||
Cty_PutParamCtyCod (CtyCod);
|
Cty_PutParamCtyCod (CtyCod);
|
||||||
Act_LinkFormSubmit (Act_GetActionTextFromDB (Act_Actions[ActSeeCtyInf].ActCod,ActTxt),
|
Act_LinkFormSubmit (Act_GetActionTextFromDB (Act_Actions[ActSeeCtyInf].ActCod,ActTxt),
|
||||||
Class,NULL);
|
ClassLink,NULL);
|
||||||
fprintf (Gbl.F.Out,"%s</a>",CtyName);
|
fprintf (Gbl.F.Out,"%s</a>",CtyName);
|
||||||
Act_FormEnd ();
|
Act_FormEnd ();
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,7 +94,7 @@ void Cty_EditCountries (void);
|
||||||
void Cty_GetListCountries (Cty_GetExtraData_t GetExtraData);
|
void Cty_GetListCountries (Cty_GetExtraData_t GetExtraData);
|
||||||
void Cty_FreeListCountries (void);
|
void Cty_FreeListCountries (void);
|
||||||
void Cty_WriteSelectorOfCountry (void);
|
void Cty_WriteSelectorOfCountry (void);
|
||||||
void Cty_WriteCountryName (long CtyCod,const char *Class);
|
void Cty_WriteCountryName (long CtyCod,const char *ClassLink);
|
||||||
bool Cty_GetDataOfCountryByCod (struct Country *Cty,Cty_GetExtraData_t GetExtraData);
|
bool Cty_GetDataOfCountryByCod (struct Country *Cty,Cty_GetExtraData_t GetExtraData);
|
||||||
void Cty_GetCountryName (long CtyCod,char CtyName[Cty_MAX_BYTES_COUNTRY_NAME + 1]);
|
void Cty_GetCountryName (long CtyCod,char CtyName[Cty_MAX_BYTES_COUNTRY_NAME + 1]);
|
||||||
void Cty_PutParamCtyCod (long CtyCod);
|
void Cty_PutParamCtyCod (long CtyCod);
|
||||||
|
|
53
swad_photo.c
53
swad_photo.c
|
@ -1111,9 +1111,6 @@ void Pho_ShowUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
|
||||||
bool FormUnique)
|
bool FormUnique)
|
||||||
{
|
{
|
||||||
extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
|
extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
|
||||||
char FullName [Usr_MAX_BYTES_FULL_NAME + 1];
|
|
||||||
char ShortName[Usr_MAX_BYTES_FULL_NAME + 1];
|
|
||||||
char Surnames [Usr_MAX_BYTES_SURNAMES + 1];
|
|
||||||
bool PhotoExists;
|
bool PhotoExists;
|
||||||
bool PutLinkToPublicProfile = !Gbl.Form.Inside && // Only if not inside another form
|
bool PutLinkToPublicProfile = !Gbl.Form.Inside && // Only if not inside another form
|
||||||
Act_Actions[Gbl.Action.Act].BrowserWindow == Act_THIS_WINDOW; // Only in main window
|
Act_Actions[Gbl.Action.Act].BrowserWindow == Act_THIS_WINDOW; // Only in main window
|
||||||
|
@ -1140,35 +1137,35 @@ void Pho_ShowUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Hidden div to pass user's name to Javascript *****/
|
/***** Hidden div to pass user's name to Javascript *****/
|
||||||
Str_Copy (FullName,UsrDat->FullName,
|
|
||||||
Usr_MAX_BYTES_FULL_NAME);
|
|
||||||
if (PutZoomCode)
|
if (PutZoomCode)
|
||||||
{
|
{
|
||||||
Str_Copy (ShortName,UsrDat->FirstName,
|
|
||||||
Usr_MAX_BYTES_FULL_NAME);
|
|
||||||
Str_LimitLengthHTMLStr (ShortName,23);
|
|
||||||
Surnames[0] = '\0';
|
|
||||||
if (UsrDat->Surname1[0])
|
|
||||||
Str_Copy (Surnames,UsrDat->Surname1,
|
|
||||||
Usr_MAX_BYTES_SURNAMES);
|
|
||||||
if (UsrDat->Surname2[0])
|
|
||||||
{
|
|
||||||
Str_Concat (Surnames," ",
|
|
||||||
Usr_MAX_BYTES_SURNAMES);
|
|
||||||
Str_Concat (Surnames,UsrDat->Surname2,
|
|
||||||
Usr_MAX_BYTES_SURNAMES);
|
|
||||||
}
|
|
||||||
Str_LimitLengthHTMLStr (Surnames,23);
|
|
||||||
Str_Concat (ShortName,"<br />",
|
|
||||||
Usr_MAX_BYTES_FULL_NAME);
|
|
||||||
Str_Concat (ShortName,Surnames,
|
|
||||||
Usr_MAX_BYTES_FULL_NAME);
|
|
||||||
|
|
||||||
Act_SetUniqueId (IdCaption);
|
Act_SetUniqueId (IdCaption);
|
||||||
fprintf (Gbl.F.Out,"<div id=\"%s\" class=\"NOT_SHOWN\">"
|
fprintf (Gbl.F.Out,"<div id=\"%s\" class=\"NOT_SHOWN\">",
|
||||||
|
IdCaption);
|
||||||
|
|
||||||
|
/* First name */
|
||||||
|
fprintf (Gbl.F.Out,"<div class=\"ZOOM_TXT_LINE DAT_N\">"
|
||||||
"%s"
|
"%s"
|
||||||
"</div>",
|
"</div>",
|
||||||
IdCaption,ShortName);
|
UsrDat->FirstName);
|
||||||
|
|
||||||
|
/* Surnames */
|
||||||
|
fprintf (Gbl.F.Out,"<div class=\"ZOOM_TXT_LINE DAT_N\">%s",
|
||||||
|
UsrDat->Surname1);
|
||||||
|
if (UsrDat->Surname2[0])
|
||||||
|
fprintf (Gbl.F.Out," %s",UsrDat->Surname2);
|
||||||
|
fprintf (Gbl.F.Out,"</div>");
|
||||||
|
|
||||||
|
/* Country */
|
||||||
|
if (UsrDat->CtyCod > 0)
|
||||||
|
{
|
||||||
|
fprintf (Gbl.F.Out,"<div class=\"ZOOM_TXT_LINE DAT_SMALL\">");
|
||||||
|
Cty_WriteCountryName (UsrDat->CtyCod,
|
||||||
|
NULL); // Don't put link to country
|
||||||
|
fprintf (Gbl.F.Out,"</div>");
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"</div>");
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Start image *****/
|
/***** Start image *****/
|
||||||
|
@ -1183,7 +1180,7 @@ void Pho_ShowUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
|
||||||
fprintf (Gbl.F.Out,"%s/usr_bl.jpg",Gbl.Prefs.IconsURL);
|
fprintf (Gbl.F.Out,"%s/usr_bl.jpg",Gbl.Prefs.IconsURL);
|
||||||
fprintf (Gbl.F.Out,"\" alt=\"%s\" title=\"%s\""
|
fprintf (Gbl.F.Out,"\" alt=\"%s\" title=\"%s\""
|
||||||
" class=\"%s\"",
|
" class=\"%s\"",
|
||||||
FullName,FullName,
|
UsrDat->FullName,UsrDat->FullName,
|
||||||
ClassPhoto);
|
ClassPhoto);
|
||||||
|
|
||||||
/***** Image zoom *****/
|
/***** Image zoom *****/
|
||||||
|
|
|
@ -2674,7 +2674,8 @@ static void Rec_ShowCountryInHead (struct UsrData *UsrDat,bool ShowData)
|
||||||
fprintf (Gbl.F.Out,"<td class=\"REC_C2_MID REC_DAT_BOLD LEFT_TOP\">");
|
fprintf (Gbl.F.Out,"<td class=\"REC_C2_MID REC_DAT_BOLD LEFT_TOP\">");
|
||||||
if (ShowData && UsrDat->CtyCod > 0)
|
if (ShowData && UsrDat->CtyCod > 0)
|
||||||
/* Link to see country information */
|
/* Link to see country information */
|
||||||
Cty_WriteCountryName (UsrDat->CtyCod,"REC_DAT_BOLD");
|
Cty_WriteCountryName (UsrDat->CtyCod,
|
||||||
|
"REC_DAT_BOLD"); // Put link to country
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
117
swad_user.c
117
swad_user.c
|
@ -3969,6 +3969,7 @@ static void Usr_BuildQueryToGetUsrsLstCrs (Rol_Role_t Role,
|
||||||
"usr_data.Sex,"
|
"usr_data.Sex,"
|
||||||
"usr_data.Photo,"
|
"usr_data.Photo,"
|
||||||
"usr_data.PhotoVisibility,"
|
"usr_data.PhotoVisibility,"
|
||||||
|
"usr_data.CtyCod,"
|
||||||
"usr_data.InsCod,"
|
"usr_data.InsCod,"
|
||||||
"crs_usr.Role,"
|
"crs_usr.Role,"
|
||||||
"crs_usr.Accepted";
|
"crs_usr.Accepted";
|
||||||
|
@ -3982,9 +3983,10 @@ static void Usr_BuildQueryToGetUsrsLstCrs (Rol_Role_t Role,
|
||||||
row[ 6]: usr_data.Sex
|
row[ 6]: usr_data.Sex
|
||||||
row[ 7]: usr_data.Photo
|
row[ 7]: usr_data.Photo
|
||||||
row[ 8]: usr_data.PhotoVisibility
|
row[ 8]: usr_data.PhotoVisibility
|
||||||
row[ 9]: usr_data.InsCod
|
row[ 9]: usr_data.CtyCod
|
||||||
row[10]: crs_usr.Role (only if Scope == Sco_SCOPE_CRS)
|
row[10]: usr_data.InsCod
|
||||||
row[11]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
row[11]: crs_usr.Role (only if Scope == Sco_SCOPE_CRS)
|
||||||
|
row[12]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***** If there are no groups selected, don't do anything *****/
|
/***** If there are no groups selected, don't do anything *****/
|
||||||
|
@ -4143,6 +4145,7 @@ void Usr_GetListUsrs (Rol_Role_t Role,Sco_Scope_t Scope)
|
||||||
"usr_data.Sex,"
|
"usr_data.Sex,"
|
||||||
"usr_data.Photo,"
|
"usr_data.Photo,"
|
||||||
"usr_data.PhotoVisibility,"
|
"usr_data.PhotoVisibility,"
|
||||||
|
"usr_data.CtyCod,"
|
||||||
"usr_data.InsCod";
|
"usr_data.InsCod";
|
||||||
/*
|
/*
|
||||||
row[ 0]: usr_data.UsrCod
|
row[ 0]: usr_data.UsrCod
|
||||||
|
@ -4154,9 +4157,10 @@ void Usr_GetListUsrs (Rol_Role_t Role,Sco_Scope_t Scope)
|
||||||
row[ 6]: usr_data.Sex
|
row[ 6]: usr_data.Sex
|
||||||
row[ 7]: usr_data.Photo
|
row[ 7]: usr_data.Photo
|
||||||
row[ 8]: usr_data.PhotoVisibility
|
row[ 8]: usr_data.PhotoVisibility
|
||||||
row[ 9]: usr_data.InsCod
|
row[ 9]: usr_data.CtyCod
|
||||||
row[10]: crs_usr.Role (only if Scope == Sco_SCOPE_CRS)
|
row[10]: usr_data.InsCod
|
||||||
row[11]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
row[11]: crs_usr.Role (only if Scope == Sco_SCOPE_CRS)
|
||||||
|
row[12]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***** Build query *****/
|
/***** Build query *****/
|
||||||
|
@ -4267,7 +4271,7 @@ void Usr_GetListUsrs (Rol_Role_t Role,Sco_Scope_t Scope)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/********* Search list of users with a given role in current scope ***********/
|
/*********** Search for users with a given role in current scope *************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Usr_SearchListUsrs (Rol_Role_t Role)
|
void Usr_SearchListUsrs (Rol_Role_t Role)
|
||||||
|
@ -4283,6 +4287,7 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
|
||||||
"usr_data.Sex,"
|
"usr_data.Sex,"
|
||||||
"usr_data.Photo,"
|
"usr_data.Photo,"
|
||||||
"usr_data.PhotoVisibility,"
|
"usr_data.PhotoVisibility,"
|
||||||
|
"usr_data.CtyCod,"
|
||||||
"usr_data.InsCod";
|
"usr_data.InsCod";
|
||||||
/*
|
/*
|
||||||
row[ 0]: usr_data.UsrCod
|
row[ 0]: usr_data.UsrCod
|
||||||
|
@ -4294,9 +4299,10 @@ void Usr_SearchListUsrs (Rol_Role_t Role)
|
||||||
row[ 6]: usr_data.Sex
|
row[ 6]: usr_data.Sex
|
||||||
row[ 7]: usr_data.Photo
|
row[ 7]: usr_data.Photo
|
||||||
row[ 8]: usr_data.PhotoVisibility
|
row[ 8]: usr_data.PhotoVisibility
|
||||||
row[ 9]: usr_data.InsCod
|
row[ 9]: usr_data.CtyCod
|
||||||
row[10]: crs_usr.Role (only if Scope == Sco_SCOPE_CRS)
|
row[10]: usr_data.InsCod
|
||||||
row[11]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
row[11]: crs_usr.Role (only if Scope == Sco_SCOPE_CRS)
|
||||||
|
row[12]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
||||||
*/
|
*/
|
||||||
const char *OrderQuery = "candidate_users.UsrCod=usr_data.UsrCod"
|
const char *OrderQuery = "candidate_users.UsrCod=usr_data.UsrCod"
|
||||||
" ORDER BY "
|
" ORDER BY "
|
||||||
|
@ -4565,18 +4571,20 @@ static void Usr_GetAdmsLst (Sco_Scope_t Scope)
|
||||||
"Sex,"
|
"Sex,"
|
||||||
"Photo,"
|
"Photo,"
|
||||||
"PhotoVisibility,"
|
"PhotoVisibility,"
|
||||||
|
"CtyCod,"
|
||||||
"InsCod";
|
"InsCod";
|
||||||
/*
|
/*
|
||||||
row[0]: usr_data.UsrCod
|
row[ 0]: usr_data.UsrCod
|
||||||
row[1]: usr_data.EncryptedUsrCod
|
row[ 1]: usr_data.EncryptedUsrCod
|
||||||
row[2]: usr_data.Password
|
row[ 2]: usr_data.Password
|
||||||
row[3]: usr_data.Surname1
|
row[ 3]: usr_data.Surname1
|
||||||
row[4]: usr_data.Surname2
|
row[ 4]: usr_data.Surname2
|
||||||
row[5]: usr_data.FirstName
|
row[ 5]: usr_data.FirstName
|
||||||
row[6]: usr_data.Sex
|
row[ 6]: usr_data.Sex
|
||||||
row[7]: usr_data.Photo
|
row[ 7]: usr_data.Photo
|
||||||
row[8]: usr_data.PhotoVisibility
|
row[ 8]: usr_data.PhotoVisibility
|
||||||
row[9]: usr_data.InsCod
|
row[ 9]: usr_data.CtyCod
|
||||||
|
row[10]: usr_data.InsCod
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***** Build query *****/
|
/***** Build query *****/
|
||||||
|
@ -4726,18 +4734,20 @@ static void Usr_GetGstsLst (Sco_Scope_t Scope)
|
||||||
"Sex,"
|
"Sex,"
|
||||||
"Photo,"
|
"Photo,"
|
||||||
"PhotoVisibility,"
|
"PhotoVisibility,"
|
||||||
|
"CtyCod,"
|
||||||
"InsCod";
|
"InsCod";
|
||||||
/*
|
/*
|
||||||
row[0]: usr_data.UsrCod
|
row[ 0]: usr_data.UsrCod
|
||||||
row[1]: usr_data.EncryptedUsrCod
|
row[ 1]: usr_data.EncryptedUsrCod
|
||||||
row[2]: usr_data.Password
|
row[ 2]: usr_data.Password
|
||||||
row[3]: usr_data.Surname1
|
row[ 3]: usr_data.Surname1
|
||||||
row[4]: usr_data.Surname2
|
row[ 4]: usr_data.Surname2
|
||||||
row[5]: usr_data.FirstName
|
row[ 5]: usr_data.FirstName
|
||||||
row[6]: usr_data.Sex
|
row[ 6]: usr_data.Sex
|
||||||
row[7]: usr_data.Photo
|
row[ 7]: usr_data.Photo
|
||||||
row[8]: usr_data.PhotoVisibility
|
row[ 8]: usr_data.PhotoVisibility
|
||||||
row[9]: usr_data.InsCod
|
row[ 9]: usr_data.CtyCod
|
||||||
|
row[10]: usr_data.InsCod
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***** Build query *****/
|
/***** Build query *****/
|
||||||
|
@ -4799,18 +4809,20 @@ void Usr_GetUnorderedStdsCodesInDeg (long DegCod)
|
||||||
"usr_data.Sex,"
|
"usr_data.Sex,"
|
||||||
"usr_data.Photo,"
|
"usr_data.Photo,"
|
||||||
"usr_data.PhotoVisibility,"
|
"usr_data.PhotoVisibility,"
|
||||||
|
"usr_data.CtyCod,"
|
||||||
"usr_data.InsCod";
|
"usr_data.InsCod";
|
||||||
/*
|
/*
|
||||||
row[0]: usr_data.UsrCod
|
row[ 0]: usr_data.UsrCod
|
||||||
row[1]: usr_data.EncryptedUsrCod
|
row[ 1]: usr_data.EncryptedUsrCod
|
||||||
row[2]: usr_data.Password
|
row[ 2]: usr_data.Password
|
||||||
row[3]: usr_data.Surname1
|
row[ 3]: usr_data.Surname1
|
||||||
row[4]: usr_data.Surname2
|
row[ 4]: usr_data.Surname2
|
||||||
row[5]: usr_data.FirstName
|
row[ 5]: usr_data.FirstName
|
||||||
row[6]: usr_data.Sex
|
row[ 6]: usr_data.Sex
|
||||||
row[7]: usr_data.Photo
|
row[ 7]: usr_data.Photo
|
||||||
row[8]: usr_data.PhotoVisibility
|
row[ 8]: usr_data.PhotoVisibility
|
||||||
row[9]: usr_data.InsCod
|
row[ 9]: usr_data.CtyCod
|
||||||
|
row[10]: usr_data.InsCod
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs = 0;
|
Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs = 0;
|
||||||
|
@ -4879,9 +4891,10 @@ static void Usr_GetListUsrsFromQuery (const char *Query,Rol_Role_t Role,Sco_Scop
|
||||||
row[ 6]: usr_data.Sex
|
row[ 6]: usr_data.Sex
|
||||||
row[ 7]: usr_data.Photo
|
row[ 7]: usr_data.Photo
|
||||||
row[ 8]: usr_data.PhotoVisibility
|
row[ 8]: usr_data.PhotoVisibility
|
||||||
row[ 9]: usr_data.InsCod
|
row[ 9]: usr_data.CtyCod
|
||||||
row[10]: crs_usr.Role (only if Scope == Sco_SCOPE_CRS)
|
row[10]: usr_data.InsCod
|
||||||
row[11]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
row[11]: crs_usr.Role (only if Scope == Sco_SCOPE_CRS)
|
||||||
|
row[12]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
||||||
*/
|
*/
|
||||||
UsrInList = &Gbl.Usrs.LstUsrs[Role].Lst[NumUsr];
|
UsrInList = &Gbl.Usrs.LstUsrs[Role].Lst[NumUsr];
|
||||||
|
|
||||||
|
@ -4918,11 +4931,14 @@ static void Usr_GetListUsrsFromQuery (const char *Query,Rol_Role_t Role,Sco_Scop
|
||||||
/* Get user's photo visibility (row[8]) */
|
/* Get user's photo visibility (row[8]) */
|
||||||
UsrInList->PhotoVisibility = Pri_GetVisibilityFromStr (row[8]);
|
UsrInList->PhotoVisibility = Pri_GetVisibilityFromStr (row[8]);
|
||||||
|
|
||||||
/* Get user's institution code (row[9]) */
|
/* Get user's country code (row[9]) */
|
||||||
UsrInList->InsCod = Str_ConvertStrCodToLongCod (row[9]);
|
UsrInList->CtyCod = Str_ConvertStrCodToLongCod (row[9]);
|
||||||
|
|
||||||
|
/* Get user's institution code (row[10]) */
|
||||||
|
UsrInList->InsCod = Str_ConvertStrCodToLongCod (row[10]);
|
||||||
|
|
||||||
/* Get user's role and acceptance of enrollment in course(s)
|
/* Get user's role and acceptance of enrollment in course(s)
|
||||||
(row[10], row[11] if Scope == Sco_SCOPE_CRS) */
|
(row[11], row[12] if Scope == Sco_SCOPE_CRS) */
|
||||||
switch (Role)
|
switch (Role)
|
||||||
{
|
{
|
||||||
case Rol_UNKNOWN: // Here Rol_UNKNOWN means any user
|
case Rol_UNKNOWN: // Here Rol_UNKNOWN means any user
|
||||||
|
@ -4949,8 +4965,8 @@ static void Usr_GetListUsrsFromQuery (const char *Query,Rol_Role_t Role,Sco_Scop
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_CRS: // Course
|
case Sco_SCOPE_CRS: // Course
|
||||||
// Query result has a column with the acceptation
|
// Query result has a column with the acceptation
|
||||||
UsrInList->RoleInCurrentCrsDB = Rol_ConvertUnsignedStrToRole (row[10]);
|
UsrInList->RoleInCurrentCrsDB = Rol_ConvertUnsignedStrToRole (row[11]);
|
||||||
UsrInList->Accepted = (row[11][0] == 'Y');
|
UsrInList->Accepted = (row[12][0] == 'Y');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -4979,8 +4995,8 @@ static void Usr_GetListUsrsFromQuery (const char *Query,Rol_Role_t Role,Sco_Scop
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_CRS: // Course
|
case Sco_SCOPE_CRS: // Course
|
||||||
// Query result has a column with the acceptation
|
// Query result has a column with the acceptation
|
||||||
UsrInList->RoleInCurrentCrsDB = Rol_ConvertUnsignedStrToRole (row[10]);
|
UsrInList->RoleInCurrentCrsDB = Rol_ConvertUnsignedStrToRole (row[11]);
|
||||||
UsrInList->Accepted = (row[11][0] == 'Y');
|
UsrInList->Accepted = (row[12][0] == 'Y');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -5021,6 +5037,7 @@ void Usr_CopyBasicUsrDataFromList (struct UsrData *UsrDat,const struct UsrInList
|
||||||
Str_Copy (UsrDat->Photo,UsrInList->Photo,
|
Str_Copy (UsrDat->Photo,UsrInList->Photo,
|
||||||
Cry_LENGTH_ENCRYPTED_STR_SHA256_BASE64);
|
Cry_LENGTH_ENCRYPTED_STR_SHA256_BASE64);
|
||||||
UsrDat->PhotoVisibility = UsrInList->PhotoVisibility;
|
UsrDat->PhotoVisibility = UsrInList->PhotoVisibility;
|
||||||
|
UsrDat->CtyCod = UsrInList->CtyCod;
|
||||||
UsrDat->InsCod = UsrInList->InsCod;
|
UsrDat->InsCod = UsrInList->InsCod;
|
||||||
UsrDat->RoleInCurrentCrsDB = UsrInList->RoleInCurrentCrsDB;
|
UsrDat->RoleInCurrentCrsDB = UsrInList->RoleInCurrentCrsDB;
|
||||||
UsrDat->Accepted = UsrInList->Accepted;
|
UsrDat->Accepted = UsrInList->Accepted;
|
||||||
|
|
|
@ -193,6 +193,7 @@ struct UsrInList
|
||||||
Usr_Sex_t Sex;
|
Usr_Sex_t Sex;
|
||||||
char Photo[Cry_LENGTH_ENCRYPTED_STR_SHA256_BASE64 + 1]; // Name of public link to photo
|
char Photo[Cry_LENGTH_ENCRYPTED_STR_SHA256_BASE64 + 1]; // Name of public link to photo
|
||||||
Pri_Visibility_t PhotoVisibility; // Who can see user's photo
|
Pri_Visibility_t PhotoVisibility; // Who can see user's photo
|
||||||
|
long CtyCod; // Country
|
||||||
long InsCod; // Institution
|
long InsCod; // Institution
|
||||||
Rol_Role_t RoleInCurrentCrsDB; // Role in current course in database
|
Rol_Role_t RoleInCurrentCrsDB; // Role in current course in database
|
||||||
bool Accepted; // User has accepted joining to one/all courses?
|
bool Accepted; // User has accepted joining to one/all courses?
|
||||||
|
|
Loading…
Reference in New Issue