diff --git a/swad_changelog.h b/swad_changelog.h index f0a9d27c2..5804f851c 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -103,11 +103,12 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 14.105.2 (2015/03/30)" +#define Log_PLATFORM_VERSION "SWAD 14.105.3 (2015/04/01)" // 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 /* + Version 14.105.3: Apr 01, 2015 Changes in layout of course configuration and exam announcements. (183912 lines) Version 14.105.2: Mar 30, 2015 Some messages translated. (183941 lines) Version 14.105.1: Mar 30, 2015 Shared record card is shown after updating course record card. (183937 lines) Version 14.105: Mar 30, 2015 Removed option in the assessment tab to view course card. (183932 lines) diff --git a/swad_course.c b/swad_course.c index df022c4aa..c17cf744c 100644 --- a/swad_course.c +++ b/swad_course.c @@ -433,6 +433,15 @@ static void Crs_Configuration (bool PrintView) Gbl.Prefs.IconsURL, (Indicators.CountIndicators == Ind_NUM_INDICATORS) ? "ok_green" : "warning"); + + if (IsForm) + { + fprintf (Gbl.F.Out,"" + ""); + Lay_PutConfirmButton (Txt_Save); + fprintf (Gbl.F.Out,"" + ""); + } } /***** End of the frame *****/ @@ -440,10 +449,7 @@ static void Crs_Configuration (bool PrintView) /***** End form *****/ if (IsForm) - { - Lay_PutConfirmButton (Txt_Save); Act_FormEnd (); - } } /*****************************************************************************/ diff --git a/swad_exam.c b/swad_exam.c index 10f12eb57..9d9490a3f 100644 --- a/swad_exam.c +++ b/swad_exam.c @@ -474,7 +474,6 @@ static void Exa_ListExamAnnouncements (Exa_tTypeViewExamAnnouncement_t TypeViewE /***** Show exam announcement *****/ Exa_ShowExamAnnouncement (ExaCod,TypeViewExamAnnouncement); - fprintf (Gbl.F.Out,"
"); /***** Free memory of the exam announcement *****/ Exa_FreeMemExamAnnouncement (); @@ -718,6 +717,9 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_ { extern const char *Txt_YEAR_OF_DEGREE[1+Deg_MAX_YEARS_PER_DEGREE]; extern const char *The_ClassFormul[The_NUM_THEMES]; + extern const char *Txt_Remove; + extern const char *Txt_Edit; + extern const char *Txt_Print; extern const char *Txt_EXAM_ANNOUNCEMENT; extern const char *Txt_EXAM_ANNOUNCEMENT_Course; extern const char *Txt_EXAM_ANNOUNCEMENT_Year; @@ -737,10 +739,6 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_ extern const char *Txt_hours; extern const char *Txt_minute; extern const char *Txt_minutes; - extern const char *Txt_Edit_announcement_of_exam; - extern const char *Txt_Edit; - extern const char *Txt_Remove_announcement_of_exam; - extern const char *Txt_Remove; extern const char *Txt_Publish_announcement_OF_EXAM; const char *StyleTitle = "CONV_TIT"; const char *StyleForm = "CONV_NEG"; @@ -756,12 +754,6 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_ switch (TypeViewExamAnnouncement) { case Exa_NORMAL_VIEW: - /***** Link to print view *****/ - fprintf (Gbl.F.Out,"
"); - Lay_PutLinkToPrintView1 (ActPrnExaAnn); - Par_PutHiddenParamLong ("ExaCod",ExaCod); - Lay_PutLinkToPrintView2 (); - fprintf (Gbl.F.Out,"
"); break; case Exa_PRINT_VIEW: StyleTitle = "CONV_TIT_IMPR"; @@ -770,18 +762,68 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_ break; case Exa_FORM_VIEW: StyleForm = The_ClassFormul[Gbl.Prefs.Theme]; - /***** Start form *****/ - Act_FormStart (ActRcvExaAnn); - if (ExaCod > 0) - Par_PutHiddenParamLong ("ExaCod",ExaCod); break; } /***** Start frame *****/ Lay_StartRoundFrameTable10 ("500px",0,NULL); + + if (TypeViewExamAnnouncement == Exa_NORMAL_VIEW) + { + fprintf (Gbl.F.Out,"" \ + ""); + + if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_TEACHER || + Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SYS_ADM) + { + /***** Link to remove this exam announcement *****/ + Act_FormStart (ActRemExaAnn); + Par_PutHiddenParamLong ("ExaCod",ExaCod); + Act_LinkFormSubmit (Txt_Remove,The_ClassFormul[Gbl.Prefs.Theme]); + fprintf (Gbl.F.Out,"\"%s\""" + "", + Gbl.Prefs.IconsURL,Txt_Remove); + Act_FormEnd (); + + /***** Link to edit this exam announcement *****/ + Act_FormStart (ActEdiExaAnn); + Par_PutHiddenParamLong ("ExaCod",ExaCod); + Act_LinkFormSubmit (Txt_Edit,The_ClassFormul[Gbl.Prefs.Theme]); + fprintf (Gbl.F.Out,"\"%s\""" + "", + Gbl.Prefs.IconsURL,Txt_Edit); + Act_FormEnd (); + } + + /***** Link to print view *****/ + Act_FormStart (ActPrnExaAnn); + Par_PutHiddenParamLong ("ExaCod",ExaCod); + Act_LinkFormSubmit (Txt_Print,The_ClassFormul[Gbl.Prefs.Theme]); + fprintf (Gbl.F.Out,"\"%s\""" + "", + Gbl.Prefs.IconsURL,Txt_Print); + Act_FormEnd (); + + fprintf (Gbl.F.Out,"" + ""); + } + fprintf (Gbl.F.Out,"" \ - "" \ - ""); + "" \ - ""); - - /***** Create link to remove this exam announcement *****/ - fprintf (Gbl.F.Out,"" \ - ""); - break; - default: - break; - } break; case Exa_PRINT_VIEW: /* Bottom space used for signatures */ - fprintf (Gbl.F.Out,"" \ - "" \ - "", - StyleForm); - break; - default: + fprintf (Gbl.F.Out,"
"); break; + case Exa_FORM_VIEW: + /* Send button */ + if (ExaCod > 0) + Lay_PutConfirmButton (Txt_Publish_announcement_OF_EXAM); + else + Lay_PutCreateButton (Txt_Publish_announcement_OF_EXAM); + Act_FormEnd (); + break; } /***** End frame *****/ - fprintf (Gbl.F.Out,"
"); + + if (TypeViewExamAnnouncement == Exa_FORM_VIEW) + { + /***** Start form *****/ + Act_FormStart (ActRcvExaAnn); + if (ExaCod > 0) + Par_PutHiddenParamLong ("ExaCod",ExaCod); + } + + fprintf (Gbl.F.Out,""); /***** Institution logo *****/ fprintf (Gbl.F.Out,"" \ @@ -842,7 +884,8 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_ StyleNormal); if (TypeViewExamAnnouncement == Exa_FORM_VIEW) { - fprintf (Gbl.F.Out,"", + fprintf (Gbl.F.Out,"", Cns_MAX_LENGTH_STRING,Gbl.ExamAnnouncement.CrsFullName); } else @@ -890,7 +933,8 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_ StyleForm,Txt_EXAM_ANNOUNCEMENT_Session, StyleNormal); if (TypeViewExamAnnouncement == Exa_FORM_VIEW) - fprintf (Gbl.F.Out,"", + fprintf (Gbl.F.Out,"", Cns_MAX_LENGTH_STRING,Gbl.ExamAnnouncement.Session); else fprintf (Gbl.F.Out,"%s",Gbl.ExamAnnouncement.Session); @@ -1188,88 +1232,34 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_ fprintf (Gbl.F.Out,"%s",Gbl.ExamAnnouncement.OtherInfo); } fprintf (Gbl.F.Out,"" \ - ""); + "" \ + "
"); - /***** Bottom space used for signatures, or links to edit / remove the exam announcement *****/ switch (TypeViewExamAnnouncement) { case Exa_NORMAL_VIEW: - switch (Gbl.Usrs.Me.LoggedRole) - { - case Rol_ROLE_TEACHER: - case Rol_ROLE_DEG_ADM: - case Rol_ROLE_SYS_ADM: - /***** Create link to edit this exam announcement *****/ - fprintf (Gbl.F.Out,"
"); - Act_FormStart (ActEdiExaAnn); - Par_PutHiddenParamLong ("ExaCod",ExaCod); - Act_LinkFormSubmit (Txt_Edit_announcement_of_exam,The_ClassFormul[Gbl.Prefs.Theme]); - fprintf (Gbl.F.Out,"\"%s\"" \ - " %s", - Gbl.Prefs.IconsURL,Txt_Edit_announcement_of_exam,Txt_Edit); - Act_FormEnd (); - fprintf (Gbl.F.Out,""); - Act_FormStart (ActRemExaAnn); - Par_PutHiddenParamLong ("ExaCod",ExaCod); - Act_LinkFormSubmit (Txt_Remove_announcement_of_exam,The_ClassFormul[Gbl.Prefs.Theme]); - fprintf (Gbl.F.Out,"\"%s\"" \ - " %s", - Gbl.Prefs.IconsURL, - Txt_Remove_announcement_of_exam, - Txt_Remove); - Act_FormEnd (); - fprintf (Gbl.F.Out,"
" - " 
" - " 
" - " 
" - " 
" - " " - "
" \ - "" \ + fprintf (Gbl.F.Out,"" \ ""); Lay_EndRoundFrameTable10 (); - switch (TypeViewExamAnnouncement) - { - case Exa_NORMAL_VIEW: - break; - case Exa_PRINT_VIEW: - QR_ExamAnnnouncement (); - break; - case Exa_FORM_VIEW: - if (ExaCod > 0) - Lay_PutConfirmButton (Txt_Publish_announcement_OF_EXAM); - else - Lay_PutCreateButton (Txt_Publish_announcement_OF_EXAM); - Act_FormEnd (); - break; - } + if (TypeViewExamAnnouncement == Exa_PRINT_VIEW) + QR_ExamAnnnouncement (); } /*****************************************************************************/ diff --git a/swad_test.c b/swad_test.c index 00c66209f..9cdb41db2 100644 --- a/swad_test.c +++ b/swad_test.c @@ -1390,9 +1390,10 @@ static unsigned long Tst_GetEnabledTagsFromThisCrs (MYSQL_RES **mysql_res) static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res,bool ShowOnlyEnabledTags) { extern const char *The_ClassFormul[The_NUM_THEMES]; + extern const char *Txt_Tags; + extern const char *Txt_All_tags; extern const char *Txt_Tag_not_allowed; extern const char *Txt_Tag_allowed; - extern const char *Txt_All_tags; unsigned long NumRow; MYSQL_ROW row; bool TagHidden = false; @@ -1400,7 +1401,7 @@ static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res,bool char TagText[Tst_MAX_BYTES_TAG+1]; /***** Start table *****/ - Lay_StartRoundFrameTable10 (NULL,0,NULL); + Lay_StartRoundFrameTable10 (NULL,0,Txt_Tags); /***** Select all tags *****/ fprintf (Gbl.F.Out,""); @@ -2007,6 +2008,7 @@ static void Tst_CheckAndCorrectNumbersQst (void) static void Tst_ShowFormAnswerTypes (void) { extern const char *The_ClassFormul[The_NUM_THEMES]; + extern const char *Txt_Types_of_answers; extern const char *Txt_All_types_of_answers; extern const char *Txt_TST_STR_ANSWER_TYPES[Tst_NUM_ANS_TYPES]; Tst_AnswerType_t AnsType; @@ -2014,7 +2016,7 @@ static void Tst_ShowFormAnswerTypes (void) const char *Ptr; /***** Table start *****/ - Lay_StartRoundFrameTable10 (NULL,0,NULL); + Lay_StartRoundFrameTable10 (NULL,0,Txt_Types_of_answers); /***** Select all types of answers *****/ fprintf (Gbl.F.Out,"" diff --git a/swad_text.c b/swad_text.c index fa6ef12bd..ffccd3b37 100644 --- a/swad_text.c +++ b/swad_text.c @@ -9099,27 +9099,6 @@ const char *Txt_Edit = "Editar"; #endif -const char *Txt_Edit_announcement_of_exam = -#if L==0 - "Editar convocatoria de examen"; // Necessita traduccio -#elif L==1 - "Aufruf für Prüfung bearbeiten"; -#elif L==2 - "Edit announcement of exam"; -#elif L==3 - "Editar convocatoria de examen"; -#elif L==4 - "Éditer convocation à l'examen"; -#elif L==5 - "Editar convocatoria de examen"; // Okoteve traducción -#elif L==6 - "Editare sessione d'esame"; -#elif L==7 - "Edytuj ogloszenie egzaminu"; -#elif L==8 - "Editar chamada para o exame"; -#endif - const char *Txt_Edit_assignment = #if L==0 "Editar actividad"; // Necessita traduccio @@ -28295,27 +28274,6 @@ const char *Txt_Remove_all_students = "Tirar todos estudantes"; #endif -const char *Txt_Remove_announcement_of_exam = -#if L==0 - "Eliminar convocatòria d'examen"; -#elif L==1 - "Entfernen Aufruf für Prüfung"; -#elif L==2 - "Remove announcement of exam"; -#elif L==3 - "Eliminar convocatoria de examen"; -#elif L==4 - "Supprimer convocation à l'examen"; -#elif L==5 - "Eliminar convocatoria de examen"; // Okoteve traducción -#elif L==6 - "Rimuovere sessione d'esame"; -#elif L==7 - "Usuń ogloszenie egzaminu"; -#elif L==8 - "Remover chamada para o exame"; -#endif - const char *Txt_Remove_assignment = #if L==0 "Eliminar activitat"; @@ -45872,27 +45830,6 @@ const char *Txt_Type_of_group_X_removed = // Warning: it is very important to in "Type of group %s removed."; // Necessita de tradução #endif -const char *Txt_Types_of_group = -#if L==0 - "Tipus de grup"; -#elif L==1 - "Gruppen-Typen"; -#elif L==2 - "Types of group"; -#elif L==3 - "Tipos de grupo"; -#elif L==4 - "Types de groupe"; -#elif L==5 - "Tipos de grupo"; // Okoteve traducción -#elif L==6 - "Tipi di gruppo"; -#elif L==7 - "Types of group"; // Potrzebujesz tlumaczenie -#elif L==8 - "Tipos de grupo"; -#endif - const char *Txt_Type_or_paste_a_list_of_IDs_nicks_or_emails_ = #if L==0 "Escriba o pegue una lista" @@ -46041,6 +45978,48 @@ const char *Txt_TYPES_OF_DEGREE_Without_degrees = "Sem titulaçoes"; #endif +const char *Txt_Types_of_answers = // Answers of a test +#if L==0 + "Tipus de respostes"; +#elif L==1 + "Antworttypen"; +#elif L==2 + "Types of answers"; +#elif L==3 + "Tipos de respuestas"; +#elif L==4 + "Types de réponses"; +#elif L==5 + "Tipos de respuestas"; // Okoteve traducción +#elif L==6 + "Tipi di risposte"; +#elif L==7 + "Typy odpowiedzi"; +#elif L==8 + "Tipos de respostas"; +#endif + +const char *Txt_Types_of_group = +#if L==0 + "Tipus de grup"; +#elif L==1 + "Gruppen-Typen"; +#elif L==2 + "Types of group"; +#elif L==3 + "Tipos de grupo"; +#elif L==4 + "Types de groupe"; +#elif L==5 + "Tipos de grupo"; // Okoteve traducción +#elif L==6 + "Tipi di gruppo"; +#elif L==7 + "Types of group"; // Potrzebujesz tlumaczenie +#elif L==8 + "Tipos de grupo"; +#endif + const char *Txt_Undo = #if L==0 "Desfer";