");
- if (Gbl.CurrentCrs.Syllabus.EditionIsActive)
+ if (Gbl.Syllabus.EditionIsActive)
{
if (NewItem)
fprintf (Gbl.F.Out,""
@@ -706,7 +721,7 @@ static void Syl_ShowRowSyllabus (unsigned NumItem,
}
}
- if (Gbl.CurrentCrs.Syllabus.EditionIsActive)
+ if (Gbl.Syllabus.EditionIsActive)
Syl_PutFormItemSyllabus (NewItem,NumItem,Level,CodItem,Text);
else
{
@@ -756,7 +771,7 @@ int Syl_WriteSyllabusIntoHTMLBuffer (char **HTMLBuffer)
*HTMLBuffer = NULL;
/***** Load syllabus from XML file to list of items in memory *****/
- Syl_LoadToMemory ();
+ Syl_LoadListItemsSyllabusIntoMemory (Gbl.CurrentCrs.Crs.CrsCod);
if (LstItemsSyllabus.NumItems)
{
@@ -996,10 +1011,13 @@ void Syl_RemoveItemSyllabus (void)
FILE *NewFile;
unsigned NumItem;
- /***** Load syllabus from XML file to memory *****/
- Syl_SetSyllabusTypeAndLoadToMemory ();
+ /***** Set syllabus type depending on current action *****/
+ Syl_SetSyllabusTypeFromAction ();
- Gbl.CurrentCrs.Syllabus.EditionIsActive = true;
+ /***** Load syllabus from XML file to memory *****/
+ Syl_LoadListItemsSyllabusIntoMemory (Gbl.CurrentCrs.Crs.CrsCod);
+
+ Gbl.Syllabus.EditionIsActive = true;
/***** Get item number *****/
Syl_GetParamItemNumber ();
@@ -1013,13 +1031,18 @@ void Syl_RemoveItemSyllabus (void)
for (NumItem = 0;
NumItem < LstItemsSyllabus.NumItems;
NumItem++)
- if (NumItem != Gbl.CurrentCrs.Syllabus.NumItem)
+ if (NumItem != Gbl.Syllabus.NumItem)
Syl_WriteItemFileSyllabus (NewFile,LstItemsSyllabus.Lst[NumItem].Level,LstItemsSyllabus.Lst[NumItem].Text);
Syl_WriteEndFileSyllabus (NewFile);
/***** Close the files *****/
Fil_CloseUpdateFile (PathFile,PathOldFile,PathNewFile,NewFile);
+ /***** We are editing a syllabus with the internal editor,
+ so change info source to internal editor in database *****/
+ Inf_SetInfoSrcIntoDB (LstItemsSyllabus.NumItems ? Inf_INFO_SRC_EDITOR :
+ Inf_INFO_SRC_NONE);
+
/***** Show the updated syllabus to continue editing it *****/
Syl_FreeListItemsSyllabus ();
Syl_EditSyllabus ();
@@ -1056,10 +1079,13 @@ void Syl_ChangePlaceItemSyllabus (Syl_ChangePosItem_t UpOrDownPos)
unsigned NumItem;
struct MoveSubtrees Subtree;
- /***** Load syllabus from XML file to memory *****/
- Syl_SetSyllabusTypeAndLoadToMemory ();
+ /***** Set syllabus type depending on current action *****/
+ Syl_SetSyllabusTypeFromAction ();
- Gbl.CurrentCrs.Syllabus.EditionIsActive = true;
+ /***** Load syllabus from XML file to memory *****/
+ Syl_LoadListItemsSyllabusIntoMemory (Gbl.CurrentCrs.Crs.CrsCod);
+
+ Gbl.Syllabus.EditionIsActive = true;
/***** Get item number *****/
Syl_GetParamItemNumber ();
@@ -1068,7 +1094,7 @@ void Syl_ChangePlaceItemSyllabus (Syl_ChangePosItem_t UpOrDownPos)
Subtree.ToGetDown.Ini = Subtree.ToGetDown.End = 0;
Subtree.MovAllowed = false;
- if (Gbl.CurrentCrs.Syllabus.NumItem < LstItemsSyllabus.NumItems)
+ if (Gbl.Syllabus.NumItem < LstItemsSyllabus.NumItems)
{
/***** Create a new file where make the update *****/
Syl_BuildPathFileSyllabus (PathFile);
@@ -1078,10 +1104,10 @@ void Syl_ChangePlaceItemSyllabus (Syl_ChangePosItem_t UpOrDownPos)
switch (UpOrDownPos)
{
case Syl_GET_UP:
- Syl_CalculateUpSubtreeSyllabus (&Subtree,Gbl.CurrentCrs.Syllabus.NumItem);
+ Syl_CalculateUpSubtreeSyllabus (&Subtree,Gbl.Syllabus.NumItem);
break;
case Syl_GET_DOWN:
- Syl_CalculateDownSubtreeSyllabus (&Subtree,Gbl.CurrentCrs.Syllabus.NumItem);
+ Syl_CalculateDownSubtreeSyllabus (&Subtree,Gbl.Syllabus.NumItem);
break;
}
@@ -1114,6 +1140,11 @@ void Syl_ChangePlaceItemSyllabus (Syl_ChangePosItem_t UpOrDownPos)
Fil_CloseUpdateFile (PathFile,PathOldFile,PathNewFile,NewFile);
}
+ /***** We are editing a syllabus with the internal editor,
+ so change info source to internal editor in database *****/
+ Inf_SetInfoSrcIntoDB (LstItemsSyllabus.NumItems ? Inf_INFO_SRC_EDITOR :
+ Inf_INFO_SRC_NONE);
+
/***** Show the updated syllabus to continue editing it *****/
Syl_FreeListItemsSyllabus ();
Syl_EditSyllabus ();
@@ -1238,10 +1269,13 @@ void Syl_ChangeLevelItemSyllabus (Syl_ChangeLevelItem_t IncreaseOrDecreaseLevel)
char PathNewFile[PATH_MAX+1];
FILE *NewFile;
- /***** Load syllabus from XML file to memory *****/
- Syl_SetSyllabusTypeAndLoadToMemory ();
+ /***** Set syllabus type depending on current action *****/
+ Syl_SetSyllabusTypeFromAction ();
- Gbl.CurrentCrs.Syllabus.EditionIsActive = true;
+ /***** Load syllabus from XML file to memory *****/
+ Syl_LoadListItemsSyllabusIntoMemory (Gbl.CurrentCrs.Crs.CrsCod);
+
+ Gbl.Syllabus.EditionIsActive = true;
/***** Get item number *****/
Syl_GetParamItemNumber ();
@@ -1254,12 +1288,12 @@ void Syl_ChangeLevelItemSyllabus (Syl_ChangeLevelItem_t IncreaseOrDecreaseLevel)
switch (IncreaseOrDecreaseLevel)
{
case Syl_INCREASE_LEVEL:
- if (LstItemsSyllabus.Lst[Gbl.CurrentCrs.Syllabus.NumItem].Level > 1)
- LstItemsSyllabus.Lst[Gbl.CurrentCrs.Syllabus.NumItem].Level--;
+ if (LstItemsSyllabus.Lst[Gbl.Syllabus.NumItem].Level > 1)
+ LstItemsSyllabus.Lst[Gbl.Syllabus.NumItem].Level--;
break;
case Syl_DECREASE_LEVEL:
- if (LstItemsSyllabus.Lst[Gbl.CurrentCrs.Syllabus.NumItem].Level < Syl_MAX_LEVELS_SYLLABUS)
- LstItemsSyllabus.Lst[Gbl.CurrentCrs.Syllabus.NumItem].Level++;
+ if (LstItemsSyllabus.Lst[Gbl.Syllabus.NumItem].Level < Syl_MAX_LEVELS_SYLLABUS)
+ LstItemsSyllabus.Lst[Gbl.Syllabus.NumItem].Level++;
break;
}
@@ -1271,6 +1305,11 @@ void Syl_ChangeLevelItemSyllabus (Syl_ChangeLevelItem_t IncreaseOrDecreaseLevel)
/***** Close the files *****/
Fil_CloseUpdateFile (PathFile,PathOldFile,PathNewFile,NewFile);
+ /***** We are editing a syllabus with the internal editor,
+ so change info source to internal editor in database *****/
+ Inf_SetInfoSrcIntoDB (LstItemsSyllabus.NumItems ? Inf_INFO_SRC_EDITOR :
+ Inf_INFO_SRC_NONE);
+
/***** Show the updated syllabus to continue editing it *****/
Syl_FreeListItemsSyllabus ();
Syl_EditSyllabus ();
@@ -1289,10 +1328,13 @@ void Syl_InsertItemSyllabus (void)
unsigned NumItem;
char Txt[Syl_MAX_BYTES_TEXT_ITEM+1];
- /***** Load syllabus from XML file to memory *****/
- Syl_SetSyllabusTypeAndLoadToMemory ();
+ /***** Set syllabus type depending on current action *****/
+ Syl_SetSyllabusTypeFromAction ();
- Gbl.CurrentCrs.Syllabus.EditionIsActive = true;
+ /***** Load syllabus from XML file to memory *****/
+ Syl_LoadListItemsSyllabusIntoMemory (Gbl.CurrentCrs.Crs.CrsCod);
+
+ Gbl.Syllabus.EditionIsActive = true;
/***** Get item number *****/
Syl_GetParamItemNumber ();
@@ -1309,7 +1351,7 @@ void Syl_InsertItemSyllabus (void)
/* Write items before the one to be inserted */
for (NumItem = 0;
- NumItem < Gbl.CurrentCrs.Syllabus.NumItem;
+ NumItem < Gbl.Syllabus.NumItem;
NumItem++)
Syl_WriteItemFileSyllabus (NewFile,LstItemsSyllabus.Lst[NumItem].Level,LstItemsSyllabus.Lst[NumItem].Text);
@@ -1330,6 +1372,11 @@ void Syl_InsertItemSyllabus (void)
/***** Close the files *****/
Fil_CloseUpdateFile (PathFile,PathOldFile,PathNewFile,NewFile);
+ /***** We are editing a syllabus with the internal editor,
+ so change info source to internal editor in database *****/
+ Inf_SetInfoSrcIntoDB (LstItemsSyllabus.NumItems ? Inf_INFO_SRC_EDITOR :
+ Inf_INFO_SRC_NONE);
+
/***** Show the updated syllabus to continue editing it *****/
Syl_FreeListItemsSyllabus ();
Syl_EditSyllabus ();
@@ -1346,16 +1393,19 @@ void Syl_ModifyItemSyllabus (void)
char PathNewFile[PATH_MAX+1];
FILE *NewFile;
- /***** Load syllabus from XML file to memory *****/
- Syl_SetSyllabusTypeAndLoadToMemory ();
+ /***** Set syllabus type depending on current action *****/
+ Syl_SetSyllabusTypeFromAction ();
- Gbl.CurrentCrs.Syllabus.EditionIsActive = true;
+ /***** Load syllabus from XML file to memory *****/
+ Syl_LoadListItemsSyllabusIntoMemory (Gbl.CurrentCrs.Crs.CrsCod);
+
+ Gbl.Syllabus.EditionIsActive = true;
/***** Get item number *****/
Syl_GetParamItemNumber ();
/***** Get item body *****/
- Par_GetParToHTML ("Txt",LstItemsSyllabus.Lst[Gbl.CurrentCrs.Syllabus.NumItem].Text,Syl_MAX_BYTES_TEXT_ITEM);
+ Par_GetParToHTML ("Txt",LstItemsSyllabus.Lst[Gbl.Syllabus.NumItem].Text,Syl_MAX_BYTES_TEXT_ITEM);
/***** Create a new file where make the update *****/
Syl_BuildPathFileSyllabus (PathFile);
@@ -1369,6 +1419,11 @@ void Syl_ModifyItemSyllabus (void)
/***** Close the files *****/
Fil_CloseUpdateFile (PathFile,PathOldFile,PathNewFile,NewFile);
+ /***** We are editing a syllabus with the internal editor,
+ so change info source to internal editor in database *****/
+ Inf_SetInfoSrcIntoDB (LstItemsSyllabus.NumItems ? Inf_INFO_SRC_EDITOR :
+ Inf_INFO_SRC_NONE);
+
/***** Show the updated syllabus to continue editing it *****/
Syl_FreeListItemsSyllabus ();
Syl_EditSyllabus ();
@@ -1380,7 +1435,7 @@ void Syl_ModifyItemSyllabus (void)
void Syl_BuildPathFileSyllabus (char *PathFile)
{
- sprintf (PathFile,"%s/%s",Gbl.CurrentCrs.Syllabus.PathDir,Cfg_SYLLABUS_FILENAME);
+ sprintf (PathFile,"%s/%s",Gbl.Syllabus.PathDir,Cfg_SYLLABUS_FILENAME);
}
/*****************************************************************************/
diff --git a/swad_syllabus.h b/swad_syllabus.h
index cfee7746..ffb63940 100644
--- a/swad_syllabus.h
+++ b/swad_syllabus.h
@@ -70,11 +70,13 @@ void Syl_PutFormWhichSyllabus (void);
void Syl_GetParamItemNumber (void);
-bool Syl_CheckSyllabus (void);
+bool Syl_CheckSyllabus (long CrsCod,Inf_InfoType_t InfoType);
bool Syl_CheckAndEditSyllabus (void);
void Syl_EditSyllabus (void);
+void Syl_LoadListItemsSyllabusIntoMemory (long CrsCod);
void Syl_FreeListItemsSyllabus (void);
+
int Syl_ReadLevelItemSyllabus (void);
int Syl_WriteSyllabusIntoHTMLBuffer (char **HTMLBuffer);
void Syl_PutParamNumItem (unsigned NumItem);
|