diff --git a/swad_changelog.h b/swad_changelog.h
index bddc18b4c..feef715a2 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -156,13 +156,15 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
-#define Log_PLATFORM_VERSION "SWAD 16.56 (2016-11-13)"
+#define Log_PLATFORM_VERSION "SWAD 16.56.2 (2016-11-13)"
#define CSS_FILE "swad16.51.css"
#define JS_FILE "swad16.46.1.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.56.2: Nov 13, 2016 Contextual help on groups. (206938 lines)
+ Version 16.56.1: Nov 13, 2016 Code refactoring and changes in layout related with titles. (206923 lines)
Version 16.56: Nov 13, 2016 Contextual help on tests.
Change in layout of test import. (206935 lines)
Version 16.55: Nov 13, 2016 Contextual help on file zones. (206912 lines)
diff --git a/swad_group.c b/swad_group.c
index e30722b4f..e84fdc69b 100644
--- a/swad_group.c
+++ b/swad_group.c
@@ -227,6 +227,7 @@ static void Grp_EditGroups (void)
static void Grp_ShowFormSeveralGrps (Act_Action_t NextAction)
{
+ extern const char *Hlp_USERS_Groups;
extern const char *The_ClassForm[The_NUM_THEMES];
extern const char *The_ClassFormBold[The_NUM_THEMES];
extern const char *Txt_Groups;
@@ -244,7 +245,7 @@ static void Grp_ShowFormSeveralGrps (Act_Action_t NextAction)
Lay_StartRoundFrame (NULL,Txt_Groups,
ICanEdit ? Grp_PutIconToEditGroups :
NULL,
- NULL);
+ Hlp_USERS_Groups);
/***** Start form to update the students listed
depending on the groups selected *****/
@@ -1123,6 +1124,7 @@ static void Grp_AddUsrToGroup (struct UsrData *UsrDat,long GrpCod)
static void Grp_ListGroupTypesForEdition (void)
{
+ extern const char *Hlp_USERS_Groups;
extern const char *Txt_Types_of_group;
extern const char *Txt_It_is_optional_to_choose_a_group;
extern const char *Txt_It_is_mandatory_to_choose_a_group;
@@ -1135,7 +1137,8 @@ static void Grp_ListGroupTypesForEdition (void)
char Id[32];
/***** Write heading *****/
- Lay_StartRoundFrameTable (NULL,2,Txt_Types_of_group);
+ Lay_StartRoundFrame (NULL,Txt_Types_of_group,NULL,Hlp_USERS_Groups);
+ fprintf (Gbl.F.Out,"
");
Grp_WriteHeadingGroupTypes ();
/***** List group types with forms for edition *****/
@@ -1296,6 +1299,7 @@ static void Grp_WriteHeadingGroupTypes (void)
static void Grp_ListGroupsForEdition (void)
{
+ extern const char *Hlp_USERS_Groups;
extern const char *Txt_Groups;
extern const char *Txt_Group_X_open_click_to_close_it;
extern const char *Txt_Group_X_closed_click_to_open_it;
@@ -1309,7 +1313,8 @@ static void Grp_ListGroupsForEdition (void)
struct Group *Grp;
/***** Write heading *****/
- Lay_StartRoundFrameTable (NULL,2,Txt_Groups);
+ Lay_StartRoundFrame (NULL,Txt_Groups,NULL,Hlp_USERS_Groups);
+ fprintf (Gbl.F.Out,"");
Grp_WriteHeadingGroups ();
/***** List the groups *****/
@@ -1546,6 +1551,7 @@ void Grp_ReqRegisterInGrps (void)
void Grp_ShowLstGrpsToChgMyGrps (bool ShowWarningsToStudents)
{
+ extern const char *Hlp_USERS_Groups;
extern const char *Txt_My_groups;
extern const char *Txt_Change_my_groups;
extern const char *Txt_Enroll_in_groups;
@@ -1572,7 +1578,7 @@ void Grp_ShowLstGrpsToChgMyGrps (bool ShowWarningsToStudents)
Lay_StartRoundFrame (NULL,Txt_My_groups,
ICanEdit ? Grp_PutIconToEditGroups :
NULL,
- NULL);
+ Hlp_USERS_Groups);
if (Gbl.CurrentCrs.Grps.NumGrps) // This course has groups
{
@@ -1747,6 +1753,7 @@ static unsigned Grp_ListGrpsForChange (struct GroupType *GrpTyp)
void Grp_ShowLstGrpsToChgOtherUsrsGrps (long UsrCod)
{
+ extern const char *Hlp_USERS_Groups;
extern const char *Txt_Groups;
unsigned NumGrpTyp;
@@ -1754,7 +1761,8 @@ void Grp_ShowLstGrpsToChgOtherUsrsGrps (long UsrCod)
Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_ONLY_GROUP_TYPES_WITH_GROUPS);
/***** Start table *****/
- Lay_StartRoundFrameTable (NULL,0,Txt_Groups);
+ Lay_StartRoundFrame (NULL,Txt_Groups,NULL,Hlp_USERS_Groups);
+ fprintf (Gbl.F.Out,"");
/***** List to select the groups the user belongs to *****/
for (NumGrpTyp = 0;
@@ -2064,6 +2072,7 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight)
static void Grp_PutFormToCreateGroupType (void)
{
+ extern const char *Hlp_USERS_Groups;
extern const char *Txt_New_type_of_group;
extern const char *Txt_It_is_optional_to_choose_a_group;
extern const char *Txt_It_is_mandatory_to_choose_a_group;
@@ -2077,7 +2086,8 @@ static void Grp_PutFormToCreateGroupType (void)
Act_FormStart (ActNewGrpTyp);
/***** Start of frame *****/
- Lay_StartRoundFrameTable (NULL,2,Txt_New_type_of_group);
+ Lay_StartRoundFrame (NULL,Txt_New_type_of_group,NULL,Hlp_USERS_Groups);
+ fprintf (Gbl.F.Out,"");
/***** Write heading *****/
Grp_WriteHeadingGroupTypes ();
@@ -2174,6 +2184,7 @@ static void Grp_PutFormToCreateGroupType (void)
static void Grp_PutFormToCreateGroup (void)
{
+ extern const char *Hlp_USERS_Groups;
extern const char *Txt_New_group;
extern const char *Txt_Group_closed;
extern const char *Txt_File_zones_disabled;
@@ -2184,7 +2195,8 @@ static void Grp_PutFormToCreateGroup (void)
Act_FormStart (ActNewGrp);
/***** Start of frame *****/
- Lay_StartRoundFrameTable (NULL,2,Txt_New_group);
+ Lay_StartRoundFrame (NULL,Txt_New_group,NULL,Hlp_USERS_Groups);
+ fprintf (Gbl.F.Out,"");
/***** Write heading *****/
Grp_WriteHeadingGroups ();
diff --git a/swad_help.c b/swad_help.c
index 19ee403ee..1fbbd57eb 100644
--- a/swad_help.c
+++ b/swad_help.c
@@ -89,6 +89,10 @@ const char *Hlp_ASSESSMENT_Tests = WIKI "ASSESSMENT.Tests";
const char *Hlp_ASSESSMENT_Marks = WIKI "ASSESSMENT.Marks";
+/***** USERS tab *****/
+
+const char *Hlp_USERS_Groups = WIKI "USERS.Groups";
+
/***** STATS tab *****/
const char *Hlp_STATS_Surveys = WIKI "STATS.Surveys";
diff --git a/swad_layout.c b/swad_layout.c
index 947e61061..41a3e65b1 100644
--- a/swad_layout.c
+++ b/swad_layout.c
@@ -1219,18 +1219,6 @@ void Lay_PutRemoveButtonInline (const char *Text)
Text);
}
-/*****************************************************************************/
-/************ Write a centered message with the title of a table *************/
-/*****************************************************************************/
-
-void Lay_WriteTitle (const char *Title)
- {
- fprintf (Gbl.F.Out,""
- "%s"
- "
",
- Title);
- }
-
/*****************************************************************************/
/****************** Start and end a table with rounded frame *****************/
/*****************************************************************************/
diff --git a/swad_layout.h b/swad_layout.h
index 7a53f0897..12196730d 100644
--- a/swad_layout.h
+++ b/swad_layout.h
@@ -69,7 +69,6 @@ typedef enum
/*****************************************************************************/
void Lay_WriteStartOfPage (void);
-void Lay_WriteTitle (const char *Title);
void Lay_PutContextualLink (Act_Action_t NextAction,
void (*FuncParams) (),
diff --git a/swad_record.c b/swad_record.c
index baf889ba4..66b6789f8 100644
--- a/swad_record.c
+++ b/swad_record.c
@@ -3340,14 +3340,12 @@ static void Rec_ShowOfficePhone (struct UsrData *UsrDat,
static void Rec_WriteLinkToDataProtectionClause (void)
{
extern const char *Txt_DATA_PROTECTION_CLAUSE;
- char Title[1024];
- sprintf (Title,"",
+ fprintf (Gbl.F.Out,"",
Cfg_URL_SWAD_PUBLIC,Cfg_DATA_PROTECTION_FOLDER,
Txt_DATA_PROTECTION_CLAUSE);
- Lay_WriteTitle (Title);
}
/*****************************************************************************/
diff --git a/swad_test_import.c b/swad_test_import.c
index d1f5d25e7..587349131 100644
--- a/swad_test_import.c
+++ b/swad_test_import.c
@@ -509,11 +509,11 @@ static void TsI_ImportQuestionsFromXMLBuffer (const char *XMLBuffer)
Lay_StartRoundFrame (NULL,Txt_Imported_questions,NULL,Hlp_ASSESSMENT_Tests);
/***** Print XML tree *****/
- Lay_WriteTitle (Txt_XML_file_content);
fprintf (Gbl.F.Out,""
- "
");
diff --git a/swad_timetable.c b/swad_timetable.c
index d7bee6e0a..81ceca812 100644
--- a/swad_timetable.c
+++ b/swad_timetable.c
@@ -741,7 +741,7 @@ static void TT_CreatTimeTableFromDB (long UsrCod)
DB_FreeMySQLResult (&mysql_res);
if (TimeTableIsIncomplete)
- Lay_WriteTitle (Txt_Incomplete_timetable_for_lack_of_space);
+ Lay_ShowAlert (Lay_INFO,Txt_Incomplete_timetable_for_lack_of_space);
}
/*****************************************************************************/