diff --git a/css/swad18.88.css b/css/swad18.89.2.css similarity index 99% rename from css/swad18.88.css rename to css/swad18.89.2.css index d14ca548..92bb6bba 100644 --- a/css/swad18.88.css +++ b/css/swad18.89.2.css @@ -2467,80 +2467,51 @@ a:hover img.CENTRE_PHOTO_SHOW margin:0 0 0 1em; } -.TEST_IMG_SHOW_STEM_CONTAINER +.TEST_MED_SHOW_CONTAINER { box-sizing:border-box; width:100%; margin:10px 0; } -.TEST_IMG_SHOW_STEM +.TEST_MED_SHOW { box-sizing:border-box; width:100%; border-radius:4px; } -.TEST_IMG_SHOW_ANS_CONTAINER - { - box-sizing:border-box; - width:100%; - margin:10px 0; - } -.TEST_IMG_SHOW_ANS - { - box-sizing:border-box; - width:100%; - border-radius:4px; - } -.TEST_IMG_EDIT_LIST_STEM_CONTAINER +.TEST_MED_EDIT_LIST_CONTAINER { box-sizing:border-box; width:100%; margin:5px 0; } -.TEST_IMG_EDIT_LIST_STEM - { - box-sizing:border-box; - width:100%; - border-radius:2px; - } -.TEST_IMG_EDIT_LIST_ANS_CONTAINER - { - box-sizing:border-box; - width:100%; - margin:5px 0; - } -.TEST_IMG_EDIT_LIST_ANS +.TEST_MED_EDIT_LIST { box-sizing:border-box; width:100%; border-radius:2px; } -.TEST_FORM_EDIT_MED +.TEST_MED_EDIT_FORM { box-sizing:border-box; margin:15px 0; text-align:left; vertical-align:top; } +.TEST_MED_INPUT + { + box-sizing:border-box; + margin:0 auto; + width:480px; + } -.TEST_IMG_EDIT_ONE_STEM_CONTAINER +.TEST_MED_EDIT_ONE_CONTAINER { box-sizing:border-box; width:100%; } -.TEST_IMG_EDIT_ONE_STEM - { - box-sizing:border-box; - width:100%; - border-radius:4px; - } -.TEST_IMG_EDIT_ONE_ANS_CONTAINER - { - box-sizing:border-box; - width:100%; - } -.TEST_IMG_EDIT_ONE_ANS +.TEST_MED_EDIT_ONE { box-sizing:border-box; width:100%; @@ -2747,12 +2718,6 @@ a:hover img.CENTRE_PHOTO_SHOW } /*********************** Media (image/video) uploading ***********************/ -.MED_UPL_CON /* Upload container */ - { - text-align:center; - margin-bottom:6px; - } - .MED_PLAY { position:relative; diff --git a/swad_changelog.h b/swad_changelog.h index 5731b32e..1435546f 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -464,10 +464,12 @@ En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 18.89.1 (2019-03-26)" -#define CSS_FILE "swad18.88.css" +#define Log_PLATFORM_VERSION "SWAD 18.89.2 (2019-03-27)" +#define CSS_FILE "swad18.89.2.css" #define JS_FILE "swad18.88.js" /* + Version 18.89.2: Mar 27, 2019 Help link when writing a test question. + Changes in multimedia attachment form. (241111 lines) Version 18.89.1: Mar 26, 2019 Corrections in help links after recent changes. (241090 lines) Version 18.89: Mar 26, 2019 Corrections in help links after recent changes. Module swad_preference is renamed swad_setting. (241090 lines) diff --git a/swad_firewall.c b/swad_firewall.c index 78be37b3..3dd350d7 100644 --- a/swad_firewall.c +++ b/swad_firewall.c @@ -1,4 +1,4 @@ -// swad_firewall.c: firewall to mitigate mitigate denial of service attacks +// swad_firewall.c: firewall to mitigate denial of service attacks /* SWAD (Shared Workspace At a Distance), @@ -105,7 +105,7 @@ void FW_CheckFirewallAndExitIfBanned (void) Gbl.IP); /***** Exit with status 403 if banned *****/ - /* RFC 6585 suggests "429 Too Many Requests", according to + /* RFC 6585 suggests "403 Forbidden", according to https://stackoverflow.com/questions/7447283/proper-http-status-to-return-for-hacking-attempts https://tools.ietf.org/html/rfc2616#section-10.4.4 */ if (NumCurrentBans) diff --git a/swad_firewall.h b/swad_firewall.h index 403cfff1..5f557e5c 100644 --- a/swad_firewall.h +++ b/swad_firewall.h @@ -1,4 +1,4 @@ -// swad_firewall.h: firewall to mitigate mitigate denial of service attacks +// swad_firewall.h: firewall to mitigate denial of service attacks #ifndef _SWAD_FW #define _SWAD_FW diff --git a/swad_game.c b/swad_game.c index 2dbfc3e8..24128e99 100644 --- a/swad_game.c +++ b/swad_game.c @@ -2928,8 +2928,8 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Game *Game, /* Show media */ Med_ShowMedia (&Gbl.Test.Media, - "TEST_IMG_EDIT_LIST_STEM_CONTAINER", - "TEST_IMG_EDIT_LIST_STEM"); + "TEST_MED_EDIT_LIST_STEM_CONTAINER", + "TEST_MED_EDIT_LIST_STEM"); /* Show feedback (row[3]) */ Tst_WriteQstFeedback (row[3],"TEST_EDI_LIGHT"); @@ -3561,8 +3561,8 @@ static void Gam_PlayGameShowQuestionAndAnswers (bool ShowAnswers) /* Show media */ Med_ShowMedia (&Gbl.Test.Media, - "TEST_IMG_EDIT_LIST_STEM_CONTAINER", - "TEST_IMG_EDIT_LIST_STEM"); + "TEST_MED_EDIT_LIST_STEM_CONTAINER", + "TEST_MED_EDIT_LIST_STEM"); /* Write answers? */ if (ShowAnswers) diff --git a/swad_help_URL.c b/swad_help_URL.c index da6add7d..51153590 100644 --- a/swad_help_URL.c +++ b/swad_help_URL.c @@ -29,6 +29,27 @@ #define L 3 // English #endif +const char *Hlp_Multimedia = +#if L==1 + "Multimedia.es"; +#elif L==2 + "Multimedia.en"; +#elif L==3 + "Multimedia.en"; +#elif L==4 + "Multimedia.es"; +#elif L==5 + "Multimedia.en"; +#elif L==6 + "Multimedia.es"; +#elif L==7 + "Multimedia.en"; +#elif L==8 + "Multimedia.en"; +#elif L==9 + "Multimedia.en"; +#endif + /***** START tab *****/ const char *Hlp_START_Search = @@ -1180,6 +1201,27 @@ const char *Hlp_ASSESSMENT_Tests = "ASSESSMENT.Tests.en"; #endif +const char *Hlp_ASSESSMENT_Tests_writing_a_question = +#if L==1 + "ASSESSMENT.Tests.es#escribir-una-pregunta"; +#elif L==2 + "ASSESSMENT.Tests.en#writing-a-question"; +#elif L==3 + "ASSESSMENT.Tests.en#writing-a-question"; +#elif L==4 + "ASSESSMENT.Tests.es#escribir-una-pregunta"; +#elif L==5 + "ASSESSMENT.Tests.en#writing-a-question"; +#elif L==6 + "ASSESSMENT.Tests.es#escribir-una-pregunta"; +#elif L==7 + "ASSESSMENT.Tests.en#writing-a-question"; +#elif L==8 + "ASSESSMENT.Tests.en#writing-a-question"; +#elif L==9 + "ASSESSMENT.Tests.en#writing-a-question"; +#endif + const char *Hlp_ASSESSMENT_Tests_test_results = #if L==1 "ASSESSMENT.Tests.es#resultados-de-tests"; diff --git a/swad_media.c b/swad_media.c index 15c1adad..940ed50e 100644 --- a/swad_media.c +++ b/swad_media.c @@ -36,6 +36,7 @@ #include // For the macro WEXITSTATUS #include // For unlink, lstat +#include "swad_box.h" #include "swad_config.h" #include "swad_cookie.h" #include "swad_database.h" @@ -324,6 +325,8 @@ void Med_GetMediaDataByCod (struct Media *Media) void Med_PutMediaUploader (int NumMediaInForm,const char *ClassInput) { + extern const char *Hlp_Multimedia; + extern const char *Txt_Multimedia; extern const char *Txt_Image_video; extern const char *Txt_Title_attribution; extern const char *Txt_Link; @@ -336,8 +339,9 @@ void Med_PutMediaUploader (int NumMediaInForm,const char *ClassInput) /***** Create unique id for this media uploader *****/ Frm_SetUniqueId (Id); - /***** Start container *****/ - fprintf (Gbl.F.Out,"
"); // container + /***** Start box *****/ + Box_StartBox (NULL,Txt_Multimedia,NULL, + Hlp_Multimedia,Box_NOT_CLOSABLE); /***** Action to perform on media *****/ Par_PutHiddenParamUnsigned (ParamUploadMedia.Action,(unsigned) Med_ACTION_NEW_MEDIA); @@ -451,8 +455,8 @@ void Med_PutMediaUploader (int NumMediaInForm,const char *ClassInput) /***** End input fields *****/ fprintf (Gbl.F.Out,"
"); // input fields - /***** End container *****/ - fprintf (Gbl.F.Out,""); // container + /***** End box *****/ + Box_EndBox (); } /*****************************************************************************/ diff --git a/swad_test.c b/swad_test.c index 7b37f8f6..47593493 100644 --- a/swad_test.c +++ b/swad_test.c @@ -161,9 +161,6 @@ static void Tst_WriteQstAndAnsTest (Tst_ActionToDoWithQuestions_t ActionToDoWith unsigned NumQst,long QstCod,MYSQL_ROW row, double *ScoreThisQst,bool *AnswerIsNotBlank); static void Tst_PutFormToEditQstMedia (struct Media *Media,int NumMediaInForm, - const char *ClassContainer, - const char *ClassMedia, - const char *ClassMediaInput, bool OptionsDisabled); static void Tst_UpdateScoreQst (long QstCod,float ScoreThisQst,bool AnswerIsNotBlank); static void Tst_UpdateMyNumAccessTst (unsigned NumAccessesTst); @@ -1056,8 +1053,8 @@ static void Tst_WriteQstAndAnsTest (Tst_ActionToDoWithQuestions_t ActionToDoWith Gbl.Test.Media.MedCod = Str_ConvertStrCodToLongCod (row[6]); Med_GetMediaDataByCod (&Gbl.Test.Media); Med_ShowMedia (&Gbl.Test.Media, - "TEST_IMG_SHOW_STEM_CONTAINER", - "TEST_IMG_SHOW_STEM"); + "TEST_MED_SHOW_CONTAINER", + "TEST_MED_SHOW"); /***** Write answers depending on shuffle (row[3]) and feedback (row[5]) *****/ switch (ActionToDoWithQuestions) @@ -1125,9 +1122,6 @@ void Tst_WriteQstStem (const char *Stem,const char *ClassStem) /*****************************************************************************/ static void Tst_PutFormToEditQstMedia (struct Media *Media,int NumMediaInForm, - const char *ClassContainer, - const char *ClassMedia, - const char *ClassMediaInput, bool OptionsDisabled) { extern const char *The_ClassFormInBox[The_NUM_THEMES]; @@ -1143,7 +1137,7 @@ static void Tst_PutFormToEditQstMedia (struct Media *Media,int NumMediaInForm, Med_SetParamNames (&ParamUploadMedia,NumMediaInForm); /***** Start container *****/ - fprintf (Gbl.F.Out,"
"); + fprintf (Gbl.F.Out,"
"); /***** Choice 1: No media *****/ fprintf (Gbl.F.Out,"", Txt_Current_image_video); - Med_ShowMedia (Media,ClassContainer,ClassMedia); + Med_ShowMedia (Media, + "TEST_MED_EDIT_ONE_CONTAINER", + "TEST_MED_EDIT_ONE"); /***** Choice 3: Change media *****/ UniqueId++; @@ -1185,14 +1181,14 @@ static void Tst_PutFormToEditQstMedia (struct Media *Media,int NumMediaInForm, "%s: " "", Txt_Change_image_video); - Med_PutMediaUploader (NumMediaInForm,ClassMediaInput); + Med_PutMediaUploader (NumMediaInForm,"TEST_MED_INPUT"); /***** End container *****/ fprintf (Gbl.F.Out,"
"); } else // No current image /***** Attached media *****/ - Med_PutMediaUploader (NumMediaInForm,ClassMediaInput); + Med_PutMediaUploader (NumMediaInForm,"TEST_MED_INPUT"); } /*****************************************************************************/ @@ -1788,7 +1784,7 @@ static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res, static void Tst_ShowFormEditTags (void) { - extern const char *Hlp_ASSESSMENT_Tests; + extern const char *Hlp_ASSESSMENT_Tests_writing_a_question; extern const char *Txt_No_test_questions; extern const char *Txt_Tags; MYSQL_RES *mysql_res; @@ -1801,7 +1797,7 @@ static void Tst_ShowFormEditTags (void) { /***** Start box and table *****/ Box_StartBoxTable (NULL,Txt_Tags,NULL, - Hlp_ASSESSMENT_Tests,Box_NOT_CLOSABLE,2); + Hlp_ASSESSMENT_Tests_writing_a_question,Box_NOT_CLOSABLE,2); /***** Show tags *****/ for (NumRow = 0; @@ -2986,8 +2982,8 @@ static void Tst_ListOneOrMoreQuestionsForEdition (unsigned long NumRows, Gbl.Test.Media.MedCod = Str_ConvertStrCodToLongCod (row[6]); Med_GetMediaDataByCod (&Gbl.Test.Media); Med_ShowMedia (&Gbl.Test.Media, - "TEST_IMG_EDIT_LIST_STEM_CONTAINER", - "TEST_IMG_EDIT_LIST_STEM"); + "TEST_MED_EDIT_LIST_CONTAINER", + "TEST_MED_EDIT_LIST"); /* Write feedback (row[5]) and answers */ Tst_WriteQstFeedback (row[5],"TEST_EDI_LIGHT"); @@ -3222,8 +3218,8 @@ static void Tst_ListOneOrMoreQuestionsForSelection (long GamCod, Gbl.Test.Media.MedCod = Str_ConvertStrCodToLongCod (row[6]); Med_GetMediaDataByCod (&Gbl.Test.Media); Med_ShowMedia (&Gbl.Test.Media, - "TEST_IMG_EDIT_LIST_STEM_CONTAINER", - "TEST_IMG_EDIT_LIST_STEM"); + "TEST_MED_EDIT_LIST_CONTAINER", + "TEST_MED_EDIT_LIST"); /* Write feedback (row[5]) */ Tst_WriteQstFeedback (row[5],"TEST_EDI_LIGHT"); @@ -3412,8 +3408,8 @@ static void Tst_WriteAnswersEdit (long QstCod) "%s", Answer); Med_ShowMedia (&Gbl.Test.Answer.Options[NumOpt].Media, - "TEST_IMG_EDIT_LIST_ANS_CONTAINER", - "TEST_IMG_EDIT_LIST_ANS"); + "TEST_MED_EDIT_LIST_CONTAINER", + "TEST_MED_EDIT_LIST"); fprintf (Gbl.F.Out,"
"); /* Write the text of the feedback */ @@ -3769,8 +3765,8 @@ static void Tst_WriteChoiceAnsViewTest (unsigned NumQst,long QstCod,bool Shuffle NumQst,NumOpt, Gbl.Test.Answer.Options[NumOpt].Text); Med_ShowMedia (&Gbl.Test.Answer.Options[NumOpt].Media, - "TEST_IMG_SHOW_ANS_CONTAINER", - "TEST_IMG_SHOW_ANS"); + "TEST_MED_SHOW_CONTAINER", + "TEST_MED_SHOW"); fprintf (Gbl.F.Out,"" ""); } @@ -3956,8 +3952,8 @@ static void Tst_WriteChoiceAnsAssessTest (struct UsrData *UsrDat, "%s", Gbl.Test.Answer.Options[Indexes[NumOpt]].Text); Med_ShowMedia (&Gbl.Test.Answer.Options[Indexes[NumOpt]].Media, - "TEST_IMG_SHOW_ANS_CONTAINER", - "TEST_IMG_SHOW_ANS"); + "TEST_MED_SHOW_CONTAINER", + "TEST_MED_SHOW"); fprintf (Gbl.F.Out,""); if (Gbl.Test.Config.Feedback == Tst_FEEDBACK_FULL_FEEDBACK) if (Gbl.Test.Answer.Options[Indexes[NumOpt]].Feedback) @@ -4120,8 +4116,8 @@ static void Tst_WriteChoiceAnsViewGame (struct Game *Game, NumQst,NumOpt,Class, Gbl.Test.Answer.Options[NumOpt].Text); Med_ShowMedia (&Gbl.Test.Answer.Options[NumOpt].Media, - "TEST_IMG_SHOW_ANS_CONTAINER", - "TEST_IMG_SHOW_ANS"); + "TEST_MED_SHOW_CONTAINER", + "TEST_MED_SHOW"); fprintf (Gbl.F.Out,"" ""); @@ -4915,7 +4911,7 @@ void Tst_ShowFormEditOneQst (void) static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1], char Feedback[Cns_MAX_BYTES_TEXT + 1]) { - extern const char *Hlp_ASSESSMENT_Tests; + extern const char *Hlp_ASSESSMENT_Tests_writing_a_question; extern const char *The_ClassFormInBox[The_NUM_THEMES]; extern const char *Txt_Question_code_X; extern const char *Txt_New_question; @@ -4955,11 +4951,11 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1], Txt_Question_code_X, Gbl.Test.QstCod); Box_StartBox (NULL,Gbl.Title,Tst_PutIconToRemoveOneQst, - Hlp_ASSESSMENT_Tests,Box_NOT_CLOSABLE); + Hlp_ASSESSMENT_Tests_writing_a_question,Box_NOT_CLOSABLE); } else Box_StartBox (NULL,Txt_New_question,NULL, - Hlp_ASSESSMENT_Tests,Box_NOT_CLOSABLE); + Hlp_ASSESSMENT_Tests_writing_a_question,Box_NOT_CLOSABLE); /***** Start form *****/ Frm_StartForm (ActRcvTstQst); @@ -5061,9 +5057,6 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1], Txt_Stem, Stem); Tst_PutFormToEditQstMedia (&Gbl.Test.Media,-1, - "TEST_IMG_EDIT_ONE_STEM_CONTAINER", - "TEST_IMG_EDIT_ONE_STEM", - "STEM", // Title / attribution false); /***** Feedback *****/ @@ -5276,9 +5269,6 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1], /* Media */ Tst_PutFormToEditQstMedia (&Gbl.Test.Answer.Options[NumOpt].Media, (int) NumOpt, - "TEST_IMG_EDIT_ONE_ANS_CONTAINER", - "TEST_IMG_EDIT_ONE_ANS", - "ANSWER", // Form inputs OptionsDisabled); /* Feedback */ diff --git a/swad_text.c b/swad_text.c index 440223e9..9fe49ed1 100644 --- a/swad_text.c +++ b/swad_text.c @@ -23190,6 +23190,27 @@ const char *Txt_MSGS_Sent = "Enviadas"; #endif +const char *Txt_Multimedia = +#if L==1 // ca + "Multimèdia"; +#elif L==2 // de + "Multimedia"; +#elif L==3 // en + "Multimedia"; +#elif L==4 // es + "Multimedia"; +#elif L==5 // fr + "Multimédia"; +#elif L==6 // gn + "Multimedia"; +#elif L==7 // it + "Multimedialità"; +#elif L==8 // pl + "Multimedia"; +#elif L==9 // pt + "Multimédia"; +#endif + const char *Txt_Multiple_enrolment = // (to a type of group) #if L==1 // ca "¿Adscripción múltiple?"; // Necessita traduccio