mirror of https://github.com/acanas/swad-core.git
Version 16.241.1
This commit is contained in:
parent
3994277e67
commit
086d3ade22
2
Makefile
2
Makefile
|
@ -50,7 +50,7 @@ OBJS = swad_account.o swad_action.o swad_agenda.o swad_alert.o \
|
|||
swad_record.o swad_report.o swad_role.o swad_RSS.o \
|
||||
swad_scope.o swad_search.o swad_session.o swad_setup.o swad_social.o \
|
||||
swad_statistic.o swad_string.o swad_survey.o swad_syllabus.o \
|
||||
swad_tab.o swad_test.o swad_test_import.o swad_theme.o swad_timetable.o \
|
||||
swad_tab.o swad_table.o swad_test.o swad_test_import.o swad_theme.o swad_timetable.o \
|
||||
swad_user.o \
|
||||
swad_web_service.o \
|
||||
swad_xml.o \
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
#include "swad_ID.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_QR.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -415,7 +416,7 @@ bool ID_ICanSeeOtherUsrIDs (const struct UsrData *UsrDat)
|
|||
|
||||
/* Check 2: I can see the IDs of confirmed students */
|
||||
if (UsrDat->Roles.InCurrentCrs.Role == Rol_STD && // A student
|
||||
UsrDat->Accepted) // who accepted registration
|
||||
UsrDat->Accepted) // who accepted registration
|
||||
return true;
|
||||
|
||||
/* Check 3: I can see the IDs of users with user's data empty */
|
||||
|
@ -441,7 +442,7 @@ bool ID_ICanSeeOtherUsrIDs (const struct UsrData *UsrDat)
|
|||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************** Put a link to confirm of another user's ID ***************/
|
||||
/****************** Put a link to confirm another user's ID ******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void ID_PutLinkToConfirmID (struct UsrData *UsrDat,unsigned NumID,
|
||||
|
@ -558,10 +559,10 @@ void ID_ShowFormOthIDs (void)
|
|||
&Gbl.Usrs.Other.UsrDat,NULL);
|
||||
|
||||
/***** Form with the user's ID *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
ID_ShowFormChangeUsrID (&Gbl.Usrs.Other.UsrDat,
|
||||
(Gbl.Usrs.Other.UsrDat.UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod)); // It's me?
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** End frame *****/
|
||||
Box_EndBox ();
|
||||
|
|
|
@ -2568,9 +2568,9 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
/* ActRcvFrmEnrSevNET*/{1643,-1,TabUnk,ActLstTch ,0x3C0,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReceiveFormAdminNonEditTchs,NULL},
|
||||
/* ActRcvFrmEnrSevTch*/{1429,-1,TabUnk,ActLstTch ,0x3C0,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReceiveFormAdminTchs ,NULL},
|
||||
|
||||
/* ActCnfID_Oth */{1568,-1,TabUnk,ActLstOth ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,ID_ConfirmOtherUsrID ,NULL},
|
||||
/* ActCnfID_Std */{1569,-1,TabUnk,ActLstStd ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,ID_ConfirmOtherUsrID ,NULL},
|
||||
/* ActCnfID_Tch */{1570,-1,TabUnk,ActLstTch ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,ID_ConfirmOtherUsrID ,NULL},
|
||||
/* ActCnfID_Oth */{1568,-1,TabUnk,ActLstOth ,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,ID_ConfirmOtherUsrID ,NULL},
|
||||
/* ActCnfID_Std */{1569,-1,TabUnk,ActLstStd ,0x3F0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,ID_ConfirmOtherUsrID ,NULL},
|
||||
/* ActCnfID_Tch */{1570,-1,TabUnk,ActLstTch ,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,ID_ConfirmOtherUsrID ,NULL},
|
||||
|
||||
/* ActFrmIDsOth */{1447,-1,TabUnk,ActLstOth ,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,ID_ShowFormOthIDs ,NULL},
|
||||
/* ActFrmIDsStd */{1448,-1,TabUnk,ActLstStd ,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,ID_ShowFormOthIDs ,NULL},
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include "swad_privacy.h"
|
||||
#include "swad_QR.h"
|
||||
#include "swad_string.h"
|
||||
#include "swad_table.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** External global variables from others modules ****************/
|
||||
|
@ -477,7 +478,7 @@ static void Agd_ShowEvents (Agd_AgendaType_t AgendaType)
|
|||
if (Gbl.Agenda.Num)
|
||||
{
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
|
||||
/***** Table head *****/
|
||||
Agd_WriteHeaderListEvents (AgendaType);
|
||||
|
@ -489,7 +490,7 @@ static void Agd_ShowEvents (Agd_AgendaType_t AgendaType)
|
|||
Agd_ShowOneEvent (AgendaType,Gbl.Agenda.LstAgdCods[NumEvent - 1]);
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_events);
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "swad_parameter.h"
|
||||
#include "swad_photo.h"
|
||||
#include "swad_string.h"
|
||||
#include "swad_table.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** External global variables from others modules ****************/
|
||||
|
@ -147,7 +148,7 @@ static void Asg_ShowAllAssignments (void)
|
|||
if (Gbl.Asgs.Num)
|
||||
{
|
||||
/***** Table head *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
Asg_PutHeadForSeeing (false); // Not print view
|
||||
|
||||
/***** Write all the assignments *****/
|
||||
|
@ -158,7 +159,7 @@ static void Asg_ShowAllAssignments (void)
|
|||
false); // Not print view
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // No assignments created
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_assignments);
|
||||
|
@ -331,7 +332,7 @@ void Asg_PrintOneAssignment (void)
|
|||
Gbl.CurrentCrs.Crs.CrsCod);
|
||||
|
||||
/***** Table head *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
Asg_PutHeadForSeeing (true); // Print view
|
||||
|
||||
/***** Write assignment *****/
|
||||
|
@ -339,7 +340,7 @@ void Asg_PrintOneAssignment (void)
|
|||
true); // Print view
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#include "swad_parameter.h"
|
||||
#include "swad_photo.h"
|
||||
#include "swad_QR.h"
|
||||
#include "swad_table.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/*************** External global variables from others modules ***************/
|
||||
|
@ -236,7 +237,7 @@ static void Att_ShowAllAttEvents (void)
|
|||
if (Gbl.AttEvents.Num)
|
||||
{
|
||||
/***** Table head *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<th class=\"CONTEXT_COL\"></th>"); // Column for contextual icons
|
||||
for (Order = Dat_START_TIME;
|
||||
|
@ -275,7 +276,7 @@ static void Att_ShowAllAttEvents (void)
|
|||
Att_ShowOneAttEvent (&Gbl.AttEvents.Lst[NumAttEvent - 1],false);
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // No events created
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_events);
|
||||
|
@ -1961,7 +1962,7 @@ static void Att_ListAttStudents (struct AttendanceEvent *Att)
|
|||
Grp_PutParamsCodGrps ();
|
||||
|
||||
/***** List students' data *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<th></th>"
|
||||
|
@ -1997,7 +1998,7 @@ static void Att_ListAttStudents (struct AttendanceEvent *Att)
|
|||
Att_WriteRowStdToCallTheRoll (NumStd + 1,&UsrDat,Att);
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/* Send button */
|
||||
Btn_PutConfirmButton (Txt_Save);
|
||||
|
@ -2702,9 +2703,9 @@ void Usr_ReqListStdsAttendanceCrs (void)
|
|||
Grp_PutParamsCodGrps ();
|
||||
|
||||
/* Write list of students to select some of them */
|
||||
Lay_StartTableCenter (0);
|
||||
Tbl_StartTableCenter (0);
|
||||
Usr_ListUsersToSelect (Rol_STD);
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/* Send button */
|
||||
Btn_PutConfirmButton (Txt_Show_list);
|
||||
|
@ -3227,9 +3228,9 @@ static void Att_ListStdsAttendanceTable (Att_TypeOfView_t TypeOfView,
|
|||
Hlp_USERS_Attendance_attendance_list,
|
||||
false); // Not closable
|
||||
if (PutButtonShowDetails)
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
else
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/***** Heading row *****/
|
||||
Att_WriteTableHeadSeveralAttEvents ();
|
||||
|
@ -3277,7 +3278,7 @@ static void Att_ListStdsAttendanceTable (Att_TypeOfView_t TypeOfView,
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Button to show more details *****/
|
||||
if (PutButtonShowDetails)
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "swad_global.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_photo.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_text.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -382,7 +383,7 @@ static void Ban_ListBannersForEdition (void)
|
|||
struct Banner *Ban;
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/***** Table head *****/
|
||||
Ban_PutHeadBanners ();
|
||||
|
@ -478,7 +479,7 @@ static void Ban_ListBannersForEdition (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "swad_box.h"
|
||||
#include "swad_global.h"
|
||||
#include "swad_help.h"
|
||||
#include "swad_table.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** External global variables from others modules ****************/
|
||||
|
@ -73,7 +74,7 @@ void Box_StartBoxTable (const char *Width,const char *Title,
|
|||
Box_StartBox (Width,Title,FunctionToDrawContextualIcons,
|
||||
HelpLink,
|
||||
Closable);
|
||||
Lay_StartTableWide (CellPadding);
|
||||
Tbl_StartTableWide (CellPadding);
|
||||
}
|
||||
|
||||
void Box_StartBoxTableShadow (const char *Width,const char *Title,
|
||||
|
@ -84,7 +85,7 @@ void Box_StartBoxTableShadow (const char *Width,const char *Title,
|
|||
Box_StartBoxShadow (Width,Title,
|
||||
FunctionToDrawContextualIcons,
|
||||
HelpLink);
|
||||
Lay_StartTableWide (CellPadding);
|
||||
Tbl_StartTableWide (CellPadding);
|
||||
}
|
||||
|
||||
void Box_StartBox (const char *Width,const char *Title,
|
||||
|
@ -192,13 +193,13 @@ static void Box_StartBoxInternal (const char *Width,const char *Title,
|
|||
|
||||
void Box_EndBoxTable (void)
|
||||
{
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
Box_EndBox ();
|
||||
}
|
||||
|
||||
void Box_EndBoxTableWithButton (Btn_Button_t Button,const char *TxtButton)
|
||||
{
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
Box_EndBoxWithButton (Button,TxtButton);
|
||||
}
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
#include "swad_parameter.h"
|
||||
#include "swad_QR.h"
|
||||
#include "swad_string.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_text.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -386,7 +387,7 @@ static void Ctr_Configuration (bool PrintView)
|
|||
}
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/***** Institution *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -630,7 +631,7 @@ static void Ctr_Configuration (bool PrintView)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** End frame *****/
|
||||
Box_EndBox ();
|
||||
|
@ -754,7 +755,7 @@ static void Ctr_ListCentres (void)
|
|||
if (Gbl.Ctrs.Num) // There are centres in the current institution
|
||||
{
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
Ctr_PutHeadCentresForSeeing (true); // Order selectable
|
||||
|
||||
/***** Write all the centres and their nuber of teachers *****/
|
||||
|
@ -764,7 +765,7 @@ static void Ctr_ListCentres (void)
|
|||
Ctr_ListOneCentreForSeeing (&(Gbl.Ctrs.Lst[NumCtr]),NumCtr + 1);
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // No centres created in the current institution
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_centres);
|
||||
|
@ -1410,7 +1411,7 @@ static void Ctr_ListCentresForEdition (void)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** Write heading *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
Ctr_PutHeadCentresForEdition ();
|
||||
|
||||
/***** Write all the centres *****/
|
||||
|
@ -1599,7 +1600,7 @@ static void Ctr_ListCentresForEdition (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Free memory used for user's data *****/
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
|
|
|
@ -237,19 +237,19 @@
|
|||
|
||||
// TODO: En listado de accesos, las fechas (no el día de la semana) deberían ir alineadas a la derecha.
|
||||
|
||||
// TODO: Fix bug: un profesor no editor no puede confirmar DNI? Si es así, no le debería salir el enlace "Confirmar ID", y si queremos que pueda, hay que darle permisos
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.240.1 (2017-06-11)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.241.1 (2017-06-11)"
|
||||
#define CSS_FILE "swad16.235.1.css"
|
||||
#define JS_FILE "swad16.206.3.js"
|
||||
|
||||
// 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 16.241.1: Jun 11, 2017 Fix bug confirming another user's ID. (222132 lines)
|
||||
Version 16.241: Jun 11, 2017 New module swad_table to draw tables. (222132 lines)
|
||||
Version 16.240.1: Jun 11, 2017 Some functions moved from swad_layout to swad_icon. (222024 lines)
|
||||
Version 16.240: Jun 11, 2017 New module swad_button to draw buttons. (222023 lines)
|
||||
Version 16.239: Jun 10, 2017 New module swad_box to draw boxes. (221970 lines)
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include "swad_photo.h"
|
||||
#include "swad_role.h"
|
||||
#include "swad_string.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -217,7 +218,7 @@ void Con_GetAndShowLastClicks (void)
|
|||
NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get last clicks");
|
||||
|
||||
/***** Write list of connected users *****/
|
||||
Lay_StartTableCenter (1);
|
||||
Tbl_StartTableCenter (1);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<th class=\"LEFT_MIDDLE\""
|
||||
" style=\"width:85px;\">"
|
||||
|
@ -335,7 +336,7 @@ void Con_GetAndShowLastClicks (void)
|
|||
ClassRow,Deg.ShrtName,
|
||||
ClassRow,row[8]);
|
||||
}
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
mysql_free_result (mysql_res);
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "swad_language.h"
|
||||
#include "swad_preference.h"
|
||||
#include "swad_QR.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_text.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -304,7 +305,7 @@ static void Cty_Configuration (bool PrintView)
|
|||
}
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/***** Country name (an link to WWW if exists) *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -440,7 +441,7 @@ static void Cty_Configuration (bool PrintView)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** End frame *****/
|
||||
Box_EndBox ();
|
||||
|
@ -1530,7 +1531,7 @@ static void Cty_ListCountriesForEdition (void)
|
|||
Txt_Language_t Lan;
|
||||
|
||||
/***** Write heading *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
Cty_PutHeadCountriesForEdition ();
|
||||
|
||||
/***** Write all the countries *****/
|
||||
|
@ -1629,7 +1630,7 @@ static void Cty_ListCountriesForEdition (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
#include "swad_role.h"
|
||||
#include "swad_RSS.h"
|
||||
#include "swad_tab.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_theme.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -219,7 +220,7 @@ static void Crs_Configuration (bool PrintView)
|
|||
Gbl.CurrentCrs.Crs.FullName);
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/***** Degree *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -464,7 +465,7 @@ static void Crs_Configuration (bool PrintView)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** End frame *****/
|
||||
Box_EndBox ();
|
||||
|
@ -1144,7 +1145,7 @@ static void Crs_ListCourses (void)
|
|||
if (Gbl.CurrentDeg.NumCrss) // There are courses in the current degree
|
||||
{
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
Crs_PutHeadCoursesForSeeing ();
|
||||
|
||||
/***** List the courses *****/
|
||||
|
@ -1156,7 +1157,7 @@ static void Crs_ListCourses (void)
|
|||
Crs_ListCoursesOfAYearForSeeing (0); // Courses without a year selected
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // No courses created in the current degree
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_courses);
|
||||
|
@ -1376,7 +1377,7 @@ static void Crs_ListCoursesForEdition (void)
|
|||
unsigned Year;
|
||||
|
||||
/***** Write heading *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
Crs_PutHeadCoursesForEdition ();
|
||||
|
||||
/***** List the courses *****/
|
||||
|
@ -1387,7 +1388,7 @@ static void Crs_ListCoursesForEdition (void)
|
|||
Crs_ListCoursesOfAYearForEdition (0);
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
#include "swad_RSS.h"
|
||||
#include "swad_string.h"
|
||||
#include "swad_tab.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_text.h"
|
||||
#include "swad_theme.h"
|
||||
|
||||
|
@ -321,7 +322,7 @@ static void Deg_Configuration (bool PrintView)
|
|||
fprintf (Gbl.F.Out,"</div>");
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/***** Centre *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -526,7 +527,7 @@ static void Deg_Configuration (bool PrintView)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** End frame *****/
|
||||
Box_EndBox ();
|
||||
|
@ -684,7 +685,7 @@ static void Deg_ListDegreesForEdition (void)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** Write heading *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
Deg_PutHeadDegreesForEdition ();
|
||||
|
||||
/***** List the degrees *****/
|
||||
|
@ -858,7 +859,7 @@ static void Deg_ListDegreesForEdition (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Free memory used for user's data *****/
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
|
@ -1183,7 +1184,7 @@ static void Deg_ListDegrees (void)
|
|||
if (Gbl.CurrentCtr.Ctr.Degs.Num) // There are degrees in the current centre
|
||||
{
|
||||
/***** Write heading *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
Deg_PutHeadDegreesForSeeing ();
|
||||
|
||||
/***** List the degrees *****/
|
||||
|
@ -1193,7 +1194,7 @@ static void Deg_ListDegrees (void)
|
|||
Deg_ListOneDegreeForSeeing (&(Gbl.CurrentCtr.Ctr.Degs.Lst[NumDeg]),NumDeg + 1);
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // No degrees created in the current centre
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_degrees);
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "swad_degree_type.h"
|
||||
#include "swad_global.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_table.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** External global variables from others modules ****************/
|
||||
|
@ -225,14 +226,14 @@ static void DT_ListDegreeTypes (Act_Action_t NextAction,DT_Order_t SelectedOrder
|
|||
if (Gbl.Degs.DegTypes.Num)
|
||||
{
|
||||
/***** Write heading *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
DT_PutHeadDegreeTypesForSeeing (NextAction,SelectedOrder);
|
||||
|
||||
/***** List current degree types for seeing *****/
|
||||
DT_ListDegreeTypesForSeeing ();
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // No degree types created
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_types_of_degree);
|
||||
|
@ -361,7 +362,7 @@ static void DT_ListDegreeTypesForEdition (void)
|
|||
unsigned NumDegTyp;
|
||||
|
||||
/***** Write heading *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
DT_PutHeadDegreeTypesForEdition ();
|
||||
|
||||
/***** List degree types with forms for edition *****/
|
||||
|
@ -411,7 +412,7 @@ static void DT_ListDegreeTypesForEdition (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include "swad_layout.h"
|
||||
#include "swad_profile.h"
|
||||
#include "swad_role_type.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -161,7 +162,7 @@ void Dup_ListDuplicateUsrs (void)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
|
||||
/***** Heading row with column names *****/
|
||||
Gbl.Usrs.Listing.WithPhotos = true;
|
||||
|
@ -220,7 +221,7 @@ void Dup_ListDuplicateUsrs (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Free memory used for user's data *****/
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
|
@ -294,7 +295,7 @@ static void Dup_ListSimilarUsrs (void)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
|
||||
/***** Heading row with column names *****/
|
||||
Gbl.Usrs.Listing.WithPhotos = true;
|
||||
|
@ -362,7 +363,7 @@ static void Dup_ListSimilarUsrs (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Free memory used for user's data *****/
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include "swad_notification.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_role.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -917,7 +918,7 @@ static void Enr_PutAreaToEnterUsrsIDs (void)
|
|||
extern const char *Txt_List_of_nicks_emails_or_IDs;
|
||||
|
||||
/***** Text area for users' IDs *****/
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"RIGHT_TOP\">"
|
||||
"<label for=\"UsrsIDs\" class=\"%s\">%s:</label>"
|
||||
|
@ -930,7 +931,7 @@ static void Enr_PutAreaToEnterUsrsIDs (void)
|
|||
"</tr>",
|
||||
The_ClassForm[Gbl.Prefs.Theme],
|
||||
Txt_List_of_nicks_emails_or_IDs);
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -2314,7 +2315,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
/***** Selection of scope and roles *****/
|
||||
/* Start form and table */
|
||||
Act_FormStart (ActUpdSignUpReq);
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
|
||||
/* Scope (whole platform, current centre, current degree or current course) */
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -2343,7 +2344,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
"</tr>");
|
||||
|
||||
/* End table and form */
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
Act_FormEnd ();
|
||||
|
||||
/***** Build query *****/
|
||||
|
@ -2786,7 +2787,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/* Start table */
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
fprintf (Gbl.F.Out,"<th></th>"
|
||||
"<th class=\"LEFT_TOP\">"
|
||||
"%s"
|
||||
|
@ -2943,7 +2944,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
}
|
||||
|
||||
/* End table */
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/* Free memory used for user's data */
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
#include "swad_profile.h"
|
||||
#include "swad_social.h"
|
||||
#include "swad_string.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_zip.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -3146,11 +3147,11 @@ void Brw_AskEditWorksCrs (void)
|
|||
Brw_PutHiddenParamFullTreeIfSelected ();
|
||||
|
||||
/* Put list of users to select some of them */
|
||||
Lay_StartTableCenter (0);
|
||||
Tbl_StartTableCenter (0);
|
||||
Usr_ListUsersToSelect (Rol_TCH);
|
||||
Usr_ListUsersToSelect (Rol_NET);
|
||||
Usr_ListUsersToSelect (Rol_STD);
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/* Send button */
|
||||
Btn_PutConfirmButton (Txt_View_homework);
|
||||
|
|
13
swad_forum.c
13
swad_forum.c
|
@ -44,6 +44,7 @@
|
|||
#include "swad_profile.h"
|
||||
#include "swad_role.h"
|
||||
#include "swad_social.h"
|
||||
#include "swad_table.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** External global variables from others modules ****************/
|
||||
|
@ -1067,7 +1068,7 @@ static void For_ShowPostsOfAThread (Ale_AlertType_t AlertType,const char *Messag
|
|||
&PaginationPsts);
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/***** Show posts from this page, the author and the date of last reply *****/
|
||||
mysql_data_seek (mysql_res,(my_ulonglong) (PaginationPsts.FirstItemVisible - 1));
|
||||
|
@ -1119,7 +1120,7 @@ static void For_ShowPostsOfAThread (Ale_AlertType_t AlertType,const char *Messag
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Write again links to pages *****/
|
||||
if (PaginationPsts.MoreThanOnePage)
|
||||
|
@ -2587,7 +2588,7 @@ static void For_ShowForumThreadsHighlightingOneThread (long ThrCodHighlighted,
|
|||
&PaginationThrs);
|
||||
|
||||
/***** Heading row *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<th style=\"width:20px;\"></th>"
|
||||
"<th class=\"CONTEXT_COL\"></th>" // Column for contextual icons
|
||||
|
@ -2639,7 +2640,7 @@ static void For_ShowForumThreadsHighlightingOneThread (long ThrCodHighlighted,
|
|||
For_ListForumThrs (ThrCods,ThrCodHighlighted,&PaginationThrs);
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Write links to all the pages in the listing of threads *****/
|
||||
if (PaginationThrs.MoreThanOnePage)
|
||||
|
@ -3881,7 +3882,7 @@ static void For_WriteFormForumPst (bool IsReply,const char *Subject)
|
|||
}
|
||||
|
||||
/***** Subject and content *****/
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
|
||||
// If writing a reply to a message of an existing thread ==> write subject
|
||||
/* Subject */
|
||||
|
@ -3915,7 +3916,7 @@ static void For_WriteFormForumPst (bool IsReply,const char *Subject)
|
|||
"</tr>",
|
||||
The_ClassForm[Gbl.Prefs.Theme],Txt_MSG_Content);
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Help for text editor *****/
|
||||
Lay_HelpPlainEditor ();
|
||||
|
|
25
swad_group.c
25
swad_group.c
|
@ -36,6 +36,7 @@
|
|||
#include "swad_group.h"
|
||||
#include "swad_notification.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_table.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/*************************** Internal constants ******************************/
|
||||
|
@ -386,13 +387,13 @@ void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction)
|
|||
Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_ONLY_GROUP_TYPES_WITH_GROUPS);
|
||||
|
||||
/***** List the groups for each group type *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
for (NumGrpTyp = 0;
|
||||
NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num;
|
||||
NumGrpTyp++)
|
||||
if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps)
|
||||
Grp_ListGrpsForMultipleSelection (&Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp]);
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Free list of groups types and groups in this course *****/
|
||||
Grp_FreeListGrpTypesAndGrps ();
|
||||
|
@ -1243,7 +1244,7 @@ static void Grp_ListGroupTypesForEdition (void)
|
|||
char Id[32];
|
||||
|
||||
/***** Write heading *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
Grp_WriteHeadingGroupTypes ();
|
||||
|
||||
/***** List group types with forms for edition *****/
|
||||
|
@ -1321,7 +1322,7 @@ static void Grp_ListGroupTypesForEdition (void)
|
|||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
|
||||
Act_FormStartAnchor (ActChgTimGrpTyp,Grp_GROUP_TYPES_SECTION_ID);
|
||||
Grp_PutParamGrpTypCod (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod);
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"LEFT_MIDDLE\" style=\"width:20px;\">"
|
||||
"<img src=\"%s/%s16x16.gif\""
|
||||
|
@ -1347,7 +1348,7 @@ static void Grp_ListGroupTypesForEdition (void)
|
|||
true); // Submit on change
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
Act_FormEnd ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
|
@ -1360,7 +1361,7 @@ static void Grp_ListGroupTypesForEdition (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1449,7 +1450,7 @@ static void Grp_ListGroupsForEdition (void)
|
|||
Rol_Role_t Role;
|
||||
|
||||
/***** Write heading *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
Grp_WriteHeadingGroups ();
|
||||
|
||||
/***** List the groups *****/
|
||||
|
@ -1572,7 +1573,7 @@ static void Grp_ListGroupsForEdition (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1739,7 +1740,7 @@ void Grp_ShowLstGrpsToChgMyGrps (void)
|
|||
Act_FormStart (ActChgGrp);
|
||||
|
||||
/***** List the groups the user belongs to for change *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
for (NumGrpTyp = 0;
|
||||
NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num;
|
||||
NumGrpTyp++)
|
||||
|
@ -1749,7 +1750,7 @@ void Grp_ShowLstGrpsToChgMyGrps (void)
|
|||
&NumGrpsThisTypeIBelong);
|
||||
NumGrpsIBelong += NumGrpsThisTypeIBelong;
|
||||
}
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** End form *****/
|
||||
if (PutFormToChangeGrps)
|
||||
|
@ -2405,7 +2406,7 @@ static void Grp_PutFormToCreateGroupType (void)
|
|||
|
||||
/***** Open time *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"LEFT_MIDDLE\" style=\"width:20px;\">"
|
||||
"<img src=\"%s/%s16x16.gif\""
|
||||
|
@ -2430,7 +2431,7 @@ static void Grp_PutFormToCreateGroupType (void)
|
|||
false); // Don't submit on change
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/***** Number of groups of this type *****/
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "swad_degree.h"
|
||||
#include "swad_global.h"
|
||||
#include "swad_logo.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_theme.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -97,7 +98,7 @@ void Hie_WriteMenuHierarchy (void)
|
|||
extern const char *Txt_Course;
|
||||
|
||||
/***** Start of table *****/
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
|
||||
/***** Write a 1st selector
|
||||
with all the countries *****/
|
||||
|
@ -172,7 +173,7 @@ void Hie_WriteMenuHierarchy (void)
|
|||
}
|
||||
|
||||
/***** End of table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include "swad_global.h"
|
||||
#include "swad_holiday.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_text.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -107,7 +108,7 @@ void Hld_SeeHolidays (void)
|
|||
false); // Not closable
|
||||
if (Gbl.Hlds.Num)
|
||||
{
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
for (Order = Hld_ORDER_BY_PLACE;
|
||||
Order <= Hld_ORDER_BY_START_DATE;
|
||||
|
@ -171,7 +172,7 @@ void Hld_SeeHolidays (void)
|
|||
"</tr>",
|
||||
Gbl.Hlds.Lst[NumHld].Name);
|
||||
}
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // No holidays created in the current institution
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_holidays);
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "swad_global.h"
|
||||
#include "swad_indicator.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_theme.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -113,7 +114,7 @@ void Ind_ReqIndicatorsCourses (void)
|
|||
/***** Form to update indicators *****/
|
||||
/* Start form and table */
|
||||
Act_FormStart (ActReqStaCrs);
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/* Scope */
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -175,7 +176,7 @@ void Ind_ReqIndicatorsCourses (void)
|
|||
"</tr>");
|
||||
|
||||
/* End table and form */
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
Act_FormEnd ();
|
||||
|
||||
/***** Show the stats of courses *****/
|
||||
|
@ -593,7 +594,7 @@ static void Ind_ShowNumCoursesWithIndicators (unsigned NumCrssWithIndicatorYes[1
|
|||
const char *ClassHighlight = "DAT RIGHT_MIDDLE LIGHT_BLUE";
|
||||
|
||||
/***** Write number of courses with each number of indicators valid *****/
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
if (PutForm)
|
||||
|
@ -665,7 +666,7 @@ static void Ind_ShowNumCoursesWithIndicators (unsigned NumCrssWithIndicatorYes[1
|
|||
NumCrss,
|
||||
100.0);
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "swad_logo.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_QR.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_text.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
|
@ -330,7 +331,7 @@ static void Ins_Configuration (bool PrintView)
|
|||
fprintf (Gbl.F.Out,"</div>");
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/***** Country *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -585,7 +586,7 @@ static void Ins_Configuration (bool PrintView)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** End frame *****/
|
||||
Box_EndBox ();
|
||||
|
@ -677,7 +678,7 @@ static void Ins_ListInstitutions (void)
|
|||
if (Gbl.Inss.Num) // There are institutions in the current country
|
||||
{
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
Ins_PutHeadInstitutionsForSeeing (true); // Order selectable
|
||||
|
||||
/***** Write all the institutions and their nuber of users *****/
|
||||
|
@ -687,7 +688,7 @@ static void Ins_ListInstitutions (void)
|
|||
Ins_ListOneInstitutionForSeeing (&(Gbl.Inss.Lst[NumIns]),NumIns + 1);
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // No insrtitutions created in the current country
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_institutions);
|
||||
|
@ -1405,7 +1406,7 @@ static void Ins_ListInstitutionsForEdition (void)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** Write heading *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
Ins_PutHeadInstitutionsForEdition ();
|
||||
|
||||
/***** Write all the institutions *****/
|
||||
|
@ -1566,7 +1567,7 @@ static void Ins_ListInstitutionsForEdition (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Free memory used for user's data *****/
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
|
|
|
@ -1154,47 +1154,6 @@ void Lay_PutContextualCheckbox (Act_Action_t NextAction,
|
|||
// jumping to the next line on narrow screens
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************************* Start/end table *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Lay_StartTable (unsigned CellPadding)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<table");
|
||||
if (CellPadding)
|
||||
fprintf (Gbl.F.Out," class=\"CELLS_PAD_%u\"",CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
|
||||
fprintf (Gbl.F.Out,">");
|
||||
}
|
||||
|
||||
void Lay_StartTableCenter (unsigned CellPadding)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_CENTER");
|
||||
if (CellPadding)
|
||||
fprintf (Gbl.F.Out," CELLS_PAD_%u",CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
|
||||
fprintf (Gbl.F.Out,"\">");
|
||||
}
|
||||
|
||||
void Lay_StartTableWide (unsigned CellPadding)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_WIDE");
|
||||
if (CellPadding)
|
||||
fprintf (Gbl.F.Out," CELLS_PAD_%u",CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
|
||||
fprintf (Gbl.F.Out,"\">");
|
||||
}
|
||||
|
||||
void Lay_StartTableWideMargin (unsigned CellPadding)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_WIDE_MARGIN");
|
||||
if (CellPadding)
|
||||
fprintf (Gbl.F.Out," CELLS_PAD_%u",CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
|
||||
fprintf (Gbl.F.Out,"\">");
|
||||
}
|
||||
|
||||
void Lay_EndTable (void)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"</table>");
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Start/end section ****************************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -61,12 +61,6 @@ void Lay_PutContextualCheckbox (Act_Action_t NextAction,
|
|||
bool Checked,bool Disabled,
|
||||
const char *Title,const char *Text);
|
||||
|
||||
void Lay_StartTable (unsigned CellPadding);
|
||||
void Lay_StartTableCenter (unsigned CellPadding);
|
||||
void Lay_StartTableWide (unsigned CellPadding);
|
||||
void Lay_StartTableWideMargin (unsigned CellPadding);
|
||||
void Lay_EndTable (void);
|
||||
|
||||
void Lay_StartSection (const char *SectionId);
|
||||
void Lay_EndSection (void);
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "swad_global.h"
|
||||
#include "swad_link.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_text.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -390,7 +391,7 @@ static void Lnk_ListLinksForEdition (void)
|
|||
struct Link *Lnk;
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/***** Table head *****/
|
||||
Lnk_PutHeadLinks ();
|
||||
|
@ -459,7 +460,7 @@ static void Lnk_ListLinksForEdition (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include "swad_parameter.h"
|
||||
#include "swad_QR.h"
|
||||
#include "swad_tab.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_text.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1197,10 +1198,10 @@ void Mai_ShowFormOthEmail (void)
|
|||
&Gbl.Usrs.Other.UsrDat,NULL);
|
||||
|
||||
/***** Form with the user's email *****/
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
Mai_ShowFormChangeUsrEmail (&Gbl.Usrs.Other.UsrDat,
|
||||
(Gbl.Usrs.Other.UsrDat.UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod)); // It's me?
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** End frame *****/
|
||||
Box_EndBox ();
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
#include "swad_parameter.h"
|
||||
#include "swad_photo.h"
|
||||
#include "swad_profile.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -283,7 +284,7 @@ static void Msg_PutFormMsgUsrs (char Content[Cns_MAX_BYTES_LONG_TEXT + 1])
|
|||
}
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
|
||||
/***** "To:" section (recipients) *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -298,7 +299,7 @@ static void Msg_PutFormMsgUsrs (char Content[Cns_MAX_BYTES_LONG_TEXT + 1])
|
|||
else
|
||||
{
|
||||
/***** Show potential recipients *****/
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
if (ShowUsrsInCrs)
|
||||
{
|
||||
Usr_ListUsersToSelect (Rol_TCH); // All teachers in course
|
||||
|
@ -306,7 +307,7 @@ static void Msg_PutFormMsgUsrs (char Content[Cns_MAX_BYTES_LONG_TEXT + 1])
|
|||
Usr_ListUsersToSelect (Rol_STD); // All students in selected groups
|
||||
}
|
||||
Msg_WriteFormUsrsIDsOrNicksOtherRecipients (); // Other users (nicknames)
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
|
@ -316,7 +317,7 @@ static void Msg_PutFormMsgUsrs (char Content[Cns_MAX_BYTES_LONG_TEXT + 1])
|
|||
Msg_WriteFormSubjectAndContentMsgToUsrs (Content);
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Help for text editor and send button *****/
|
||||
Lay_HelpPlainEditor ();
|
||||
|
@ -1827,7 +1828,7 @@ static void Msg_ShowSentOrReceivedMessages (void)
|
|||
&Pagination);
|
||||
|
||||
/***** Show received / sent messages in this page *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
mysql_data_seek (mysql_res,(my_ulonglong) (Pagination.FirstItemVisible - 1));
|
||||
for (NumRow = Pagination.FirstItemVisible;
|
||||
|
@ -1842,7 +1843,7 @@ static void Msg_ShowSentOrReceivedMessages (void)
|
|||
Msg_ShowASentOrReceivedMessage (NumMsg,MsgCod);
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Write again links to pages *****/
|
||||
if (Pagination.MoreThanOnePage)
|
||||
|
@ -2579,7 +2580,7 @@ void Msg_ShowFormToFilterMsgs (void)
|
|||
};
|
||||
|
||||
/***** Table start *****/
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
|
||||
/***** Filter authors/recipients *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -2608,7 +2609,7 @@ void Msg_ShowFormToFilterMsgs (void)
|
|||
Msg_MAX_CHARS_FILTER_CONTENT,Gbl.Msg.FilterContent);
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -2937,7 +2938,7 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
|
|||
{
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td rowspan=\"3\" colspan=\"2\" class=\"LEFT_TOP\">");
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
|
||||
/***** Write course origin of message *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -2956,7 +2957,7 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
|
|||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/***** Write "From:" *****/
|
||||
|
@ -3131,7 +3132,7 @@ void Msg_WriteMsgAuthor (struct UsrData *UsrDat,bool Enabled,const char *BgColor
|
|||
bool WriteAuthor = false;
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
|
||||
/***** Start first column *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -3182,7 +3183,7 @@ void Msg_WriteMsgAuthor (struct UsrData *UsrDat,bool Enabled,const char *BgColor
|
|||
"</tr>");
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
#include "swad_notification.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_social.h"
|
||||
#include "swad_table.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** External global variables from others modules ****************/
|
||||
|
@ -400,7 +401,7 @@ void Ntf_ShowMyNotifications (void)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<th colspan=\"2\" class=\"LEFT_MIDDLE\">"
|
||||
"%s"
|
||||
|
@ -636,7 +637,7 @@ void Ntf_ShowMyNotifications (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Free memory used for user's data *****/
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
|
@ -1910,7 +1911,7 @@ void Ntf_PutFormChangeNotifSentByEMail (void)
|
|||
Mai_WriteWarningEmailNotifications ();
|
||||
|
||||
/***** List of notifications *****/
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<th></th>"
|
||||
"<th class=\"CENTER_MIDDLE\">"
|
||||
|
@ -1952,7 +1953,7 @@ void Ntf_PutFormChangeNotifSentByEMail (void)
|
|||
"</tr>");
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Button to save changes *****/
|
||||
Btn_PutConfirmButton (Txt_Save_changes);
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
#include "swad_ID.h"
|
||||
#include "swad_password.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -854,9 +855,9 @@ void Pwd_ShowFormOthPwd (void)
|
|||
Usr_PutParamOtherUsrCodEncrypted ();
|
||||
|
||||
/* New password */
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
Pwd_PutFormToGetNewPasswordTwice ();
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/* End form */
|
||||
Btn_PutConfirmButton (Txt_Change_password);
|
||||
|
|
17
swad_photo.c
17
swad_photo.c
|
@ -45,6 +45,7 @@
|
|||
#include "swad_parameter.h"
|
||||
#include "swad_photo.h"
|
||||
#include "swad_privacy.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_theme.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
|
@ -901,7 +902,7 @@ static void Pho_UpdatePhoto2 (void)
|
|||
unsigned NumPhoto;
|
||||
|
||||
/***** Show the three images resulting of the processing *****/
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
for (NumPhoto = 0;
|
||||
NumPhoto < 3;
|
||||
|
@ -919,7 +920,7 @@ static void Pho_UpdatePhoto2 (void)
|
|||
Pho_PHOTO_REAL_WIDTH,Pho_PHOTO_REAL_HEIGHT,
|
||||
Txt_PHOTO_PROCESSING_CAPTIONS[NumPhoto]);
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Show message *****/
|
||||
Ale_ShowPendingAlert ();
|
||||
|
@ -1696,7 +1697,7 @@ void Pho_ShowOrPrintPhotoDegree (Pho_AvgPhotoSeeOrPrint_t SeeOrPrint)
|
|||
Pho_PutIconToPrintDegreeStats,
|
||||
Hlp_STATS_Degrees,
|
||||
false); // Not closable
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
|
||||
/***** Put a selector for the type of average *****/
|
||||
Pho_PutSelectorForTypeOfAvg ();
|
||||
|
@ -1707,7 +1708,7 @@ void Pho_ShowOrPrintPhotoDegree (Pho_AvgPhotoSeeOrPrint_t SeeOrPrint)
|
|||
/***** Put a selector for the order of degrees *****/
|
||||
Pho_PutSelectorForHowOrderDegrees ();
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
break;
|
||||
case Pho_DEGREES_PRINT:
|
||||
/***** Start frame *****/
|
||||
|
@ -2091,7 +2092,7 @@ static void Pho_ShowOrPrintClassPhotoDegrees (Pho_AvgPhotoSeeOrPrint_t SeeOrPrin
|
|||
/***** Form to select type of list used to display degree photos *****/
|
||||
if (SeeOrPrint == Pho_DEGREES_SEE)
|
||||
Usr_ShowFormsToSelectUsrListType (ActSeePhoDeg);
|
||||
Lay_StartTableCenter (0);
|
||||
Tbl_StartTableCenter (0);
|
||||
|
||||
/***** Get and print degrees *****/
|
||||
for (NumRow = 0, NumDegsNotEmpty = 0;
|
||||
|
@ -2134,7 +2135,7 @@ static void Pho_ShowOrPrintClassPhotoDegrees (Pho_AvgPhotoSeeOrPrint_t SeeOrPrin
|
|||
if (TRIsOpen)
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // No degrees with students found
|
||||
/***** Show warning indicating no students found *****/
|
||||
|
@ -2176,7 +2177,7 @@ static void Pho_ShowOrPrintListDegrees (Pho_AvgPhotoSeeOrPrint_t SeeOrPrint)
|
|||
Usr_ShowFormsToSelectUsrListType (ActSeePhoDeg);
|
||||
|
||||
/***** Write heading *****/
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<th class=\"RIGHT_TOP\">"
|
||||
"%s"
|
||||
|
@ -2248,7 +2249,7 @@ static void Pho_ShowOrPrintListDegrees (Pho_AvgPhotoSeeOrPrint_t SeeOrPrint)
|
|||
}
|
||||
|
||||
/***** Photos end *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // No degrees with students found!
|
||||
/***** Show warning indicating no students found *****/
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "swad_global.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_place.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_text.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -122,7 +123,7 @@ void Plc_SeePlaces (void)
|
|||
NULL,
|
||||
Hlp_INSTITUTION_Places,
|
||||
false); // Not closable
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
for (Order = Plc_ORDER_BY_PLACE;
|
||||
Order <= Plc_ORDER_BY_NUM_CTRS;
|
||||
|
@ -196,7 +197,7 @@ void Plc_SeePlaces (void)
|
|||
NumCtrsWithPlc);
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Button to create place *****/
|
||||
if (ICanEdit)
|
||||
|
@ -465,7 +466,7 @@ static void Plc_ListPlacesForEdition (void)
|
|||
struct Place *Plc;
|
||||
|
||||
/***** Write heading *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
Plc_PutHeadPlaces ();
|
||||
|
||||
/***** Write all the places *****/
|
||||
|
@ -528,7 +529,7 @@ static void Plc_ListPlacesForEdition (void)
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
#include "swad_QR.h"
|
||||
#include "swad_record.h"
|
||||
#include "swad_role.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1786,7 +1787,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
|
|||
/***** Header *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td colspan=\"2\" class=\"LEFT_TOP\">");
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"LEFT_MIDDLE\" style=\"width:%upx;\">",
|
||||
Rec_DEGREE_LOGO_SIZE);
|
||||
|
@ -1799,7 +1800,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
|
|||
"</tr>",
|
||||
Gbl.CurrentDeg.Deg.FullName,Gbl.CurrentCrs.Crs.FullName,
|
||||
UsrDat->FullName);
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
||||
|
@ -2355,7 +2356,7 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
|
|||
/***** Show email and user's IDs *****/
|
||||
if (ShowIDRows)
|
||||
{
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/* Show email */
|
||||
Rec_ShowEmail (UsrDat,ClassForm);
|
||||
|
@ -2363,7 +2364,7 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
|
|||
/* Show user's IDs */
|
||||
Rec_ShowUsrIDs (UsrDat,ClassForm,Anchor);
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/***** Start form *****/
|
||||
|
@ -2417,7 +2418,7 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
|
|||
break;
|
||||
}
|
||||
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
if (ShowIDRows)
|
||||
{
|
||||
|
@ -2476,7 +2477,7 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
|
|||
Rec_ShowOfficePhone (UsrDat,ShowData,ClassForm);
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Button and end form *****/
|
||||
switch (TypeOfView)
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
#include "swad_social.h"
|
||||
#include "swad_statistic.h"
|
||||
#include "swad_tab.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_web_service.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -503,7 +504,7 @@ void Sta_AskShowCrsHits (void)
|
|||
Par_PutHiddenParamLong ("LastRow",0);
|
||||
|
||||
/***** Put list of users to select some of them *****/
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"RIGHT_TOP %s\">%s:"
|
||||
"</td>"
|
||||
|
@ -595,7 +596,7 @@ void Sta_AskShowCrsHits (void)
|
|||
"</label>"
|
||||
"</td>"
|
||||
"</tr>");
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Hidden param used to get client time zone *****/
|
||||
Dat_PutHiddenParBrowserTZDiff ();
|
||||
|
@ -1653,7 +1654,7 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
|
|||
/***** Put heading with backward and forward buttons *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td colspan=\"7\" class=\"LEFT_MIDDLE\">");
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
|
||||
/* Put link to jump to previous page (older clicks) */
|
||||
|
@ -1718,7 +1719,7 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
|
|||
Act_FormEnd ();
|
||||
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
||||
|
@ -2431,7 +2432,7 @@ static void Sta_DrawBarColors (Sta_ColorType_t ColorType,float HitsMax)
|
|||
unsigned B;
|
||||
|
||||
/***** Write numbers from 0 to Hits.Max *****/
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td colspan=\"%u\" class=\"LOG LEFT_BOTTOM\""
|
||||
" style=\"width:%upx;\">"
|
||||
|
@ -2473,7 +2474,7 @@ static void Sta_DrawBarColors (Sta_ColorType_t ColorType,float HitsMax)
|
|||
R,G,B,Gbl.Prefs.IconsURL);
|
||||
}
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include "swad_parameter.h"
|
||||
#include "swad_role.h"
|
||||
#include "swad_survey.h"
|
||||
#include "swad_table.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** External global variables from others modules ****************/
|
||||
|
@ -224,7 +225,7 @@ static void Svy_ListAllSurveys (struct SurveyQuestion *SvyQst)
|
|||
if (Gbl.Svys.Num)
|
||||
{
|
||||
/***** Table head *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<th class=\"CONTEXT_COL\"></th>"); // Column for contextual icons
|
||||
for (Order = Svy_ORDER_BY_START_DATE;
|
||||
|
@ -266,7 +267,7 @@ static void Svy_ListAllSurveys (struct SurveyQuestion *SvyQst)
|
|||
Svy_ShowOneSurvey (Gbl.Svys.LstSvyCods[NumSvy - 1],SvyQst,false);
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // No surveys created
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_surveys);
|
||||
|
@ -443,7 +444,7 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
|
|||
|
||||
/***** Start table *****/
|
||||
if (ShowOnlyThisSvyComplete)
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/***** Write first row of data of this assignment *****/
|
||||
/* Forms to remove/edit this assignment */
|
||||
|
@ -671,7 +672,7 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
|
|||
if (ShowOnlyThisSvyComplete)
|
||||
{
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** End frame *****/
|
||||
Box_EndBox ();
|
||||
|
@ -2673,7 +2674,7 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
|
|||
Svy_PutParamQstCod (SvyQst->QstCod);
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWide (2);
|
||||
Tbl_StartTableWide (2);
|
||||
|
||||
/***** Stem *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -2722,7 +2723,7 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
|
|||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td></td>"
|
||||
"<td class=\"LEFT_TOP\">");
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
for (NumAns = 0;
|
||||
NumAns < Svy_MAX_ANSWERS_PER_QUESTION;
|
||||
NumAns++)
|
||||
|
@ -2745,12 +2746,12 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
|
|||
"</td>"
|
||||
"</tr>");
|
||||
}
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Send button *****/
|
||||
if (SvyQst->QstCod > 0) // If the question already has assigned a code
|
||||
|
@ -3195,7 +3196,7 @@ static void Svy_ListSvyQuestions (struct Survey *Svy,struct SurveyQuestion *SvyQ
|
|||
}
|
||||
|
||||
/***** Write the heading *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
if (Svy->Status.ICanEdit)
|
||||
fprintf (Gbl.F.Out,"<th colspan=\"2\"></th>");
|
||||
|
@ -3279,7 +3280,7 @@ static void Svy_ListSvyQuestions (struct Survey *Svy,struct SurveyQuestion *SvyQ
|
|||
"</tr>");
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
if (PutFormAnswerSurvey)
|
||||
{
|
||||
|
@ -3379,7 +3380,7 @@ static void Svy_WriteAnswersOfAQst (struct Survey *Svy,struct SurveyQuestion *Sv
|
|||
/***** Write the answers *****/
|
||||
if (NumAnswers)
|
||||
{
|
||||
Lay_StartTable (5);
|
||||
Tbl_StartTable (5);
|
||||
for (NumAns = 0;
|
||||
NumAns < NumAnswers;
|
||||
NumAns++)
|
||||
|
@ -3443,7 +3444,7 @@ static void Svy_WriteAnswersOfAQst (struct Survey *Svy,struct SurveyQuestion *Sv
|
|||
/* Free memory allocated for the answer */
|
||||
free ((void *) Answer);
|
||||
}
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
|
|
|
@ -0,0 +1,94 @@
|
|||
// swad_table.c: tables
|
||||
|
||||
/*
|
||||
SWAD (Shared Workspace At a Distance),
|
||||
is a web platform developed at the University of Granada (Spain),
|
||||
and used to support university teaching.
|
||||
|
||||
This file is part of SWAD core.
|
||||
Copyright (C) 1999-2017 Antonio Cañas Vargas
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*****************************************************************************/
|
||||
/********************************* Headers ***********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#include <stdio.h> // For fprintf
|
||||
|
||||
#include "swad_table.h"
|
||||
#include "swad_global.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** External global variables from others modules ****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
extern struct Globals Gbl;
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Private constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************************* Private types *******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Private prototypes ****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************************* Start/end table *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Tbl_StartTable (unsigned CellPadding)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<table");
|
||||
if (CellPadding)
|
||||
fprintf (Gbl.F.Out," class=\"CELLS_PAD_%u\"",CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
|
||||
fprintf (Gbl.F.Out,">");
|
||||
}
|
||||
|
||||
void Tbl_StartTableCenter (unsigned CellPadding)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_CENTER");
|
||||
if (CellPadding)
|
||||
fprintf (Gbl.F.Out," CELLS_PAD_%u",CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
|
||||
fprintf (Gbl.F.Out,"\">");
|
||||
}
|
||||
|
||||
void Tbl_StartTableWide (unsigned CellPadding)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_WIDE");
|
||||
if (CellPadding)
|
||||
fprintf (Gbl.F.Out," CELLS_PAD_%u",CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
|
||||
fprintf (Gbl.F.Out,"\">");
|
||||
}
|
||||
|
||||
void Tbl_StartTableWideMargin (unsigned CellPadding)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_WIDE_MARGIN");
|
||||
if (CellPadding)
|
||||
fprintf (Gbl.F.Out," CELLS_PAD_%u",CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
|
||||
fprintf (Gbl.F.Out,"\">");
|
||||
}
|
||||
|
||||
void Tbl_EndTable (void)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"</table>");
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
// swad_table.h: tables
|
||||
|
||||
#ifndef _SWAD_TBL
|
||||
#define _SWAD_TBL
|
||||
/*
|
||||
SWAD (Shared Workspace At a Distance in Spanish),
|
||||
is a web platform developed at the University of Granada (Spain),
|
||||
and used to support university teaching.
|
||||
|
||||
This file is part of SWAD core.
|
||||
Copyright (C) 1999-2017 Antonio Cañas Vargas
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*****************************************************************************/
|
||||
/********************************* Headers ***********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/********************************* Public types ******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Public prototypes ****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Tbl_StartTable (unsigned CellPadding);
|
||||
void Tbl_StartTableCenter (unsigned CellPadding);
|
||||
void Tbl_StartTableWide (unsigned CellPadding);
|
||||
void Tbl_StartTableWideMargin (unsigned CellPadding);
|
||||
void Tbl_EndTable (void);
|
||||
|
||||
#endif
|
97
swad_test.c
97
swad_test.c
|
@ -43,6 +43,7 @@
|
|||
#include "swad_ID.h"
|
||||
#include "swad_image.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_theme.h"
|
||||
#include "swad_test.h"
|
||||
#include "swad_test_import.h"
|
||||
|
@ -328,7 +329,7 @@ void Tst_ShowFormAskTst (void)
|
|||
{
|
||||
Act_FormStart (ActSeeTst);
|
||||
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
|
||||
/***** Selection of tags *****/
|
||||
Tst_ShowFormSelTags (NumRows,mysql_res,true,1);
|
||||
|
@ -357,7 +358,7 @@ void Tst_ShowFormAskTst (void)
|
|||
"</td>"
|
||||
"</tr>");
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Send button *****/
|
||||
Btn_PutConfirmButton (Txt_Generate_test);
|
||||
|
@ -450,9 +451,9 @@ void Tst_ShowNewTest (void)
|
|||
Par_PutHiddenParamUnsigned ("NumQst",Gbl.Test.NumQsts);
|
||||
|
||||
/***** List the questions *****/
|
||||
Lay_StartTableWideMargin (10);
|
||||
Tbl_StartTableWideMargin (10);
|
||||
Tst_ShowTestQuestionsWhenSeeing (mysql_res);
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Test result will be saved? *****/
|
||||
fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\""
|
||||
|
@ -552,9 +553,9 @@ void Tst_AssessTest (void)
|
|||
}
|
||||
|
||||
/***** Write answers and solutions *****/
|
||||
Lay_StartTableWideMargin (10);
|
||||
Tbl_StartTableWideMargin (10);
|
||||
Tst_ShowTestResultAfterAssess (TstCod,&NumQstsNotBlank,&TotalScore);
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Write total mark of test *****/
|
||||
if (Gbl.Test.Config.FeedbackType != Tst_FEEDBACK_NOTHING)
|
||||
|
@ -1290,7 +1291,7 @@ void Tst_ShowFormAskEditTsts (void)
|
|||
Act_FormStart (ActLstTstQst);
|
||||
Par_PutHiddenParamUnsigned ("Order",(unsigned) Tst_ORDER_STEM);
|
||||
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
|
||||
/***** Selection of tags *****/
|
||||
Tst_ShowFormSelTags (NumRows,mysql_res,false,2);
|
||||
|
@ -1301,7 +1302,7 @@ void Tst_ShowFormAskEditTsts (void)
|
|||
/***** Starting and ending dates in the search *****/
|
||||
Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (false);
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Send button *****/
|
||||
Btn_PutConfirmButton (Txt_Show_questions);
|
||||
|
@ -1651,7 +1652,7 @@ static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res,
|
|||
if (NumCols > 1)
|
||||
fprintf (Gbl.F.Out," colspan=\"%u\"",NumCols);
|
||||
fprintf (Gbl.F.Out," class=\"LEFT_TOP\">");
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
if (!ShowOnlyEnabledTags)
|
||||
fprintf (Gbl.F.Out,"<td></td>");
|
||||
|
@ -1714,7 +1715,7 @@ static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res,
|
|||
row[1]);
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
}
|
||||
|
@ -1860,7 +1861,7 @@ static void Tst_ShowFormConfigTst (void)
|
|||
Act_FormStart (ActRcvCfgTst);
|
||||
|
||||
/***** Tests are visible from plugins? *****/
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"%s RIGHT_TOP\">"
|
||||
"%s:"
|
||||
|
@ -1893,14 +1894,14 @@ static void Tst_ShowFormConfigTst (void)
|
|||
"<td class=\"LEFT_BOTTOM\">",
|
||||
The_ClassForm[Gbl.Prefs.Theme],
|
||||
Txt_No_of_questions);
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
Tst_PutInputFieldNumQst ("NumQstMin",Txt_minimum,
|
||||
Gbl.Test.Config.Min); // Minimum number of questions
|
||||
Tst_PutInputFieldNumQst ("NumQstDef",Txt_default,
|
||||
Gbl.Test.Config.Def); // Default number of questions
|
||||
Tst_PutInputFieldNumQst ("NumQstMax",Txt_maximum,
|
||||
Gbl.Test.Config.Max); // Maximum number of questions
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
||||
|
@ -1945,7 +1946,7 @@ static void Tst_ShowFormConfigTst (void)
|
|||
}
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Send button *****/
|
||||
Btn_PutConfirmButton (Txt_Save);
|
||||
|
@ -2270,7 +2271,7 @@ static void Tst_ShowFormAnswerTypes (unsigned NumCols)
|
|||
if (NumCols > 1)
|
||||
fprintf (Gbl.F.Out," colspan=\"%u\"",NumCols);
|
||||
fprintf (Gbl.F.Out," class=\"LEFT_TOP\">");
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"LEFT_MIDDLE\">"
|
||||
"<label class=\"%s\">"
|
||||
|
@ -2310,7 +2311,7 @@ static void Tst_ShowFormAnswerTypes (unsigned NumCols)
|
|||
Txt_TST_STR_ANSWER_TYPES[AnsType]);
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
}
|
||||
|
@ -2738,7 +2739,7 @@ static void Tst_ListOneOrMoreQuestionsToEdit (unsigned long NumRows,MYSQL_RES *m
|
|||
false); // Not closable
|
||||
|
||||
/***** Write the heading *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<th colspan=\"2\"></th>"
|
||||
"<th class=\"CENTER_TOP\">"
|
||||
|
@ -2983,7 +2984,7 @@ static void Tst_ListOneOrMoreQuestionsToEdit (unsigned long NumRows,MYSQL_RES *m
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Button to add a new question *****/
|
||||
Tst_PutButtonToAddQuestion ();
|
||||
|
@ -3092,7 +3093,7 @@ static void Tst_WriteAnswersOfAQstEdit (long QstCod)
|
|||
case Tst_ANS_UNIQUE_CHOICE:
|
||||
case Tst_ANS_MULTIPLE_CHOICE:
|
||||
case Tst_ANS_TEXT:
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
for (NumOpt = 0;
|
||||
NumOpt < Gbl.Test.Answer.NumOptions;
|
||||
NumOpt++)
|
||||
|
@ -3168,7 +3169,7 @@ static void Tst_WriteAnswersOfAQstEdit (long QstCod)
|
|||
if (LengthFeedback)
|
||||
free ((void *) Feedback);
|
||||
}
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -3340,7 +3341,7 @@ static void Tst_WriteTFAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
}
|
||||
|
||||
/***** Header with the title of each column *****/
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
Tst_WriteHeadUserCorrect ();
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
|
@ -3381,7 +3382,7 @@ static void Tst_WriteTFAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
Tst_WriteScoreEnd ();
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -3410,7 +3411,7 @@ static void Tst_WriteChoiceAnsViewTest (unsigned NumQst,long QstCod,bool Shuffle
|
|||
*/
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
|
||||
for (NumOpt = 0;
|
||||
NumOpt < Gbl.Test.Answer.NumOptions;
|
||||
|
@ -3484,7 +3485,7 @@ static void Tst_WriteChoiceAnsViewTest (unsigned NumQst,long QstCod,bool Shuffle
|
|||
}
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
|
@ -3590,7 +3591,7 @@ static void Tst_WriteChoiceAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
}
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
Tst_WriteHeadUserCorrect ();
|
||||
fprintf (Gbl.F.Out,"<td></td>"
|
||||
|
@ -3727,7 +3728,7 @@ static void Tst_WriteChoiceAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
}
|
||||
|
||||
/***** End of table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -3799,7 +3800,7 @@ static void Tst_WriteTextAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
}
|
||||
|
||||
/***** Header with the title of each column *****/
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
Tst_WriteHeadUserCorrect ();
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
|
@ -3854,7 +3855,7 @@ static void Tst_WriteTextAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
Gbl.Test.Config.FeedbackType == Tst_FEEDBACK_FULL_FEEDBACK)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_TOP\">");
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
|
||||
for (NumOpt = 0;
|
||||
NumOpt < Gbl.Test.Answer.NumOptions;
|
||||
|
@ -3883,7 +3884,7 @@ static void Tst_WriteTextAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
"</tr>");
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else
|
||||
fprintf (Gbl.F.Out,"<td class=\"ANS CENTER_TOP\">"
|
||||
|
@ -3921,7 +3922,7 @@ static void Tst_WriteTextAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
Tst_WriteScoreEnd ();
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -3963,7 +3964,7 @@ static void Tst_WriteIntAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
Lay_ShowErrorAndExit ("Wrong integer answer.");
|
||||
|
||||
/***** Header with the title of each column *****/
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
Tst_WriteHeadUserCorrect ();
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
|
@ -4033,7 +4034,7 @@ static void Tst_WriteIntAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
Tst_WriteScoreEnd ();
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -4089,7 +4090,7 @@ static void Tst_WriteFloatAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
}
|
||||
|
||||
/***** Header with the title of each column *****/
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
Tst_WriteHeadUserCorrect ();
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
|
@ -4158,7 +4159,7 @@ static void Tst_WriteFloatAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
|
|||
Tst_WriteScoreEnd ();
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -4255,7 +4256,7 @@ static void Tst_GetAndWriteTagsQst (long QstCod)
|
|||
if ((NumRows = Tst_GetTagsQst (QstCod,&mysql_res))) // Result: TagTxt
|
||||
{
|
||||
/***** Write the tags *****/
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
|
||||
for (NumRow = 0;
|
||||
NumRow < NumRows;
|
||||
|
@ -4273,7 +4274,7 @@ static void Tst_GetAndWriteTagsQst (long QstCod)
|
|||
row[0]);
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else
|
||||
fprintf (Gbl.F.Out,"<span class=\"DAT_SMALL\"> (%s) </span>",
|
||||
|
@ -4540,7 +4541,7 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
|
|||
Tst_PutParamQstCod ();
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTable (2); // Table for this question
|
||||
Tbl_StartTable (2); // Table for this question
|
||||
|
||||
/***** Help for text editor *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -4559,7 +4560,7 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
|
|||
"</td>"
|
||||
"<td class=\"LEFT_TOP\">",
|
||||
The_ClassForm[Gbl.Prefs.Theme],Txt_Tags);
|
||||
Lay_StartTable (2); // Table for tags
|
||||
Tbl_StartTable (2); // Table for tags
|
||||
|
||||
for (NumTag = 0;
|
||||
NumTag < Tst_MAX_TAGS_PER_QUESTION;
|
||||
|
@ -4609,7 +4610,7 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
|
|||
fprintf (Gbl.F.Out,"</tr>");
|
||||
}
|
||||
|
||||
Lay_EndTable (); // Table for tags
|
||||
Tbl_EndTable (); // Table for tags
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
||||
|
@ -4739,7 +4740,7 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
|
|||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td></td>"
|
||||
"<td class=\"LEFT_TOP\">");
|
||||
Lay_StartTable (2); // Table with choice answers
|
||||
Tbl_StartTable (2); // Table with choice answers
|
||||
|
||||
OptionsDisabled = Gbl.Test.AnswerType != Tst_ANS_UNIQUE_CHOICE &&
|
||||
Gbl.Test.AnswerType != Tst_ANS_MULTIPLE_CHOICE &&
|
||||
|
@ -4864,12 +4865,12 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
|
|||
"</td>"
|
||||
"</tr>");
|
||||
}
|
||||
Lay_EndTable (); // Table with choice answers
|
||||
Tbl_EndTable (); // Table with choice answers
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable (); // Table for this question
|
||||
Tbl_EndTable (); // Table for this question
|
||||
|
||||
/***** Send button *****/
|
||||
if (Gbl.Test.QstCod > 0) // The question already has assigned a code
|
||||
|
@ -7013,7 +7014,7 @@ void Tst_SelUsrsToSeeUsrsTestResults (void)
|
|||
Grp_PutParamsCodGrps ();
|
||||
|
||||
/***** Put list of users to select some of them *****/
|
||||
Lay_StartTableCenter (2);
|
||||
Tbl_StartTableCenter (2);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"%s RIGHT_TOP\">"
|
||||
"%s:"
|
||||
|
@ -7021,18 +7022,18 @@ void Tst_SelUsrsToSeeUsrsTestResults (void)
|
|||
"<td colspan=\"2\" class=\"%s LEFT_TOP\">",
|
||||
The_ClassForm[Gbl.Prefs.Theme],Txt_Users,
|
||||
The_ClassForm[Gbl.Prefs.Theme]);
|
||||
Lay_StartTable (2);
|
||||
Tbl_StartTable (2);
|
||||
Usr_ListUsersToSelect (Rol_TCH);
|
||||
Usr_ListUsersToSelect (Rol_NET);
|
||||
Usr_ListUsersToSelect (Rol_STD);
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
||||
/***** Starting and ending dates in the search *****/
|
||||
Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (false);
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Send button *****/
|
||||
Btn_PutConfirmButton (Txt_View_test_results);
|
||||
|
@ -7724,7 +7725,7 @@ void Tst_ShowOneTestResult (void)
|
|||
Gbl.CurrentCrs.Crs.CrsCod);
|
||||
|
||||
/***** Start table *****/
|
||||
Lay_StartTableWideMargin (10);
|
||||
Tbl_StartTableWideMargin (10);
|
||||
|
||||
/***** Header row *****/
|
||||
/* Get data of the user who made the test */
|
||||
|
@ -7821,7 +7822,7 @@ void Tst_ShowOneTestResult (void)
|
|||
Tst_ShowTstTotalMark (TotalScore);
|
||||
|
||||
/***** End table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** End frame *****/
|
||||
Box_EndBox ();
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include "swad_database.h"
|
||||
#include "swad_global.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_test.h"
|
||||
#include "swad_xml.h"
|
||||
|
||||
|
@ -536,7 +537,7 @@ static void TsI_ImportQuestionsFromXMLBuffer (const char *XMLBuffer)
|
|||
/* Current element is <test> */
|
||||
|
||||
/***** Write heading of list of imported questions *****/
|
||||
Lay_StartTableWideMargin (2);
|
||||
Tbl_StartTableWideMargin (2);
|
||||
TsI_WriteHeadingListImportedQst ();
|
||||
|
||||
/***** For each question... *****/
|
||||
|
@ -671,7 +672,7 @@ static void TsI_ImportQuestionsFromXMLBuffer (const char *XMLBuffer)
|
|||
}
|
||||
}
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // TestElem not found
|
||||
Ale_ShowAlert (Ale_ERROR,"Root element <test> not found.");
|
||||
|
|
37
swad_user.c
37
swad_user.c
|
@ -61,6 +61,7 @@
|
|||
#include "swad_record.h"
|
||||
#include "swad_role.h"
|
||||
#include "swad_tab.h"
|
||||
#include "swad_table.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -6199,7 +6200,7 @@ void Usr_ListAllDataGsts (void)
|
|||
NumColumnsCommonCard = Usr_NUM_ALL_FIELDS_DATA_GST;
|
||||
|
||||
/***** Start table with list of guests *****/
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
|
||||
/* Start row */
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
|
@ -6241,7 +6242,7 @@ void Usr_ListAllDataGsts (void)
|
|||
Usr_UsrDataDestructor (&UsrDat);
|
||||
|
||||
/***** End of table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // Gbl.Usrs.LstUsrs[Rol_GST].NumUsrs == 0
|
||||
/***** Show warning indicating no guests found *****/
|
||||
|
@ -6347,7 +6348,7 @@ void Usr_ListAllDataStds (void)
|
|||
}
|
||||
|
||||
/***** Start table with list of students *****/
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
if (!Gbl.Usrs.ClassPhoto.AllGroups)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
|
@ -6441,7 +6442,7 @@ void Usr_ListAllDataStds (void)
|
|||
Usr_UsrDataDestructor (&UsrDat);
|
||||
|
||||
/***** End of table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/***** Free memory used by the string with the list of group names where student belongs to *****/
|
||||
if (Gbl.Scope.Current == Sco_SCOPE_CRS)
|
||||
|
@ -6569,7 +6570,7 @@ void Usr_ListAllDataTchs (void)
|
|||
NumColumns = Usr_NUM_ALL_FIELDS_DATA_TCH;
|
||||
|
||||
/***** Start table with lists of teachers *****/
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
|
||||
/***** List teachers and non-editing teachers *****/
|
||||
Gbl.RowEvenOdd = 0;
|
||||
|
@ -6577,7 +6578,7 @@ void Usr_ListAllDataTchs (void)
|
|||
Usr_ListRowsAllDataTchs (Rol_NET,FieldNames,NumColumns);
|
||||
|
||||
/***** End of table *****/
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // NumUsrs == 0
|
||||
/***** Show warning indicating no teachers found *****/
|
||||
|
@ -7346,7 +7347,7 @@ void Usr_SeeGuests (void)
|
|||
Act_FormStart (ActSeeRecSevGst);
|
||||
|
||||
/* Start table */
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
|
||||
/* Draw the classphoto/list */
|
||||
switch (Gbl.Usrs.Me.ListType)
|
||||
|
@ -7363,7 +7364,7 @@ void Usr_SeeGuests (void)
|
|||
}
|
||||
|
||||
/* End table */
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
/* Send button */
|
||||
Btn_PutConfirmButton (Txt_Show_records);
|
||||
|
@ -7514,7 +7515,7 @@ void Usr_SeeStudents (void)
|
|||
}
|
||||
|
||||
/* Start table */
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
|
||||
/* Draw the classphoto/list */
|
||||
switch (Gbl.Usrs.Me.ListType)
|
||||
|
@ -7532,7 +7533,7 @@ void Usr_SeeStudents (void)
|
|||
}
|
||||
|
||||
/* End table */
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
if (ICanViewRecords)
|
||||
{
|
||||
|
@ -7685,7 +7686,7 @@ void Usr_SeeTeachers (void)
|
|||
Act_FormStart (ActSeeRecSevTch);
|
||||
|
||||
/* Start table */
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
|
||||
/***** Draw the classphoto/list *****/
|
||||
switch (Gbl.Usrs.Me.ListType)
|
||||
|
@ -7712,7 +7713,7 @@ void Usr_SeeTeachers (void)
|
|||
}
|
||||
|
||||
/* End table */
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
|
||||
if (ICanViewRecords)
|
||||
{
|
||||
|
@ -7919,10 +7920,10 @@ void Usr_SeeGstClassPhotoPrn (void)
|
|||
Gbl.Scope.Current == Sco_SCOPE_INS) ? Gbl.CurrentIns.Ins.InsCod :
|
||||
-1L,
|
||||
-1L,-1L);
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
Usr_DrawClassPhoto (Usr_CLASS_PHOTO_PRN,
|
||||
Rol_GST,false);
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // Gbl.Usrs.LstUsrs[Rol_GST].NumUsrs
|
||||
/***** Show warning indicating no guests found *****/
|
||||
|
@ -7967,10 +7968,10 @@ void Usr_SeeStdClassPhotoPrn (void)
|
|||
-1L,
|
||||
Gbl.Scope.Current == Sco_SCOPE_CRS ? Gbl.CurrentCrs.Crs.CrsCod :
|
||||
-1L);
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
Usr_DrawClassPhoto (Usr_CLASS_PHOTO_PRN,
|
||||
Rol_STD,false);
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // Gbl.Usrs.LstUsrs[Rol_STD].NumUsrs == 0
|
||||
/***** Show warning indicating no students found *****/
|
||||
|
@ -8034,7 +8035,7 @@ void Usr_SeeTchClassPhotoPrn (void)
|
|||
-1L,
|
||||
Gbl.Scope.Current == Sco_SCOPE_CRS ? Gbl.CurrentCrs.Crs.CrsCod :
|
||||
-1L);
|
||||
Lay_StartTableWide (0);
|
||||
Tbl_StartTableWide (0);
|
||||
|
||||
/* List teachers and non-editing teachers */
|
||||
Usr_DrawClassPhoto (Usr_CLASS_PHOTO_PRN,
|
||||
|
@ -8042,7 +8043,7 @@ void Usr_SeeTchClassPhotoPrn (void)
|
|||
Usr_DrawClassPhoto (Usr_CLASS_PHOTO_PRN,
|
||||
Rol_NET,false);
|
||||
|
||||
Lay_EndTable ();
|
||||
Tbl_EndTable ();
|
||||
}
|
||||
else // NumUsrs == 0
|
||||
/***** Show warning indicating no teachers found *****/
|
||||
|
|
Loading…
Reference in New Issue