mirror of https://github.com/acanas/swad-core.git
Version19.141.2
This commit is contained in:
parent
5992efdf91
commit
03b989e477
|
@ -497,7 +497,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
|||
En OpenSWAD:
|
||||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.141.1 (2020-03-03)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.141.2 (2020-03-03)"
|
||||
#define CSS_FILE "swad19.136.css"
|
||||
#define JS_FILE "swad19.91.1.js"
|
||||
/*
|
||||
|
@ -524,6 +524,7 @@ Param
|
|||
// TODO: Miguel Damas: al principio de los exámenes tendría que poner cuánto resta cada pregunta
|
||||
// TODO: Si el alumno ha marcado "Permitir que los profesores...", entonces pedir confirmación al pulsar el botón azul, para evitar que se envíe por error antes de tiempo
|
||||
|
||||
Version 19.141.2: Mar 03, 2020 Form to create new item inside course program. (282156 lines)
|
||||
Version 19.141.1: Mar 03, 2020 Form to create new item inside course program. (282123 lines)
|
||||
Version 19.141: Mar 03, 2020 Remove groups in course program. (282052 lines)
|
||||
1 change necessary in database:
|
||||
|
|
282
swad_program.c
282
swad_program.c
|
@ -81,14 +81,15 @@ static unsigned *Prg_NumItem = NULL; // Numbers for each level from 1 to maximum
|
|||
/*****************************************************************************/
|
||||
|
||||
static void Prg_ShowAllItems (Prg_CreateOrChangeItem_t CreateOrChangeItem,
|
||||
long ItmCod);
|
||||
long ItmCodBeforeForm,unsigned FormLevel);
|
||||
static bool Prg_CheckIfICanCreateItems (void);
|
||||
static void Prg_PutIconsListItems (void);
|
||||
static void Prg_PutIconToCreateNewItem (void);
|
||||
static void Prg_PutButtonToCreateNewItem (void);
|
||||
static void Prg_ShowOneItem (unsigned NumItem,
|
||||
Prg_CreateOrChangeItem_t CreateOrChangeItem,
|
||||
bool PrintView);
|
||||
static void Prg_ShowOneItem (unsigned NumItem,const struct ProgramItem *Item,bool PrintView);
|
||||
static void Prg_ShowItemForm (const struct ProgramItem *Item,
|
||||
Prg_CreateOrChangeItem_t CreateOrChangeItem,
|
||||
unsigned FormLevel);
|
||||
|
||||
static void Prg_CreateNumbers (unsigned MaxLevel);
|
||||
static void Prg_FreeNumbers (void);
|
||||
|
@ -96,7 +97,9 @@ static void Prg_IncreaseNumItem (unsigned Level);
|
|||
static unsigned Prg_GetNumItem (unsigned Level);
|
||||
static void Prg_WriteNumItem (unsigned Level);
|
||||
|
||||
static void Prg_PutFormsToRemEditOnePrgItem (unsigned NumItem,const char *Anchor);
|
||||
static void Prg_PutFormsToRemEditOnePrgItem (unsigned NumItem,
|
||||
const struct ProgramItem *Item,
|
||||
const char *Anchor);
|
||||
static bool Prg_CheckIfMoveUpIsAllowed (unsigned NumItem);
|
||||
static bool Prg_CheckIfMoveDownIsAllowed (unsigned NumItem);
|
||||
static bool Prg_CheckIfMoveLeftIsAllowed (unsigned NumItem);
|
||||
|
@ -146,7 +149,7 @@ static void Prg_UpdatePrgItem (struct ProgramItem *Item,const char *Txt);
|
|||
void Prg_SeeCourseProgram (void)
|
||||
{
|
||||
/***** Show all the program items *****/
|
||||
Prg_ShowAllItems (Prg_DONT_PUT_FORM_ITEM,-1L);
|
||||
Prg_ShowAllItems (Prg_DONT_PUT_FORM_ITEM,-1L,0);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -154,22 +157,18 @@ void Prg_SeeCourseProgram (void)
|
|||
/*****************************************************************************/
|
||||
|
||||
static void Prg_ShowAllItems (Prg_CreateOrChangeItem_t CreateOrChangeItem,
|
||||
long ItmCod)
|
||||
long ItmCodBeforeForm,unsigned FormLevel)
|
||||
{
|
||||
extern const char *Hlp_COURSE_Program;
|
||||
extern const char *Txt_Course_program;
|
||||
extern const char *Txt_No_items;
|
||||
unsigned NumItem;
|
||||
struct ProgramItem Item;
|
||||
|
||||
/***** Get list of program items *****/
|
||||
Prg_GetListPrgItems ();
|
||||
if (Gbl.Prg.Num)
|
||||
{
|
||||
Prg_MaxLevel = Prg_GetMaxItemLevel ();
|
||||
Prg_CreateNumbers (Prg_MaxLevel);
|
||||
}
|
||||
else
|
||||
Prg_MaxLevel = 0;
|
||||
Prg_MaxLevel = Prg_GetMaxItemLevel ();
|
||||
Prg_CreateNumbers (Prg_MaxLevel);
|
||||
|
||||
/***** Begin box *****/
|
||||
Box_BoxBegin ("100%",Txt_Course_program,Prg_PutIconsListItems,
|
||||
|
@ -184,11 +183,22 @@ static void Prg_ShowAllItems (Prg_CreateOrChangeItem_t CreateOrChangeItem,
|
|||
for (NumItem = 0;
|
||||
NumItem < Gbl.Prg.Num;
|
||||
NumItem++)
|
||||
Prg_ShowOneItem (NumItem,
|
||||
ItmCod == Gbl.Prg.LstItems[NumItem].ItmCod ? CreateOrChangeItem :
|
||||
Prg_DONT_PUT_FORM_ITEM,
|
||||
{
|
||||
/* Get data of this program item */
|
||||
Item.Hierarchy.ItmCod = Gbl.Prg.LstItems[NumItem].ItmCod;
|
||||
Prg_GetDataOfItemByCod (&Item);
|
||||
|
||||
/* Show item */
|
||||
Prg_ShowOneItem (NumItem,&Item,
|
||||
false); // Not print view
|
||||
|
||||
/* Show form to create/change item */
|
||||
if (ItmCodBeforeForm == Item.Hierarchy.ItmCod)
|
||||
Prg_ShowItemForm (&Item,CreateOrChangeItem,FormLevel);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
|
||||
/***** End table *****/
|
||||
HTM_TABLE_End ();
|
||||
}
|
||||
|
@ -203,8 +213,7 @@ static void Prg_ShowAllItems (Prg_CreateOrChangeItem_t CreateOrChangeItem,
|
|||
Box_BoxEnd ();
|
||||
|
||||
/***** Free list of program items *****/
|
||||
if (Gbl.Prg.Num)
|
||||
Prg_FreeNumbers ();
|
||||
Prg_FreeNumbers ();
|
||||
Prg_FreeListItems ();
|
||||
}
|
||||
|
||||
|
@ -268,25 +277,20 @@ static void Prg_PutButtonToCreateNewItem (void)
|
|||
|
||||
#define Prg_WIDTH_NUM_ITEM 20
|
||||
|
||||
static void Prg_ShowOneItem (unsigned NumItem,
|
||||
Prg_CreateOrChangeItem_t CreateOrChangeItem,
|
||||
bool PrintView)
|
||||
static void Prg_ShowOneItem (unsigned NumItem,const struct ProgramItem *Item,bool PrintView)
|
||||
{
|
||||
char *Anchor = NULL;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
struct ProgramItem Item;
|
||||
unsigned ColSpan;
|
||||
Dat_StartEndTime_t StartEndTime;
|
||||
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
||||
|
||||
/***** Get data of this program item *****/
|
||||
Item.Hierarchy.ItmCod = Gbl.Prg.LstItems[NumItem].ItmCod;
|
||||
Prg_GetDataOfItemByCod (&Item);
|
||||
Prg_IncreaseNumItem (Item.Hierarchy.Level);
|
||||
/***** Increase number of item *****/
|
||||
Prg_IncreaseNumItem (Item->Hierarchy.Level);
|
||||
|
||||
/***** Set anchor string *****/
|
||||
Frm_SetAnchorStr (Item.Hierarchy.ItmCod,&Anchor);
|
||||
Frm_SetAnchorStr (Item->Hierarchy.ItmCod,&Anchor);
|
||||
|
||||
/***** Start row *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -295,30 +299,30 @@ static void Prg_ShowOneItem (unsigned NumItem,
|
|||
if (!PrintView)
|
||||
{
|
||||
HTM_TD_Begin ("class=\"PRG_COL1 LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
Prg_PutFormsToRemEditOnePrgItem (NumItem,Anchor);
|
||||
Prg_PutFormsToRemEditOnePrgItem (NumItem,Item,Anchor);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
||||
/***** Indent depending on the level *****/
|
||||
if (Item.Hierarchy.Level > 1)
|
||||
if (Item->Hierarchy.Level > 1)
|
||||
{
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"COLOR%u\"",
|
||||
Item.Hierarchy.Level - 1,Gbl.RowEvenOdd);
|
||||
Item->Hierarchy.Level - 1,Gbl.RowEvenOdd);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
||||
/***** Item number *****/
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\" style=\"width:%dpx;\"",
|
||||
Item.Hidden ? "ASG_TITLE_LIGHT" :
|
||||
"ASG_TITLE",
|
||||
Item->Hierarchy.Hidden ? "ASG_TITLE_LIGHT" :
|
||||
"ASG_TITLE",
|
||||
Gbl.RowEvenOdd,
|
||||
Item.Hierarchy.Level * Prg_WIDTH_NUM_ITEM);
|
||||
Prg_WriteNumItem (Item.Hierarchy.Level);
|
||||
Item->Hierarchy.Level * Prg_WIDTH_NUM_ITEM);
|
||||
Prg_WriteNumItem (Item->Hierarchy.Level);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Title and text *****/
|
||||
/* Begin title and text */
|
||||
ColSpan = Prg_MaxLevel - Item.Hierarchy.Level + 1;
|
||||
ColSpan = Prg_MaxLevel - Item->Hierarchy.Level + 1;
|
||||
if (PrintView)
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"LT\"",
|
||||
ColSpan);
|
||||
|
@ -329,19 +333,19 @@ static void Prg_ShowOneItem (unsigned NumItem,
|
|||
|
||||
/* Title */
|
||||
HTM_DIV_Begin ("class=\"%s\"",
|
||||
Item.Hidden ? "ASG_TITLE_LIGHT" :
|
||||
"ASG_TITLE");
|
||||
HTM_Txt (Item.Title);
|
||||
Item->Hierarchy.Hidden ? "ASG_TITLE_LIGHT" :
|
||||
"ASG_TITLE");
|
||||
HTM_Txt (Item->Title);
|
||||
HTM_DIV_End ();
|
||||
|
||||
/* Text */
|
||||
Prg_GetPrgItemTxtFromDB (Item.Hierarchy.ItmCod,Txt);
|
||||
Prg_GetPrgItemTxtFromDB (Item->Hierarchy.ItmCod,Txt);
|
||||
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
|
||||
Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to recpectful HTML
|
||||
Str_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links
|
||||
|
||||
HTM_DIV_Begin ("class=\"PAR %s\"",Item.Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
HTM_DIV_Begin ("class=\"PAR %s\"",Item->Hierarchy.Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
HTM_Txt (Txt);
|
||||
HTM_DIV_End ();
|
||||
|
||||
|
@ -361,19 +365,19 @@ static void Prg_ShowOneItem (unsigned NumItem,
|
|||
if (PrintView)
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
|
||||
Id,
|
||||
Item.Hidden ? (Item.Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT") :
|
||||
(Item.Open ? "DATE_GREEN" :
|
||||
"DATE_RED"));
|
||||
Item->Hierarchy.Hidden ? (Item->Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT") :
|
||||
(Item->Open ? "DATE_GREEN" :
|
||||
"DATE_RED"));
|
||||
else
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||
Id,
|
||||
Item.Hidden ? (Item.Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT") :
|
||||
(Item.Open ? "DATE_GREEN" :
|
||||
"DATE_RED"),
|
||||
Item->Hierarchy.Hidden ? (Item->Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT") :
|
||||
(Item->Open ? "DATE_GREEN" :
|
||||
"DATE_RED"),
|
||||
Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC (Id,Item.TimeUTC[StartEndTime],
|
||||
Dat_WriteLocalDateHMSFromUTC (Id,Item->TimeUTC[StartEndTime],
|
||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||
true,true,true,0x7);
|
||||
HTM_TD_End ();
|
||||
|
@ -383,62 +387,57 @@ static void Prg_ShowOneItem (unsigned NumItem,
|
|||
/***** End row *****/
|
||||
HTM_TR_End ();
|
||||
|
||||
/***** Form to create/change item *****/
|
||||
switch (CreateOrChangeItem)
|
||||
{
|
||||
case Prg_DONT_PUT_FORM_ITEM:
|
||||
break;
|
||||
case Prg_PUT_FORM_CREATE_ITEM:
|
||||
case Prg_PUT_FORM_CHANGE_ITEM:
|
||||
/* Start row */
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Column under icons */
|
||||
HTM_TD_Begin ("class=\"PRG_COL1 LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Indent depending on the level */
|
||||
if (Item.Hierarchy.Level > 1)
|
||||
{
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"COLOR%u\"",
|
||||
Item.Hierarchy.Level - 1,Gbl.RowEvenOdd);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
||||
if (CreateOrChangeItem == Prg_PUT_FORM_CREATE_ITEM)
|
||||
{
|
||||
/* Column under item number */
|
||||
HTM_TD_Begin ("class=\"COLOR%u\" style=\"width:%dpx;\"",
|
||||
Gbl.RowEvenOdd,
|
||||
Item.Hierarchy.Level * Prg_WIDTH_NUM_ITEM);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Show form to create new item as child */
|
||||
ColSpan = Prg_MaxLevel - Item.Hierarchy.Level + 3;
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"LT COLOR%u\"",
|
||||
ColSpan,Gbl.RowEvenOdd);
|
||||
Prg_ShowFormToCreatePrgItem (Item.Hierarchy.ItmCod);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Show form to edit current item */
|
||||
ColSpan = Prg_MaxLevel - Item.Hierarchy.Level + 4;
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"LT COLOR%u\"",
|
||||
ColSpan,Gbl.RowEvenOdd);
|
||||
Prg_ShowFormToChangePrgItem (Item.Hierarchy.ItmCod);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
||||
/* End row */
|
||||
HTM_TR_End ();
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Free anchor string *****/
|
||||
Frm_FreeAnchorStr (Anchor);
|
||||
}
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
/*****************************************************************************/
|
||||
/**************************** Show item form *********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prg_ShowItemForm (const struct ProgramItem *Item,
|
||||
Prg_CreateOrChangeItem_t CreateOrChangeItem,
|
||||
unsigned FormLevel)
|
||||
{
|
||||
unsigned ColSpan;
|
||||
|
||||
/***** Trivial check *****/
|
||||
if (CreateOrChangeItem == Prg_DONT_PUT_FORM_ITEM)
|
||||
return;
|
||||
|
||||
/***** Change color row? *****/
|
||||
if (CreateOrChangeItem == Prg_PUT_FORM_CREATE_ITEM)
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
|
||||
/***** Start row *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Column under icons *****/
|
||||
HTM_TD_Begin ("class=\"PRG_COL1 LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Indent depending on the level *****/
|
||||
if (FormLevel > 1)
|
||||
{
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"COLOR%u\"",
|
||||
FormLevel - 1,Gbl.RowEvenOdd);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
||||
/***** Show form to create new item as child *****/
|
||||
ColSpan = Prg_MaxLevel - FormLevel + 4;
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"LT COLOR%u\"",
|
||||
ColSpan,Gbl.RowEvenOdd);
|
||||
HTM_ARTICLE_Begin ("item_form");
|
||||
if (CreateOrChangeItem == Prg_PUT_FORM_CREATE_ITEM)
|
||||
Prg_ShowFormToCreatePrgItem (Item->Hierarchy.ItmCod);
|
||||
else
|
||||
Prg_ShowFormToChangePrgItem (Item->Hierarchy.ItmCod);
|
||||
HTM_ARTICLE_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** End row *****/
|
||||
HTM_TR_End ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -447,9 +446,14 @@ static void Prg_ShowOneItem (unsigned NumItem,
|
|||
|
||||
static void Prg_CreateNumbers (unsigned MaxLevel)
|
||||
{
|
||||
/***** Allocate memory for item numbers and initialize to 0 *****/
|
||||
if ((Prg_NumItem = (unsigned *) calloc (1 + MaxLevel,sizeof (unsigned))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
if (MaxLevel)
|
||||
{
|
||||
/***** Allocate memory for item numbers and initialize to 0 *****/
|
||||
if ((Prg_NumItem = (unsigned *) calloc (1 + MaxLevel,sizeof (unsigned))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
}
|
||||
else
|
||||
Prg_NumItem = NULL;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -458,9 +462,9 @@ static void Prg_CreateNumbers (unsigned MaxLevel)
|
|||
|
||||
static void Prg_FreeNumbers (void)
|
||||
{
|
||||
/***** Free allocated memory for item numbers *****/
|
||||
if (Prg_NumItem)
|
||||
if (Prg_MaxLevel && Prg_NumItem)
|
||||
{
|
||||
/***** Free allocated memory for item numbers *****/
|
||||
free (Prg_NumItem);
|
||||
Prg_NumItem = NULL;
|
||||
}
|
||||
|
@ -514,7 +518,9 @@ static void Prg_WriteNumItem (unsigned Level)
|
|||
/**************** Put a link (form) to edit one program item *****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prg_PutFormsToRemEditOnePrgItem (unsigned NumItem,const char *Anchor)
|
||||
static void Prg_PutFormsToRemEditOnePrgItem (unsigned NumItem,
|
||||
const struct ProgramItem *Item,
|
||||
const char *Anchor)
|
||||
{
|
||||
extern const char *Txt_New_item;
|
||||
extern const char *Txt_Move_up_X;
|
||||
|
@ -524,12 +530,12 @@ static void Prg_PutFormsToRemEditOnePrgItem (unsigned NumItem,const char *Anchor
|
|||
extern const char *Txt_Movement_not_allowed;
|
||||
char StrItemIndex[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
|
||||
|
||||
Prg_SetCurrentItmCod (Gbl.Prg.LstItems[NumItem].ItmCod); // Used as parameter in contextual links
|
||||
Prg_SetCurrentItmCod (Item->Hierarchy.ItmCod); // Used as parameter in contextual links
|
||||
|
||||
/***** Initialize item index string *****/
|
||||
snprintf (StrItemIndex,sizeof (StrItemIndex),
|
||||
"%u",
|
||||
Gbl.Prg.LstItems[NumItem].Index);
|
||||
Item->Hierarchy.Index);
|
||||
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
|
@ -539,16 +545,16 @@ static void Prg_PutFormsToRemEditOnePrgItem (unsigned NumItem,const char *Anchor
|
|||
Ico_PutContextualIconToRemove (ActReqRemPrgItm,Prg_PutParams);
|
||||
|
||||
/***** Put form to hide/show program item *****/
|
||||
if (Gbl.Prg.LstItems[NumItem].Hidden)
|
||||
if (Item->Hierarchy.Hidden)
|
||||
Ico_PutContextualIconToUnhide (ActShoPrgItm,Anchor,Prg_PutParams);
|
||||
else
|
||||
Ico_PutContextualIconToHide (ActHidPrgItm,Anchor,Prg_PutParams);
|
||||
|
||||
/***** Put form to edit program item *****/
|
||||
Ico_PutContextualIconToEdit (ActFrmChgPrgItm,Anchor,Prg_PutParams);
|
||||
Ico_PutContextualIconToEdit (ActFrmChgPrgItm,"item_form",Prg_PutParams);
|
||||
|
||||
/***** Put form to add a new child item inside this item *****/
|
||||
Ico_PutContextualIconToAdd (ActFrmNewPrgItm,Anchor,Prg_PutParams,Txt_New_item);
|
||||
Ico_PutContextualIconToAdd (ActFrmNewPrgItm,"item_form",Prg_PutParams,Txt_New_item);
|
||||
|
||||
HTM_BR ();
|
||||
|
||||
|
@ -859,7 +865,7 @@ static void Prg_GetDataOfItem (struct ProgramItem *Item,
|
|||
Item->Hierarchy.Level = Str_ConvertStrToUnsigned (row[2]);
|
||||
|
||||
/* Get whether the program item is hidden or not (row[3]) */
|
||||
Item->Hidden = (row[3][0] == 'Y');
|
||||
Item->Hierarchy.Hidden = (row[3][0] == 'Y');
|
||||
|
||||
/* Get author of the program item (row[4]) */
|
||||
Item->UsrCod = Str_ConvertStrCodToLongCod (row[4]);
|
||||
|
@ -891,7 +897,7 @@ static void Prg_ResetItem (struct ProgramItem *Item)
|
|||
Item->Hierarchy.ItmCod = -1L;
|
||||
Item->Hierarchy.Index = 0;
|
||||
Item->Hierarchy.Level = 0;
|
||||
Item->Hidden = false;
|
||||
Item->Hierarchy.Hidden = false;
|
||||
Item->UsrCod = -1L;
|
||||
Item->TimeUTC[Dat_START_TIME] =
|
||||
Item->TimeUTC[Dat_END_TIME ] = (time_t) 0;
|
||||
|
@ -1501,23 +1507,57 @@ static bool Prg_CheckIfSimilarPrgItemExists (const char *Field,const char *Value
|
|||
void Prg_RequestCreatePrgItem (void)
|
||||
{
|
||||
long ParentItmCod;
|
||||
unsigned NumItemParent;
|
||||
unsigned NumItemLastChild;
|
||||
long ItmCodBeforeForm;
|
||||
unsigned FormLevel;
|
||||
|
||||
/***** Get the code of the parent program item *****/
|
||||
ParentItmCod = Prg_GetParamItmCod ();
|
||||
|
||||
if (ParentItmCod > 0)
|
||||
{
|
||||
Prg_GetListPrgItems ();
|
||||
NumItemParent = Prg_GetNumItemFromItmCod (ParentItmCod);
|
||||
NumItemLastChild = Prg_GetLastChild (NumItemParent);
|
||||
ItmCodBeforeForm = Gbl.Prg.LstItems[NumItemLastChild].ItmCod;
|
||||
FormLevel = Gbl.Prg.LstItems[NumItemParent].Level + 1;
|
||||
Prg_FreeListItems ();
|
||||
}
|
||||
else
|
||||
{
|
||||
ItmCodBeforeForm = -1L;
|
||||
FormLevel = 0;
|
||||
}
|
||||
|
||||
/***** Show current program items, if any *****/
|
||||
Prg_ShowAllItems (Prg_PUT_FORM_CREATE_ITEM,ParentItmCod);
|
||||
Prg_ShowAllItems (Prg_PUT_FORM_CREATE_ITEM,ItmCodBeforeForm,FormLevel);
|
||||
}
|
||||
|
||||
void Prg_RequestChangePrgItem (void)
|
||||
{
|
||||
long ItmCod;
|
||||
long ItmCodBeforeForm;
|
||||
unsigned NumItem;
|
||||
unsigned FormLevel;
|
||||
|
||||
/***** Get the code of the program item *****/
|
||||
ItmCod = Prg_GetParamItmCod ();
|
||||
ItmCodBeforeForm = Prg_GetParamItmCod ();
|
||||
|
||||
if (ItmCodBeforeForm > 0)
|
||||
{
|
||||
Prg_GetListPrgItems ();
|
||||
NumItem = Prg_GetNumItemFromItmCod (ItmCodBeforeForm);
|
||||
FormLevel = Gbl.Prg.LstItems[NumItem].Level;
|
||||
Prg_FreeListItems ();
|
||||
}
|
||||
else
|
||||
{
|
||||
ItmCodBeforeForm = -1L;
|
||||
FormLevel = 0;
|
||||
}
|
||||
|
||||
/***** Show current program items, if any *****/
|
||||
Prg_ShowAllItems (Prg_PUT_FORM_CHANGE_ITEM,ItmCod);
|
||||
Prg_ShowAllItems (Prg_PUT_FORM_CHANGE_ITEM,ItmCodBeforeForm,FormLevel);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -50,7 +50,6 @@ struct ProgramItemHierarchy
|
|||
struct ProgramItem
|
||||
{
|
||||
struct ProgramItemHierarchy Hierarchy;
|
||||
bool Hidden;
|
||||
long UsrCod;
|
||||
time_t TimeUTC[Dat_NUM_START_END_TIME];
|
||||
bool Open;
|
||||
|
|
Loading…
Reference in New Issue