Version19.42.6

This commit is contained in:
Antonio Cañas Vargas 2019-10-24 18:23:26 +02:00
parent 0d7b5b1070
commit 8b43a0c971
10 changed files with 91 additions and 73 deletions

View File

@ -1315,6 +1315,10 @@ a:hover /* Default ==> underlined */
vertical-align:middle;
width:25px;
}
.HIE_SEL_NARROW
{
width:64px;
}
#chart_div
{
@ -2216,7 +2220,7 @@ a:hover img.CENTRE_PHOTO_SHOW
text-align:left;
vertical-align:middle;
}
.LIST_LEFT
.LIST_LEFT, .LIST_TREE
{
display:inline-block;
list-style-type:none;
@ -2225,6 +2229,10 @@ a:hover img.CENTRE_PHOTO_SHOW
text-align:left;
vertical-align:middle;
}
.LIST_TREE li
{
height:25px;
}
/******************************* File browsers *******************************/
.FILENAME

View File

@ -172,17 +172,15 @@ void Att_SeeAttEvents (void)
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_STD:
/* List my attendance */
Mnu_ContextMenuBegin ();
Att_PutFormToListMyAttendance ();
Att_PutFormToListMyAttendance (); // List my attendance
Mnu_ContextMenuEnd ();
break;
case Rol_NET:
case Rol_TCH:
case Rol_SYS_ADM:
/* List students' attendance */
Mnu_ContextMenuBegin ();
Att_PutFormToListStdsAttendance ();
Att_PutFormToListStdsAttendance (); // List students' attendance
Mnu_ContextMenuEnd ();
break;
default:

View File

@ -487,13 +487,18 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 19.42.5 (2019-10-24)"
#define CSS_FILE "swad19.41.3.css"
#define Log_PLATFORM_VERSION "SWAD 19.42.6 (2019-10-24)"
#define CSS_FILE "swad19.42.6.css"
#define JS_FILE "swad19.39.js"
/*
// TODO: Perico: poner un candado de bloqueo de creación/edición de proyectos (por ejemplo en asignaturas obsoletas)
// TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.)
// TODO: Change icon to upload file in timeline to photo-video.svg
Version 19.42.6: Oct 24, 2019 Code refactoring in CSS.
Changes icon to upload file in timeline.
Code refactoring in media. (246034 lines)
Copy the following 4 icons to icon public directory:
sudo cp -a icon/photo-video.svg /var/www/html/swad/icon/
Version 19.42.5: Oct 24, 2019 Code refactoring in contextual menus. (246011 lines)
Version 19.42.4: Oct 23, 2019 Code refactoring in HTML divs. (246016 lines)

View File

@ -126,10 +126,10 @@ void Cht_ShowListOfAvailableChatRooms (void)
/***** Start box *****/
Box_StartBox (NULL,Txt_Chat_rooms,NULL,
NULL,Box_NOT_CLOSABLE);
fprintf (Gbl.F.Out,"<ul class=\"LIST_LEFT\">");
fprintf (Gbl.F.Out,"<ul class=\"LIST_TREE\">");
/***** Title of top level *****/
fprintf (Gbl.F.Out,"<li class=\"DAT\" style=\"height:25px;\">"
fprintf (Gbl.F.Out,"<li class=\"DAT\">"
"<img src=\"%s/comments.svg\""
" alt=\"%s\" title=\"%s\""
" class=\"ICO16x16\" />"
@ -328,7 +328,7 @@ static void Cht_WriteLinkToChat1 (const char *RoomCode,const char *RoomShrtName,
{
extern const char *The_ClassFormInBox[The_NUM_THEMES];
fprintf (Gbl.F.Out,"<li style=\"height:25px;\">");
fprintf (Gbl.F.Out,"<li>");
Lay_IndentDependingOnLevel (Level,IsLastItemInLevel);
Frm_StartForm (ActCht);
Cht_WriteParamsRoomCodeAndNames (RoomCode,RoomShrtName,RoomFullName);

View File

@ -583,18 +583,18 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
/***** Start box *****/
Box_StartBox (NULL,Txt_My_courses,Crs_PutIconToSearchCourses,
Hlp_PROFILE_Courses,Box_NOT_CLOSABLE);
fprintf (Gbl.F.Out,"<ul class=\"LIST_LEFT\">");
fprintf (Gbl.F.Out,"<ul class=\"LIST_TREE\">");
/***** Write link to platform *****/
Highlight = (Gbl.Hierarchy.Cty.CtyCod <= 0);
fprintf (Gbl.F.Out,"<li class=\"%s\" style=\"height:25px;\">",
Highlight ? ClassHighlight :
ClassNormal);
fprintf (Gbl.F.Out,"<li class=\"%s\">",Highlight ? ClassHighlight :
ClassNormal);
Frm_StartForm (ActMyCrs);
Cty_PutParamCtyCod (-1L);
Frm_LinkFormSubmit (Txt_System,
Highlight ? ClassHighlight :
ClassNormal,NULL);
ClassNormal,
NULL);
fprintf (Gbl.F.Out,"<img src=\"%s/sitemap.svg\""
" alt=\"%s\" title=\"%s\""
" class=\"ICO16x16\" />&nbsp;%s</a>",
@ -622,9 +622,8 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
/***** Write link to country *****/
Highlight = (Gbl.Hierarchy.Ins.InsCod <= 0 &&
Gbl.Hierarchy.Cty.CtyCod == Cty.CtyCod);
fprintf (Gbl.F.Out,"<li class=\"%s\" style=\"height:25px;\">",
Highlight ? ClassHighlight :
ClassNormal);
fprintf (Gbl.F.Out,"<li class=\"%s\">",Highlight ? ClassHighlight :
ClassNormal);
IsLastItemInLevel[1] = (NumCty == NumCtys - 1);
Lay_IndentDependingOnLevel (1,IsLastItemInLevel);
Frm_StartForm (ActMyCrs);
@ -663,8 +662,8 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
/***** Write link to institution *****/
Highlight = (Gbl.Hierarchy.Ctr.CtrCod <= 0 &&
Gbl.Hierarchy.Ins.InsCod == Ins.InsCod);
fprintf (Gbl.F.Out,"<li class=\"MY_CRSS_LNK %s\" style=\"height:25px;\">",
Highlight ? ClassHighlight :
fprintf (Gbl.F.Out,"<li class=\"MY_CRSS_LNK %s\">",
Highlight ? ClassHighlight :
ClassNormal);
IsLastItemInLevel[2] = (NumIns == NumInss - 1);
Lay_IndentDependingOnLevel (2,IsLastItemInLevel);
@ -696,7 +695,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
/***** Write link to centre *****/
Highlight = (Gbl.Hierarchy.Level == Hie_CTR &&
Gbl.Hierarchy.Ctr.CtrCod == Ctr.CtrCod);
fprintf (Gbl.F.Out,"<li class=\"MY_CRSS_LNK %s\" style=\"height:25px;\">",
fprintf (Gbl.F.Out,"<li class=\"MY_CRSS_LNK %s\">",
Highlight ? ClassHighlight :
ClassNormal);
IsLastItemInLevel[3] = (NumCtr == NumCtrs - 1);
@ -729,7 +728,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
/***** Write link to degree *****/
Highlight = (Gbl.Hierarchy.Level == Hie_DEG &&
Gbl.Hierarchy.Deg.DegCod == Deg.DegCod);
fprintf (Gbl.F.Out,"<li class=\"MY_CRSS_LNK %s\" style=\"height:25px;\">",
fprintf (Gbl.F.Out,"<li class=\"MY_CRSS_LNK %s\">",
Highlight ? ClassHighlight :
ClassNormal);
IsLastItemInLevel[4] = (NumDeg == NumDegs - 1);
@ -762,7 +761,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
/***** Write link to course *****/
Highlight = (Gbl.Hierarchy.Level == Hie_CRS &&
Gbl.Hierarchy.Crs.CrsCod == Crs.CrsCod);
fprintf (Gbl.F.Out,"<li class=\"MY_CRSS_LNK %s\" style=\"height:25px;\">",
fprintf (Gbl.F.Out,"<li class=\"MY_CRSS_LNK %s\">",
Highlight ? ClassHighlight :
ClassNormal);
IsLastItemInLevel[5] = (NumCrs == NumCrss - 1);
@ -1525,8 +1524,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
{
Frm_StartForm (ActChgCrsYea);
Crs_PutParamOtherCrsCod (Crs->CrsCod);
fprintf (Gbl.F.Out,"<select name=\"OthCrsYear\""
" style=\"width:50px;\""
fprintf (Gbl.F.Out,"<select name=\"OthCrsYear\" class=\"HIE_SEL_NARROW\""
" onchange=\"document.getElementById('%s').submit();\">",
Gbl.Form.Id);
for (YearAux = 0;
@ -1730,7 +1728,7 @@ static void Crs_PutFormToCreateCourse (void)
/***** Year *****/
HTM_TD_Begin ("class=\"CM\"");
fprintf (Gbl.F.Out,"<select name=\"OthCrsYear\" style=\"width:50px;\">");
fprintf (Gbl.F.Out,"<select name=\"OthCrsYear\" class=\"HIE_SEL_NARROW\">");
for (Year = 0;
Year <= Deg_MAX_YEARS_PER_DEGREE;
Year++)

View File

@ -792,8 +792,7 @@ static void Deg_ListDegreesForEdition (void)
{
Frm_StartForm (ActChgDegTyp);
Deg_PutParamOtherDegCod (Deg->DegCod);
fprintf (Gbl.F.Out,"<select name=\"OthDegTypCod\""
" style=\"width:62px;\""
fprintf (Gbl.F.Out,"<select name=\"OthDegTypCod\" class=\"HIE_SEL_NARROW\""
" onchange=\"document.getElementById('%s').submit();\">",
Gbl.Form.Id);
for (NumDegTyp = 0;
@ -1004,7 +1003,7 @@ static void Deg_PutFormToCreateDegree (void)
/***** Degree type *****/
HTM_TD_Begin ("class=\"LM\"");
fprintf (Gbl.F.Out,"<select name=\"OthDegTypCod\" style=\"width:62px;\">");
fprintf (Gbl.F.Out,"<select name=\"OthDegTypCod\" class=\"HIE_SEL_NARROW\">");
for (NumDegTyp = 0;
NumDegTyp < Gbl.DegTypes.Num;
NumDegTyp++)

View File

@ -540,7 +540,7 @@ static void Dpt_ListDepartmentsForEdition (void)
HTM_TD_Begin ("class=\"CM\"");
Frm_StartForm (ActChgDptIns);
Dpt_PutParamDptCod (Dpt->DptCod);
fprintf (Gbl.F.Out,"<select name=\"OthInsCod\" style=\"width:62px;\""
fprintf (Gbl.F.Out,"<select name=\"OthInsCod\" class=\"HIE_SEL_NARROW\""
"onchange=\"document.getElementById('%s').submit();\">"
"<option value=\"0\"",
Gbl.Form.Id);
@ -928,7 +928,7 @@ static void Dpt_PutFormToCreateDepartment (void)
/***** Institution *****/
HTM_TD_Begin ("class=\"CM\"");
fprintf (Gbl.F.Out,"<select name=\"OthInsCod\" style=\"width:62px;\">"
fprintf (Gbl.F.Out,"<select name=\"OthInsCod\" class=\"HIE_SEL_NARROW\">"
"<option value=\"0\"");
if (Dpt_EditingDpt->InsCod == 0)
fprintf (Gbl.F.Out," selected=\"selected\"");
@ -939,7 +939,7 @@ static void Dpt_PutFormToCreateDepartment (void)
fprintf (Gbl.F.Out,"<option value=\"%ld\"%s>%s</option>",
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod,
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod == Dpt_EditingDpt->InsCod ? " selected=\"selected\"" :
"",
"",
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].ShrtName);
fprintf (Gbl.F.Out,"</select>");
HTM_TD_End ();

View File

@ -294,7 +294,7 @@ static void Dup_ListSimilarUsrs (void)
Usr_UsrDataConstructor (&UsrDat);
/***** Begin table *****/
HTM_TABLE_BeginCenterPadding (2);
HTM_TABLE_BeginCenterPadding (5);
/***** Heading row with column names *****/
Gbl.Usrs.Listing.WithPhotos = true;
@ -317,9 +317,10 @@ static void Dup_ListSimilarUsrs (void)
else
UsrDat.Accepted = false;
/* Write data of this user */
/***** Write data of this user *****/
Usr_WriteRowUsrMainData (NumUsrs - NumUsr,&UsrDat,false,Rol_UNK);
/***** Write user's profile and user's courses *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("colspan=\"2\" class=\"COLOR%u\"",Gbl.RowEvenOdd);
@ -328,37 +329,31 @@ static void Dup_ListSimilarUsrs (void)
HTM_TD_Begin ("colspan=\"%u\" class=\"COLOR%u\"",
Usr_NUM_MAIN_FIELDS_DATA_USR-2,
Gbl.RowEvenOdd);
/* Show details of user's profile */
Prf_ShowDetailsUserProfile (&UsrDat);
/* Write all the courses this user belongs to */
Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_TCH);
Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_NET);
Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_STD);
HTM_TD_End ();
HTM_TR_End ();
/***** Buttons to remove user / mark as not dubplicated *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("colspan=\"2\" class=\"COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_End ();
HTM_TD_Begin ("colspan=\"%u\" class=\"LT COLOR%u\""
" style=\"padding-bottom:20px;\"",
HTM_TD_Begin ("colspan=\"%u\" class=\"LT COLOR%u\"",
Usr_NUM_MAIN_FIELDS_DATA_USR-2,
Gbl.RowEvenOdd);
/* Button to remove this user */
if (Acc_CheckIfICanEliminateAccount (UsrDat.UsrCod))
Dup_PutButtonToEliminateUsrAccount (&UsrDat);
/* Button to remove from list of possible duplicate users */
if (Dup_CheckIfUsrIsDup (UsrDat.UsrCod))
Dup_PutButtonToRemoveFromListOfDupUsrs (&UsrDat);
HTM_TD_End ();
HTM_TR_End ();

View File

@ -1583,7 +1583,7 @@ static void For_ShowForumList (void)
For_PutFormWhichForums ();
/***** Start list *****/
fprintf (Gbl.F.Out,"<ul class=\"LIST_LEFT\">");
fprintf (Gbl.F.Out,"<ul class=\"LIST_TREE\">");
/***** Links to global forums *****/
For_WriteLinksToGblForums (IsLastItemInLevel);
@ -2049,7 +2049,7 @@ static void For_WriteLinkToForum (struct Forum *Forum,
fprintf (Gbl.F.Out,"<li");
if (Highlight)
fprintf (Gbl.F.Out," class=\"LIGHT_BLUE\"");
fprintf (Gbl.F.Out," style=\"height:25px;\">");
fprintf (Gbl.F.Out,">");
/***** Indent forum title *****/
Lay_IndentDependingOnLevel (Level,IsLastItemInLevel);

View File

@ -96,6 +96,14 @@ typedef enum
Med_FORM_EMBED = 3,
} Med_FormType_t;
struct MediaUploader
{
const char *IdSuffix;
const char *FunctionName;
const char *Icon;
const char *Title;
};
/*****************************************************************************/
/************** External global variables from others modules ****************/
/*****************************************************************************/
@ -115,10 +123,7 @@ static void Med_FreeMediaURL (struct Media *Media);
static void Med_FreeMediaTitle (struct Media *Media);
static void Med_PutIconMediaUploader (const char UniqueId[Frm_MAX_BYTES_ID + 1],
const char *IdSuffix,
const char *FunctionName,
const char *Icon,
const char *Title);
struct MediaUploader *MediaUploader);
static void Med_PutHiddenFormTypeMediaUploader (const char UniqueId[Frm_MAX_BYTES_ID + 1],
const char *IdSuffix,
struct ParamUploadMedia *ParamUploadMedia,
@ -343,6 +348,30 @@ void Med_PutMediaUploader (int NumMediaInForm,const char *ClassInput)
extern const char *Txt_Link;
struct ParamUploadMedia ParamUploadMedia;
char Id[Frm_MAX_BYTES_ID + 1];
size_t i;
#define Med_NUM_MEDIA_UPLOADERS 3
struct MediaUploader MediaUploader[Med_NUM_MEDIA_UPLOADERS] =
{
{/* Upload icon */
"ico_upl", // <id>_ico_upl
"mediaClickOnActivateUpload",
"photo-video.svg",
Txt_Image_video
},
{/* YouTube icon */
"ico_you", // <id>_ico_you
"mediaClickOnActivateYoutube",
"youtube-brands.svg",
"YouTube"
},
{/* Embed icon */
"ico_emb", // <id>_ico_emb
"mediaClickOnActivateEmbed",
"code.svg",
"Embed"
}
};
/***** Set names of parameters depending on number of media in form *****/
Med_SetParamNames (&ParamUploadMedia,NumMediaInForm);
@ -382,23 +411,11 @@ void Med_PutMediaUploader (int NumMediaInForm,const char *ClassInput)
HTM_DIV_Begin ("class=\"PREF_CONTAINERS\""); // icons containers
HTM_DIV_Begin ("class=\"PREF_CONTAINER\""); // icons container
/* Upload icon */
Med_PutIconMediaUploader (Id,"ico_upl", // <id>_ico_upl
"mediaClickOnActivateUpload",
"file-image.svg",
Txt_Image_video);
/* YouTube icon */
Med_PutIconMediaUploader (Id,"ico_you", // <id>_ico_you
"mediaClickOnActivateYoutube",
"youtube-brands.svg",
"YouTube");
/* Embed icon */
Med_PutIconMediaUploader (Id,"ico_emb", // <id>_ico_emb
"mediaClickOnActivateEmbed",
"code.svg",
"Embed");
/* Draw icons */
for (i = 0;
i < Med_NUM_MEDIA_UPLOADERS;
i++)
Med_PutIconMediaUploader (Id,&MediaUploader[i]);
/* End icons */
HTM_DIV_End (); // icons container
@ -468,20 +485,18 @@ void Med_PutMediaUploader (int NumMediaInForm,const char *ClassInput)
/*****************************************************************************/
static void Med_PutIconMediaUploader (const char UniqueId[Frm_MAX_BYTES_ID + 1],
const char *IdSuffix,
const char *FunctionName,
const char *Icon,
const char *Title)
struct MediaUploader *MediaUploader)
{
/***** Icon to activate form in media uploader *****/
HTM_DIV_Begin ("id=\"%s_%s\" class=\"PREF_OFF\"", // <id>_IdSuffix
UniqueId,IdSuffix);
UniqueId,MediaUploader->IdSuffix);
fprintf (Gbl.F.Out,"<a href=\"\" onclick=\"%s('%s');return false;\">"
"<img src=\"%s/%s\" alt=\"%s\" title=\"%s\""
" class=\"ICO_HIGHLIGHT ICOx16\" />"
"</a>",
FunctionName,UniqueId,
Cfg_URL_ICON_PUBLIC,Icon,Title,Title);
MediaUploader->FunctionName,UniqueId,
Cfg_URL_ICON_PUBLIC,MediaUploader->Icon,
MediaUploader->Title,MediaUploader->Title);
HTM_DIV_End (); // <id>_IdSuffix
}