diff --git a/swad_changelog.h b/swad_changelog.h index 6d1ff3e33..ab18747f9 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -490,7 +490,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.54.6 (2019-11-06)" +#define Log_PLATFORM_VERSION "SWAD 19.54.7 (2019-11-06)" #define CSS_FILE "swad19.47.css" #define JS_FILE "swad19.39.js" /* @@ -498,6 +498,7 @@ ps2pdf source.ps destination.pdf // TODO: Impedir la creación y edición de proyectos si no son editables. // TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia) + Version 19.54.7: Nov 05, 2019 Code refactoring in HTML select options. (245923 lines) Version 19.54.6: Nov 05, 2019 Code refactoring in HTML select options. (245941 lines) Version 19.54.5: Nov 05, 2019 Code refactoring in HTML select options. (245985 lines) Version 19.54.4: Nov 05, 2019 Code refactoring in HTML select options. (246023 lines) diff --git a/swad_exam.c b/swad_exam.c index bf778d2e9..a31148ecc 100644 --- a/swad_exam.c +++ b/swad_exam.c @@ -1124,20 +1124,13 @@ static void Exa_ShowExamAnnouncement (long ExaCod, for (Year = 0; Year <= Deg_MAX_YEARS_PER_DEGREE; Year++) - { - fprintf (Gbl.F.Out,"" - "%s" - "", - Year,Txt_YEAR_OF_DEGREE[Year]); - } + HTM_OPTION (HTM_Type_UNSIGNED,&Year, + Gbl.ExamAnns.ExaDat.Year == Year,false, + "%s",Txt_YEAR_OF_DEGREE[Year]); HTM_SELECT_End (); } else - fprintf (Gbl.F.Out,"%s", - Txt_YEAR_OF_DEGREE[Gbl.ExamAnns.ExaDat.Year]); + fprintf (Gbl.F.Out,"%s",Txt_YEAR_OF_DEGREE[Gbl.ExamAnns.ExaDat.Year]); HTM_TD_End (); HTM_TR_End (); @@ -1200,20 +1193,15 @@ static void Exa_ShowExamAnnouncement (long ExaCod, { HTM_SELECT_Begin (false, "name=\"ExamHour\""); - fprintf (Gbl.F.Out,""); + HTM_OPTION (HTM_Type_STRING,"0", + Gbl.ExamAnns.ExaDat.StartTime.Hour == 0,false, + "-"); for (Hour = 7; Hour <= 22; Hour++) - { - fprintf (Gbl.F.Out,"", - Hour,Txt_hours_ABBREVIATION); - } + HTM_OPTION (HTM_Type_UNSIGNED,&Hour, + Gbl.ExamAnns.ExaDat.StartTime.Hour == Hour,false, + "%02u %s",Hour,Txt_hours_ABBREVIATION); HTM_SELECT_End (); HTM_SELECT_Begin (false, @@ -1221,12 +1209,9 @@ static void Exa_ShowExamAnnouncement (long ExaCod, for (Minute = 0; Minute <= 59; Minute++) - { - fprintf (Gbl.F.Out,"",Minute); - } + HTM_OPTION (HTM_Type_UNSIGNED,&Minute, + Gbl.ExamAnns.ExaDat.StartTime.Minute == Minute,false, + "%02u '",Minute); HTM_SELECT_End (); } else if (Gbl.ExamAnns.ExaDat.StartTime.Hour) @@ -1252,13 +1237,9 @@ static void Exa_ShowExamAnnouncement (long ExaCod, for (Hour = 0; Hour <= 8; Hour++) - { - fprintf (Gbl.F.Out,"", - Hour,Txt_hours_ABBREVIATION); - } + HTM_OPTION (HTM_Type_UNSIGNED,&Hour, + Gbl.ExamAnns.ExaDat.Duration.Hour == Hour,false, + "%02u %s",Hour,Txt_hours_ABBREVIATION); HTM_SELECT_End (); HTM_SELECT_Begin (false, @@ -1266,12 +1247,9 @@ static void Exa_ShowExamAnnouncement (long ExaCod, for (Minute = 0; Minute <= 59; Minute++) - { - fprintf (Gbl.F.Out,"",Minute); - } + HTM_OPTION (HTM_Type_UNSIGNED,&Minute, + Gbl.ExamAnns.ExaDat.Duration.Minute == Minute,false, + "%02u '",Minute); HTM_SELECT_End (); } else if (Gbl.ExamAnns.ExaDat.Duration.Hour || diff --git a/swad_file_browser.c b/swad_file_browser.c index 63fe76160..2ec933dd1 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -9370,6 +9370,7 @@ void Brw_ShowFileMetadata (void) bool ShowPhoto; char PhotoURL[PATH_MAX + 1]; Brw_License_t License; + unsigned LicenseUnsigned; /***** Get parameters related to file browser *****/ Brw_GetParAndInitFileBrowser (); @@ -9577,17 +9578,12 @@ void Brw_ShowFileMetadata (void) { HTM_SELECT_Begin (false, "id=\"PublicFile\" name=\"PublicFile\""); - - fprintf (Gbl.F.Out,"",Txt_Private_available_to_certain_users_identified); - - fprintf (Gbl.F.Out,"",Txt_Public_open_educational_resource_OER_for_everyone); - + HTM_OPTION (HTM_Type_STRING,"N", + !FileMetadata.IsPublic,false, + "%s",Txt_Private_available_to_certain_users_identified); + HTM_OPTION (HTM_Type_STRING,"Y", + FileMetadata.IsPublic,false, + "%s",Txt_Public_open_educational_resource_OER_for_everyone); HTM_SELECT_End (); } else // I can not edit file properties @@ -9617,10 +9613,10 @@ void Brw_ShowFileMetadata (void) License < Brw_NUM_LICENSES; License++) { - fprintf (Gbl.F.Out,"",Txt_LICENSES[License]); + LicenseUnsigned = (unsigned) License; + HTM_OPTION (HTM_Type_UNSIGNED,&LicenseUnsigned, + License == FileMetadata.License,false, + "%s",Txt_LICENSES[License]); } HTM_SELECT_End (); } @@ -12140,12 +12136,9 @@ void Brw_AskRemoveOldFiles (void) for (Months = Brw_MIN_MONTHS_TO_REMOVE_OLD_FILES; Months <= Brw_MAX_MONTHS_IN_BRIEFCASE; Months++) - { - fprintf (Gbl.F.Out,"%u",Months); - } + HTM_OPTION (HTM_Type_UNSIGNED,&Months, + Months == Brw_DEF_MONTHS_TO_REMOVE_OLD_FILES,false, + "%u",Months); HTM_SELECT_End (); fprintf (Gbl.F.Out," "); fprintf (Gbl.F.Out,Txt_Remove_files_older_than_PART_2_OF_2, diff --git a/swad_photo.c b/swad_photo.c index b901bd26d..e2a40ed8a 100644 --- a/swad_photo.c +++ b/swad_photo.c @@ -1783,6 +1783,7 @@ static void Pho_PutSelectorForTypeOfAvg (void) extern const char *Txt_Average_type; extern const char *Txt_AVERAGE_PHOTO_TYPES[Pho_NUM_AVERAGE_PHOTO_TYPES]; Pho_AvgPhotoTypeOfAverage_t TypeOfAvg; + unsigned TypeOfAvgUnsigned; HTM_TR_Begin (NULL); @@ -1803,10 +1804,10 @@ static void Pho_PutSelectorForTypeOfAvg (void) TypeOfAvg < Pho_NUM_AVERAGE_PHOTO_TYPES; TypeOfAvg++) { - fprintf (Gbl.F.Out,"",Txt_AVERAGE_PHOTO_TYPES[TypeOfAvg]); + TypeOfAvgUnsigned = (unsigned) TypeOfAvg; + HTM_OPTION (HTM_Type_UNSIGNED,&TypeOfAvgUnsigned, + TypeOfAvg == Gbl.Stat.DegPhotos.TypeOfAverage,false, + "%s",Txt_AVERAGE_PHOTO_TYPES[TypeOfAvg]); } HTM_SELECT_End (); Frm_EndForm (); @@ -1847,6 +1848,7 @@ static void Pho_PutSelectorForHowComputePhotoSize (void) extern const char *Txt_Size_of_photos; extern const char *Txt_STAT_DEGREE_PHOTO_SIZE[Pho_NUM_HOW_COMPUTE_PHOTO_SIZES]; Pho_HowComputePhotoSize_t PhoSi; + unsigned PhoSiUnsigned; HTM_TR_Begin (NULL); @@ -1867,10 +1869,10 @@ static void Pho_PutSelectorForHowComputePhotoSize (void) PhoSi < Pho_NUM_HOW_COMPUTE_PHOTO_SIZES; PhoSi++) { - fprintf (Gbl.F.Out,"",Txt_STAT_DEGREE_PHOTO_SIZE[PhoSi]); + PhoSiUnsigned = (unsigned) PhoSi; + HTM_OPTION (HTM_Type_UNSIGNED,&PhoSiUnsigned, + PhoSi == Gbl.Stat.DegPhotos.HowComputePhotoSize,false, + "%s",Txt_STAT_DEGREE_PHOTO_SIZE[PhoSi]); } HTM_SELECT_End (); Frm_EndForm (); @@ -1911,6 +1913,7 @@ static void Pho_PutSelectorForHowOrderDegrees (void) extern const char *Txt_Sort_degrees_by; extern const char *Txt_STAT_DEGREE_PHOTO_ORDER[Pho_NUM_HOW_ORDER_DEGREES]; Pho_HowOrderDegrees_t Order; + unsigned OrderUnsigned; HTM_TR_Begin (NULL); @@ -1931,10 +1934,10 @@ static void Pho_PutSelectorForHowOrderDegrees (void) Order < Pho_NUM_HOW_ORDER_DEGREES; Order++) { - fprintf (Gbl.F.Out,"",Txt_STAT_DEGREE_PHOTO_ORDER[Order]); + OrderUnsigned = (unsigned) Order; + HTM_OPTION (HTM_Type_UNSIGNED,&OrderUnsigned, + Order == Gbl.Stat.DegPhotos.HowOrderDegrees,false, + "%s",Txt_STAT_DEGREE_PHOTO_ORDER[Order]); } HTM_SELECT_End (); Frm_EndForm (); @@ -1997,6 +2000,8 @@ static void Pho_PutLinkToCalculateDegreeStats (void) struct Degree Deg; long EstimatedTimeToComputeAvgPhotoInMicroseconds; char StrEstimatedTimeToComputeAvgPhoto[Dat_MAX_BYTES_TIME + 1]; + bool Selected; + bool Disabled; if ((Deg.DegCod = Pho_GetDegWithAvgPhotoLeastRecentlyUpdated ()) > 0) { @@ -2037,15 +2042,17 @@ static void Pho_PutLinkToCalculateDegreeStats (void) Sta_WriteTime (StrEstimatedTimeToComputeAvgPhoto, EstimatedTimeToComputeAvgPhotoInMicroseconds); - fprintf (Gbl.F.Out,"", - Degs.Lst[NumDeg].DegCod, - Degs.Lst[NumDeg].DegCod == Deg.DegCod ? " selected=\"selected\"" : - ((Pho_GetTimeAvgPhotoWasComputed (Degs.Lst[NumDeg].DegCod) >= - Gbl.StartExecutionTimeUTC - Cfg_MIN_TIME_TO_RECOMPUTE_AVG_PHOTO) ? " disabled=\"disabled\"" : - ""), - Degs.Lst[NumDeg].ShrtName, - Txt_time, - StrEstimatedTimeToComputeAvgPhoto); + Selected = (Degs.Lst[NumDeg].DegCod == Deg.DegCod); + if (Selected) + Disabled = false; + else + // Too recently computed ? + Disabled = Pho_GetTimeAvgPhotoWasComputed (Degs.Lst[NumDeg].DegCod) >= + Gbl.StartExecutionTimeUTC - Cfg_MIN_TIME_TO_RECOMPUTE_AVG_PHOTO; + HTM_OPTION (HTM_Type_LONG,&Degs.Lst[NumDeg].DegCod,Selected,Disabled, + "%s (%s: %s)", + Degs.Lst[NumDeg].ShrtName, + Txt_time,StrEstimatedTimeToComputeAvgPhoto); } HTM_SELECT_End ();