Version 14.105.3

This commit is contained in:
Antonio Cañas Vargas 2015-04-01 12:54:25 +02:00
parent 49cf97e37e
commit f280080ead
5 changed files with 135 additions and 157 deletions

View File

@ -103,11 +103,12 @@
/****************************** Public constants *****************************/ /****************************** 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: // 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 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.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.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) Version 14.105: Mar 30, 2015 Removed option in the assessment tab to view course card. (183932 lines)

View File

@ -433,6 +433,15 @@ static void Crs_Configuration (bool PrintView)
Gbl.Prefs.IconsURL, Gbl.Prefs.IconsURL,
(Indicators.CountIndicators == Ind_NUM_INDICATORS) ? "ok_green" : (Indicators.CountIndicators == Ind_NUM_INDICATORS) ? "ok_green" :
"warning"); "warning");
if (IsForm)
{
fprintf (Gbl.F.Out,"<tr>"
"<td colspan=\"2\">");
Lay_PutConfirmButton (Txt_Save);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
}
} }
/***** End of the frame *****/ /***** End of the frame *****/
@ -440,10 +449,7 @@ static void Crs_Configuration (bool PrintView)
/***** End form *****/ /***** End form *****/
if (IsForm) if (IsForm)
{
Lay_PutConfirmButton (Txt_Save);
Act_FormEnd (); Act_FormEnd ();
}
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -474,7 +474,6 @@ static void Exa_ListExamAnnouncements (Exa_tTypeViewExamAnnouncement_t TypeViewE
/***** Show exam announcement *****/ /***** Show exam announcement *****/
Exa_ShowExamAnnouncement (ExaCod,TypeViewExamAnnouncement); Exa_ShowExamAnnouncement (ExaCod,TypeViewExamAnnouncement);
fprintf (Gbl.F.Out,"<br />");
/***** Free memory of the exam announcement *****/ /***** Free memory of the exam announcement *****/
Exa_FreeMemExamAnnouncement (); 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 *Txt_YEAR_OF_DEGREE[1+Deg_MAX_YEARS_PER_DEGREE];
extern const char *The_ClassFormul[The_NUM_THEMES]; 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;
extern const char *Txt_EXAM_ANNOUNCEMENT_Course; extern const char *Txt_EXAM_ANNOUNCEMENT_Course;
extern const char *Txt_EXAM_ANNOUNCEMENT_Year; 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_hours;
extern const char *Txt_minute; extern const char *Txt_minute;
extern const char *Txt_minutes; 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; extern const char *Txt_Publish_announcement_OF_EXAM;
const char *StyleTitle = "CONV_TIT"; const char *StyleTitle = "CONV_TIT";
const char *StyleForm = "CONV_NEG"; const char *StyleForm = "CONV_NEG";
@ -756,12 +754,6 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_
switch (TypeViewExamAnnouncement) switch (TypeViewExamAnnouncement)
{ {
case Exa_NORMAL_VIEW: case Exa_NORMAL_VIEW:
/***** Link to print view *****/
fprintf (Gbl.F.Out,"<div style=\"text-align:center;\">");
Lay_PutLinkToPrintView1 (ActPrnExaAnn);
Par_PutHiddenParamLong ("ExaCod",ExaCod);
Lay_PutLinkToPrintView2 ();
fprintf (Gbl.F.Out,"</div>");
break; break;
case Exa_PRINT_VIEW: case Exa_PRINT_VIEW:
StyleTitle = "CONV_TIT_IMPR"; StyleTitle = "CONV_TIT_IMPR";
@ -770,18 +762,68 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_
break; break;
case Exa_FORM_VIEW: case Exa_FORM_VIEW:
StyleForm = The_ClassFormul[Gbl.Prefs.Theme]; StyleForm = The_ClassFormul[Gbl.Prefs.Theme];
/***** Start form *****/
Act_FormStart (ActRcvExaAnn);
if (ExaCod > 0)
Par_PutHiddenParamLong ("ExaCod",ExaCod);
break; break;
} }
/***** Start frame *****/ /***** Start frame *****/
Lay_StartRoundFrameTable10 ("500px",0,NULL); Lay_StartRoundFrameTable10 ("500px",0,NULL);
if (TypeViewExamAnnouncement == Exa_NORMAL_VIEW)
{
fprintf (Gbl.F.Out,"<tr>" \
"<td style=\"text-align:left;\">");
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,"<img src=\"%s/delon16x16.gif\" alt=\"%s\""
" class=\"ICON16x16\" style=\"margin-left:10px;\" />"
"</a>",
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,"<img src=\"%s/edit16x16.gif\" alt=\"%s\""
" class=\"ICON16x16\" style=\"margin-left:10px;\" />"
"</a>",
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,"<img src=\"%s/print16x16.gif\" alt=\"%s\""
" class=\"ICON16x16\" style=\"margin-left:10px;\" />"
"</a>",
Gbl.Prefs.IconsURL,Txt_Print);
Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
}
fprintf (Gbl.F.Out,"<tr>" \ fprintf (Gbl.F.Out,"<tr>" \
"<td style=\"text-align:center;\">" \ "<td style=\"text-align:center;\">");
"<table style=\"width:100%%; padding:20px; border-spacing:3px;\">");
if (TypeViewExamAnnouncement == Exa_FORM_VIEW)
{
/***** Start form *****/
Act_FormStart (ActRcvExaAnn);
if (ExaCod > 0)
Par_PutHiddenParamLong ("ExaCod",ExaCod);
}
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\""
" style=\"width:100%%; padding:20px;\">");
/***** Institution logo *****/ /***** Institution logo *****/
fprintf (Gbl.F.Out,"<tr>" \ fprintf (Gbl.F.Out,"<tr>" \
@ -842,7 +884,8 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_
StyleNormal); StyleNormal);
if (TypeViewExamAnnouncement == Exa_FORM_VIEW) if (TypeViewExamAnnouncement == Exa_FORM_VIEW)
{ {
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"CrsName\" size=\"40\" maxlength=\"%u\" value=\"%s\" />", fprintf (Gbl.F.Out,"<input type=\"text\" name=\"CrsName\""
" size=\"30\" maxlength=\"%u\" value=\"%s\" />",
Cns_MAX_LENGTH_STRING,Gbl.ExamAnnouncement.CrsFullName); Cns_MAX_LENGTH_STRING,Gbl.ExamAnnouncement.CrsFullName);
} }
else else
@ -890,7 +933,8 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_
StyleForm,Txt_EXAM_ANNOUNCEMENT_Session, StyleForm,Txt_EXAM_ANNOUNCEMENT_Session,
StyleNormal); StyleNormal);
if (TypeViewExamAnnouncement == Exa_FORM_VIEW) if (TypeViewExamAnnouncement == Exa_FORM_VIEW)
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"ExamSession\" size=\"40\" maxlength=\"%u\" value=\"%s\" />", fprintf (Gbl.F.Out,"<input type=\"text\" name=\"ExamSession\""
" size=\"30\" maxlength=\"%u\" value=\"%s\" />",
Cns_MAX_LENGTH_STRING,Gbl.ExamAnnouncement.Session); Cns_MAX_LENGTH_STRING,Gbl.ExamAnnouncement.Session);
else else
fprintf (Gbl.F.Out,"%s",Gbl.ExamAnnouncement.Session); 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,"%s",Gbl.ExamAnnouncement.OtherInfo);
} }
fprintf (Gbl.F.Out,"</td>" \ fprintf (Gbl.F.Out,"</td>" \
"</tr>"); "</tr>" \
"</table>");
/***** Bottom space used for signatures, or links to edit / remove the exam announcement *****/
switch (TypeViewExamAnnouncement) switch (TypeViewExamAnnouncement)
{ {
case Exa_NORMAL_VIEW: 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,"<tr>" \
"<td style=\"text-align:left;\">");
Act_FormStart (ActEdiExaAnn);
Par_PutHiddenParamLong ("ExaCod",ExaCod);
Act_LinkFormSubmit (Txt_Edit_announcement_of_exam,The_ClassFormul[Gbl.Prefs.Theme]);
fprintf (Gbl.F.Out,"<img src=\"%s/edit16x16.gif\"" \
" alt=\"%s\" class=\"ICON16x16\" />" \
" %s</a>",
Gbl.Prefs.IconsURL,Txt_Edit_announcement_of_exam,Txt_Edit);
Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>");
/***** Create link to remove this exam announcement *****/
fprintf (Gbl.F.Out,"<td style=\"text-align:right;\">");
Act_FormStart (ActRemExaAnn);
Par_PutHiddenParamLong ("ExaCod",ExaCod);
Act_LinkFormSubmit (Txt_Remove_announcement_of_exam,The_ClassFormul[Gbl.Prefs.Theme]);
fprintf (Gbl.F.Out,"<img src=\"%s/delon16x16.gif\"" \
" alt=\"%s\" class=\"ICON16x16\" />" \
" %s</a>",
Gbl.Prefs.IconsURL,
Txt_Remove_announcement_of_exam,
Txt_Remove);
Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>" \
"</tr>");
break;
default:
break;
}
break; break;
case Exa_PRINT_VIEW: case Exa_PRINT_VIEW:
/* Bottom space used for signatures */ /* Bottom space used for signatures */
fprintf (Gbl.F.Out,"<tr>" \ fprintf (Gbl.F.Out,"<div style=\"height:100px;\"></div>");
"<td colspan=\"2\" class=\"%s\""
" style=\"text-align:left;\">"
"&nbsp;<br />"
"&nbsp;<br />"
"&nbsp;<br />"
"&nbsp;<br />"
"&nbsp;"
"</td>" \
"</tr>",
StyleForm);
break;
default:
break; 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 *****/ /***** End frame *****/
fprintf (Gbl.F.Out,"</table>" \ fprintf (Gbl.F.Out,"</td>" \
"</td>" \
"</tr>"); "</tr>");
Lay_EndRoundFrameTable10 (); Lay_EndRoundFrameTable10 ();
switch (TypeViewExamAnnouncement) if (TypeViewExamAnnouncement == Exa_PRINT_VIEW)
{ QR_ExamAnnnouncement ();
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;
}
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -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) static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res,bool ShowOnlyEnabledTags)
{ {
extern const char *The_ClassFormul[The_NUM_THEMES]; 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_not_allowed;
extern const char *Txt_Tag_allowed; extern const char *Txt_Tag_allowed;
extern const char *Txt_All_tags;
unsigned long NumRow; unsigned long NumRow;
MYSQL_ROW row; MYSQL_ROW row;
bool TagHidden = false; 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]; char TagText[Tst_MAX_BYTES_TAG+1];
/***** Start table *****/ /***** Start table *****/
Lay_StartRoundFrameTable10 (NULL,0,NULL); Lay_StartRoundFrameTable10 (NULL,0,Txt_Tags);
/***** Select all tags *****/ /***** Select all tags *****/
fprintf (Gbl.F.Out,"<tr>"); fprintf (Gbl.F.Out,"<tr>");
@ -2007,6 +2008,7 @@ static void Tst_CheckAndCorrectNumbersQst (void)
static void Tst_ShowFormAnswerTypes (void) static void Tst_ShowFormAnswerTypes (void)
{ {
extern const char *The_ClassFormul[The_NUM_THEMES]; 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_All_types_of_answers;
extern const char *Txt_TST_STR_ANSWER_TYPES[Tst_NUM_ANS_TYPES]; extern const char *Txt_TST_STR_ANSWER_TYPES[Tst_NUM_ANS_TYPES];
Tst_AnswerType_t AnsType; Tst_AnswerType_t AnsType;
@ -2014,7 +2016,7 @@ static void Tst_ShowFormAnswerTypes (void)
const char *Ptr; const char *Ptr;
/***** Table start *****/ /***** Table start *****/
Lay_StartRoundFrameTable10 (NULL,0,NULL); Lay_StartRoundFrameTable10 (NULL,0,Txt_Types_of_answers);
/***** Select all types of answers *****/ /***** Select all types of answers *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"

View File

@ -9099,27 +9099,6 @@ const char *Txt_Edit =
"Editar"; "Editar";
#endif #endif
const char *Txt_Edit_announcement_of_exam =
#if L==0
"Editar convocatoria de examen"; // Necessita traduccio
#elif L==1
"Aufruf f&uuml;r Pr&uuml;fung bearbeiten";
#elif L==2
"Edit announcement of exam";
#elif L==3
"Editar convocatoria de examen";
#elif L==4
"&Eacute;diter convocation &agrave; 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 = const char *Txt_Edit_assignment =
#if L==0 #if L==0
"Editar actividad"; // Necessita traduccio "Editar actividad"; // Necessita traduccio
@ -28295,27 +28274,6 @@ const char *Txt_Remove_all_students =
"Tirar todos estudantes"; "Tirar todos estudantes";
#endif #endif
const char *Txt_Remove_announcement_of_exam =
#if L==0
"Eliminar convocat&ograve;ria d'examen";
#elif L==1
"Entfernen Aufruf f&uuml;r Pr&uuml;fung";
#elif L==2
"Remove announcement of exam";
#elif L==3
"Eliminar convocatoria de examen";
#elif L==4
"Supprimer convocation &agrave; l'examen";
#elif L==5
"Eliminar convocatoria de examen"; // Okoteve traducción
#elif L==6
"Rimuovere sessione d'esame";
#elif L==7
"Usu&nacute; ogloszenie egzaminu";
#elif L==8
"Remover chamada para o exame";
#endif
const char *Txt_Remove_assignment = const char *Txt_Remove_assignment =
#if L==0 #if L==0
"Eliminar activitat"; "Eliminar activitat";
@ -45872,27 +45830,6 @@ const char *Txt_Type_of_group_X_removed = // Warning: it is very important to in
"Type of group <strong>%s</strong> removed."; // Necessita de tradução "Type of group <strong>%s</strong> removed."; // Necessita de tradução
#endif #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_ = const char *Txt_Type_or_paste_a_list_of_IDs_nicks_or_emails_ =
#if L==0 #if L==0
"Escriba o pegue una lista" "Escriba o pegue una lista"
@ -46041,6 +45978,48 @@ const char *Txt_TYPES_OF_DEGREE_Without_degrees =
"Sem titula&ccedil;oes"; "Sem titula&ccedil;oes";
#endif #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&eacute;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 = const char *Txt_Undo =
#if L==0 #if L==0
"Desfer"; "Desfer";