mirror of https://github.com/acanas/swad-core.git
Version18.97
This commit is contained in:
parent
762609056b
commit
20a665c5cd
|
@ -464,12 +464,11 @@ En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
ps2pdf source.ps destination.pdf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 18.96 (2019-04-03)"
|
#define Log_PLATFORM_VERSION "SWAD 18.97 (2019-04-06)"
|
||||||
#define CSS_FILE "swad18.92.css"
|
#define CSS_FILE "swad18.92.css"
|
||||||
#define JS_FILE "swad18.92.js"
|
#define JS_FILE "swad18.92.js"
|
||||||
/*
|
/*
|
||||||
TODO: Fix: Campos tienen que aparecer rellenos en formulario de creación tras editar una institución existente
|
Version 18.97: Apr 06, 2019 Code refactoring in edition of institutions. (241699 lines)
|
||||||
|
|
||||||
Version 18.96: Apr 03, 2019 Code refactoring in edition of institutions.
|
Version 18.96: Apr 03, 2019 Code refactoring in edition of institutions.
|
||||||
Fixed bug in creation of country. (241724 lines)
|
Fixed bug in creation of country. (241724 lines)
|
||||||
Version 18.95.1: Apr 03, 2019 Code refactoring in edition of countries. (241607 lines)
|
Version 18.95.1: Apr 03, 2019 Code refactoring in edition of countries. (241607 lines)
|
||||||
|
|
|
@ -63,6 +63,8 @@ extern struct Globals Gbl;
|
||||||
/***************************** Private variables *****************************/
|
/***************************** Private variables *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static struct Instit *Ins_EditingIns = NULL; // Static variable to keep institution beeing edited
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************************** Private prototypes ****************************/
|
/***************************** Private prototypes ****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -79,13 +81,15 @@ static void Ins_ListOneInstitutionForSeeing (struct Instit *Ins,unsigned NumIns)
|
||||||
static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable);
|
static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable);
|
||||||
static void Ins_GetParamInsOrder (void);
|
static void Ins_GetParamInsOrder (void);
|
||||||
|
|
||||||
|
static void Ins_EditInstitutionsInternal (void);
|
||||||
|
|
||||||
static void Ins_PutIconsEditingInstitutions (void);
|
static void Ins_PutIconsEditingInstitutions (void);
|
||||||
static void Ins_PutIconToViewInstitutions (void);
|
static void Ins_PutIconToViewInstitutions (void);
|
||||||
|
|
||||||
static void Ins_GetShrtNameAndCtyOfInstitution (struct Instit *Ins,
|
static void Ins_GetShrtNameAndCtyOfInstitution (struct Instit *Ins,
|
||||||
char CtyName[Hie_MAX_BYTES_FULL_NAME + 1]);
|
char CtyName[Hie_MAX_BYTES_FULL_NAME + 1]);
|
||||||
|
|
||||||
static void Ins_ListInstitutionsForEdition (struct Instit *Ins);
|
static void Ins_ListInstitutionsForEdition (void);
|
||||||
static bool Ins_CheckIfICanEdit (struct Instit *Ins);
|
static bool Ins_CheckIfICanEdit (struct Instit *Ins);
|
||||||
static Ins_StatusTxt_t Ins_GetStatusTxtFromStatusBits (Ins_Status_t Status);
|
static Ins_StatusTxt_t Ins_GetStatusTxtFromStatusBits (Ins_Status_t Status);
|
||||||
static Ins_Status_t Ins_GetStatusBitsFromStatusTxt (Ins_StatusTxt_t StatusTxt);
|
static Ins_Status_t Ins_GetStatusBitsFromStatusTxt (Ins_StatusTxt_t StatusTxt);
|
||||||
|
@ -102,20 +106,16 @@ static void Ins_UpdateInsNameDB (long InsCod,const char *FieldName,const char *N
|
||||||
|
|
||||||
static void Ins_UpdateInsCtyDB (long InsCod,long CtyCod);
|
static void Ins_UpdateInsCtyDB (long InsCod,long CtyCod);
|
||||||
static void Ins_UpdateInsWWWDB (long InsCod,const char NewWWW[Cns_MAX_BYTES_WWW + 1]);
|
static void Ins_UpdateInsWWWDB (long InsCod,const char NewWWW[Cns_MAX_BYTES_WWW + 1]);
|
||||||
static void Ins_ShowAlertAndButtonToGoToIns (long InsCod);
|
static void Ins_ShowAlertAndButtonToGoToIns (void);
|
||||||
static void Ins_PutParamGoToIns (void);
|
static void Ins_PutParamGoToIns (void);
|
||||||
|
|
||||||
static void Ins_PutFormToCreateInstitution (struct Instit *Ins);
|
static void Ins_PutFormToCreateInstitution (void);
|
||||||
static void Ins_PutHeadInstitutionsForEdition (void);
|
static void Ins_PutHeadInstitutionsForEdition (void);
|
||||||
static void Ins_RecFormRequestOrCreateIns (struct Instit *Ins,unsigned Status);
|
static void Ins_RecFormRequestOrCreateIns (unsigned Status);
|
||||||
static void Ins_CreateInstitution (struct Instit *Ins,unsigned Status);
|
static void Ins_CreateInstitution (unsigned Status);
|
||||||
|
|
||||||
static void Ins_InstitutionConstructor (struct Instit **Ins);
|
static void Ins_EditingInstitutionConstructor ();
|
||||||
static void Ins_InstitutionDestructor (struct Instit **Ins);
|
static void Ins_EditingInstitutionDestructor ();
|
||||||
|
|
||||||
static void Ins_SetEditingInsCod (long InsCod);
|
|
||||||
static long Ins_GetEditingInsCod (void);
|
|
||||||
static long *Ins_GetPtrToEditingInsCod (void);
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************** List institutions with pending centres ********************/
|
/***************** List institutions with pending centres ********************/
|
||||||
|
@ -939,10 +939,21 @@ static void Ins_GetParamInsOrder (void)
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Ins_EditInstitutions (void)
|
void Ins_EditInstitutions (void)
|
||||||
|
{
|
||||||
|
/***** Institution constructor *****/
|
||||||
|
Ins_EditingInstitutionConstructor ();
|
||||||
|
|
||||||
|
/***** Edit institutions *****/
|
||||||
|
Ins_EditInstitutionsInternal ();
|
||||||
|
|
||||||
|
/***** Institution destructor *****/
|
||||||
|
Ins_EditingInstitutionDestructor ();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Ins_EditInstitutionsInternal (void)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_COUNTRY_Institutions;
|
extern const char *Hlp_COUNTRY_Institutions;
|
||||||
extern const char *Txt_Institutions_of_COUNTRY_X;
|
extern const char *Txt_Institutions_of_COUNTRY_X;
|
||||||
struct Instit *Ins = NULL;
|
|
||||||
|
|
||||||
/***** Get list of institutions *****/
|
/***** Get list of institutions *****/
|
||||||
Ins_GetListInstitutions (Gbl.Hierarchy.Cty.CtyCod,Ins_GET_EXTRA_DATA);
|
Ins_GetListInstitutions (Gbl.Hierarchy.Cty.CtyCod,Ins_GET_EXTRA_DATA);
|
||||||
|
@ -957,18 +968,12 @@ void Ins_EditInstitutions (void)
|
||||||
Box_StartBox (NULL,Gbl.Title,Ins_PutIconsEditingInstitutions,
|
Box_StartBox (NULL,Gbl.Title,Ins_PutIconsEditingInstitutions,
|
||||||
Hlp_COUNTRY_Institutions,Box_NOT_CLOSABLE);
|
Hlp_COUNTRY_Institutions,Box_NOT_CLOSABLE);
|
||||||
|
|
||||||
/***** Institution constructor *****/
|
|
||||||
Ins_InstitutionConstructor (&Ins);
|
|
||||||
|
|
||||||
/***** Put a form to create a new institution *****/
|
/***** Put a form to create a new institution *****/
|
||||||
Ins_PutFormToCreateInstitution (Ins);
|
Ins_PutFormToCreateInstitution ();
|
||||||
|
|
||||||
/***** Forms to edit current institutions *****/
|
/***** Forms to edit current institutions *****/
|
||||||
if (Gbl.Hierarchy.Cty.Inss.Num)
|
if (Gbl.Hierarchy.Cty.Inss.Num)
|
||||||
Ins_ListInstitutionsForEdition (Ins);
|
Ins_ListInstitutionsForEdition ();
|
||||||
|
|
||||||
/***** Institution destructor *****/
|
|
||||||
Ins_InstitutionDestructor (&Ins);
|
|
||||||
|
|
||||||
/***** End box *****/
|
/***** End box *****/
|
||||||
Box_EndBox ();
|
Box_EndBox ();
|
||||||
|
@ -1452,10 +1457,11 @@ void Ins_WriteSelectorOfInstitution (void)
|
||||||
/************************* List all the institutions *************************/
|
/************************* List all the institutions *************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Ins_ListInstitutionsForEdition (struct Instit *Ins)
|
static void Ins_ListInstitutionsForEdition (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_INSTITUTION_STATUS[Ins_NUM_STATUS_TXT];
|
extern const char *Txt_INSTITUTION_STATUS[Ins_NUM_STATUS_TXT];
|
||||||
unsigned NumIns;
|
unsigned NumIns;
|
||||||
|
struct Instit *Ins;
|
||||||
char WWW[Cns_MAX_BYTES_WWW + 1];
|
char WWW[Cns_MAX_BYTES_WWW + 1];
|
||||||
struct UsrData UsrDat;
|
struct UsrData UsrDat;
|
||||||
bool ICanEdit;
|
bool ICanEdit;
|
||||||
|
@ -1732,45 +1738,47 @@ void Ins_RemoveInstitution (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_To_remove_an_institution_you_must_first_remove_all_centres_and_users_in_the_institution;
|
extern const char *Txt_To_remove_an_institution_you_must_first_remove_all_centres_and_users_in_the_institution;
|
||||||
extern const char *Txt_Institution_X_removed;
|
extern const char *Txt_Institution_X_removed;
|
||||||
struct Instit Ins;
|
|
||||||
char PathIns[PATH_MAX + 1];
|
char PathIns[PATH_MAX + 1];
|
||||||
|
|
||||||
|
/***** Institution constructor *****/
|
||||||
|
Ins_EditingInstitutionConstructor ();
|
||||||
|
|
||||||
/***** Get institution code *****/
|
/***** Get institution code *****/
|
||||||
Ins.InsCod = Ins_GetAndCheckParamOtherInsCod (1);
|
Ins_EditingIns->InsCod = Ins_GetAndCheckParamOtherInsCod (1);
|
||||||
|
|
||||||
/***** Get data of the institution from database *****/
|
/***** Get data of the institution from database *****/
|
||||||
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_EXTRA_DATA);
|
Ins_GetDataOfInstitutionByCod (Ins_EditingIns,Ins_GET_EXTRA_DATA);
|
||||||
|
|
||||||
/***** Check if this institution has users *****/
|
/***** Check if this institution has users *****/
|
||||||
if (!Ins_CheckIfICanEdit (&Ins))
|
if (!Ins_CheckIfICanEdit (Ins_EditingIns))
|
||||||
Lay_NoPermissionExit ();
|
Lay_NoPermissionExit ();
|
||||||
else if (Ins.Ctrs.Num ||
|
else if (Ins_EditingIns->Ctrs.Num ||
|
||||||
Ins.NumUsrsWhoClaimToBelongToIns ||
|
Ins_EditingIns->NumUsrsWhoClaimToBelongToIns ||
|
||||||
Ins.NumUsrs) // Institution has centres or users ==> don't remove
|
Ins_EditingIns->NumUsrs) // Institution has centres or users ==> don't remove
|
||||||
Ale_ShowAlert (Ale_WARNING,Txt_To_remove_an_institution_you_must_first_remove_all_centres_and_users_in_the_institution);
|
Ale_ShowAlert (Ale_WARNING,Txt_To_remove_an_institution_you_must_first_remove_all_centres_and_users_in_the_institution);
|
||||||
else // Institution has no users ==> remove it
|
else // Institution has no users ==> remove it
|
||||||
{
|
{
|
||||||
/***** Remove all the threads and posts in forums of the institution *****/
|
/***** Remove all the threads and posts in forums of the institution *****/
|
||||||
For_RemoveForums (Hie_INS,Ins.InsCod);
|
For_RemoveForums (Hie_INS,Ins_EditingIns->InsCod);
|
||||||
|
|
||||||
/***** Remove surveys of the institution *****/
|
/***** Remove surveys of the institution *****/
|
||||||
Svy_RemoveSurveys (Hie_INS,Ins.InsCod);
|
Svy_RemoveSurveys (Hie_INS,Ins_EditingIns->InsCod);
|
||||||
|
|
||||||
/***** Remove information related to files in institution *****/
|
/***** Remove information related to files in institution *****/
|
||||||
Brw_RemoveInsFilesFromDB (Ins.InsCod);
|
Brw_RemoveInsFilesFromDB (Ins_EditingIns->InsCod);
|
||||||
|
|
||||||
/***** Remove directories of the institution *****/
|
/***** Remove directories of the institution *****/
|
||||||
snprintf (PathIns,sizeof (PathIns),
|
snprintf (PathIns,sizeof (PathIns),
|
||||||
"%s/%02u/%u",
|
"%s/%02u/%u",
|
||||||
Cfg_PATH_INS_PUBLIC,
|
Cfg_PATH_INS_PUBLIC,
|
||||||
(unsigned) (Ins.InsCod % 100),
|
(unsigned) (Ins_EditingIns->InsCod % 100),
|
||||||
(unsigned) Ins.InsCod);
|
(unsigned) Ins_EditingIns->InsCod);
|
||||||
Fil_RemoveTree (PathIns);
|
Fil_RemoveTree (PathIns);
|
||||||
|
|
||||||
/***** Remove institution *****/
|
/***** Remove institution *****/
|
||||||
DB_QueryDELETE ("can not remove an institution",
|
DB_QueryDELETE ("can not remove an institution",
|
||||||
"DELETE FROM institutions WHERE InsCod=%ld",
|
"DELETE FROM institutions WHERE InsCod=%ld",
|
||||||
Ins.InsCod);
|
Ins_EditingIns->InsCod);
|
||||||
|
|
||||||
/***** Flush caches *****/
|
/***** Flush caches *****/
|
||||||
Ins_FlushCacheShortNameOfInstitution ();
|
Ins_FlushCacheShortNameOfInstitution ();
|
||||||
|
@ -1778,66 +1786,70 @@ void Ins_RemoveInstitution (void)
|
||||||
|
|
||||||
/***** Write message to show the change made *****/
|
/***** Write message to show the change made *****/
|
||||||
Ale_ShowAlert (Ale_SUCCESS,Txt_Institution_X_removed,
|
Ale_ShowAlert (Ale_SUCCESS,Txt_Institution_X_removed,
|
||||||
Ins.FullName);
|
Ins_EditingIns->FullName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Show the form again *****/
|
/***** Show the form again *****/
|
||||||
Ins_EditInstitutions ();
|
Ins_EditInstitutionsInternal ();
|
||||||
|
|
||||||
|
/***** Institution destructor *****/
|
||||||
|
Ins_EditingInstitutionDestructor ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************** Change the short name of an institution *******************/
|
/***************** Change the name of an institution *******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Ins_RenameInsShort (void)
|
void Ins_RenameInsShort (void)
|
||||||
{
|
{
|
||||||
struct Instit *Ins = NULL;
|
|
||||||
|
|
||||||
/***** Institution constructor *****/
|
/***** Institution constructor *****/
|
||||||
Ins_InstitutionConstructor (&Ins);
|
Ins_EditingInstitutionConstructor ();
|
||||||
|
|
||||||
/***** Rename institution *****/
|
/***** Rename institution *****/
|
||||||
Ins->InsCod = Ins_GetAndCheckParamOtherInsCod (1);
|
Ins_EditingIns->InsCod = Ins_GetAndCheckParamOtherInsCod (1);
|
||||||
Ins_SetEditingInsCod (Ins->InsCod); // It will be used later
|
Ins_RenameInstitution (Ins_EditingIns,Cns_SHRT_NAME);
|
||||||
Ins_RenameInstitution (Ins,Cns_SHRT_NAME);
|
}
|
||||||
|
|
||||||
|
void Ins_RenameInsFull (void)
|
||||||
|
{
|
||||||
|
/***** Institution constructor *****/
|
||||||
|
Ins_EditingInstitutionConstructor ();
|
||||||
|
|
||||||
|
/***** Rename institution *****/
|
||||||
|
Ins_EditingIns->InsCod = Ins_GetAndCheckParamOtherInsCod (1);
|
||||||
|
Ins_RenameInstitution (Ins_EditingIns,Cns_FULL_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ins_ContEditAfterChgIns (void)
|
||||||
|
{
|
||||||
|
/***** Write message to show the change made
|
||||||
|
and put button to go to institution changed *****/
|
||||||
|
Ins_ShowAlertAndButtonToGoToIns ();
|
||||||
|
|
||||||
|
/***** Show the form again *****/
|
||||||
|
Ins_EditInstitutionsInternal ();
|
||||||
|
|
||||||
/***** Institution destructor *****/
|
/***** Institution destructor *****/
|
||||||
Ins_InstitutionDestructor (&Ins);
|
Ins_EditingInstitutionDestructor ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/************ Change the name of an institution in configuration *************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Ins_RenameInsShortInConfig (void)
|
void Ins_RenameInsShortInConfig (void)
|
||||||
{
|
{
|
||||||
struct Instit *Ins = NULL;
|
struct Instit *Ins = NULL;
|
||||||
|
|
||||||
/***** Institution constructor *****/
|
/***** Institution constructor *****/
|
||||||
Ins_InstitutionConstructor (&Ins);
|
Ins_EditingInstitutionConstructor (&Ins);
|
||||||
|
|
||||||
/***** Rename institution *****/
|
/***** Rename institution *****/
|
||||||
Ins->InsCod = Gbl.Hierarchy.Ins.InsCod;
|
Ins->InsCod = Gbl.Hierarchy.Ins.InsCod;
|
||||||
Ins_RenameInstitution (Ins,Cns_SHRT_NAME);
|
Ins_RenameInstitution (Ins,Cns_SHRT_NAME);
|
||||||
|
|
||||||
/***** Institution destructor *****/
|
/***** Institution destructor *****/
|
||||||
Ins_InstitutionDestructor (&Ins);
|
Ins_EditingInstitutionDestructor (&Ins);
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/***************** Change the full name of an institution ********************/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
void Ins_RenameInsFull (void)
|
|
||||||
{
|
|
||||||
struct Instit *Ins = NULL;
|
|
||||||
|
|
||||||
/***** Institution constructor *****/
|
|
||||||
Ins_InstitutionConstructor (&Ins);
|
|
||||||
|
|
||||||
/***** Rename institution *****/
|
|
||||||
Ins->InsCod = Ins_GetAndCheckParamOtherInsCod (1);
|
|
||||||
Ins_SetEditingInsCod (Ins->InsCod); // It will be used later
|
|
||||||
Ins_RenameInstitution (Ins,Cns_FULL_NAME);
|
|
||||||
|
|
||||||
/***** Institution destructor *****/
|
|
||||||
Ins_InstitutionDestructor (&Ins);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ins_RenameInsFullInConfig (void)
|
void Ins_RenameInsFullInConfig (void)
|
||||||
|
@ -1845,14 +1857,14 @@ void Ins_RenameInsFullInConfig (void)
|
||||||
struct Instit *Ins = NULL;
|
struct Instit *Ins = NULL;
|
||||||
|
|
||||||
/***** Institution constructor *****/
|
/***** Institution constructor *****/
|
||||||
Ins_InstitutionConstructor (&Ins);
|
Ins_EditingInstitutionConstructor (&Ins);
|
||||||
|
|
||||||
/***** Rename institution *****/
|
/***** Rename institution *****/
|
||||||
Ins->InsCod = Gbl.Hierarchy.Ins.InsCod;
|
Ins->InsCod = Gbl.Hierarchy.Ins.InsCod;
|
||||||
Ins_RenameInstitution (Ins,Cns_FULL_NAME);
|
Ins_RenameInstitution (Ins,Cns_FULL_NAME);
|
||||||
|
|
||||||
/***** Institution destructor *****/
|
/***** Institution destructor *****/
|
||||||
Ins_InstitutionDestructor (&Ins);
|
Ins_EditingInstitutionDestructor (&Ins);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2044,28 +2056,27 @@ void Ins_ChangeInsWWW (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_The_new_web_address_is_X;
|
extern const char *Txt_The_new_web_address_is_X;
|
||||||
extern const char *Txt_You_can_not_leave_the_web_address_empty;
|
extern const char *Txt_You_can_not_leave_the_web_address_empty;
|
||||||
struct Instit *Ins = NULL;
|
|
||||||
char NewWWW[Cns_MAX_BYTES_WWW + 1];
|
char NewWWW[Cns_MAX_BYTES_WWW + 1];
|
||||||
|
|
||||||
/***** Institution constructor *****/
|
/***** Institution constructor *****/
|
||||||
Ins_InstitutionConstructor (&Ins);
|
Ins_EditingInstitutionConstructor ();
|
||||||
|
|
||||||
/***** Get parameters from form *****/
|
/***** Get parameters from form *****/
|
||||||
/* Get the code of the institution */
|
/* Get the code of the institution */
|
||||||
Ins->InsCod = Ins_GetAndCheckParamOtherInsCod (1);
|
Ins_EditingIns->InsCod = Ins_GetAndCheckParamOtherInsCod (1);
|
||||||
|
|
||||||
/* Get the new WWW for the institution */
|
/* Get the new WWW for the institution */
|
||||||
Par_GetParToText ("WWW",NewWWW,Cns_MAX_BYTES_WWW);
|
Par_GetParToText ("WWW",NewWWW,Cns_MAX_BYTES_WWW);
|
||||||
|
|
||||||
/***** Get data of institution *****/
|
/***** Get data of institution *****/
|
||||||
Ins_GetDataOfInstitutionByCod (Ins,Ins_GET_BASIC_DATA);
|
Ins_GetDataOfInstitutionByCod (Ins_EditingIns,Ins_GET_BASIC_DATA);
|
||||||
|
|
||||||
/***** Check if new WWW is empty *****/
|
/***** Check if new WWW is empty *****/
|
||||||
if (NewWWW[0])
|
if (NewWWW[0])
|
||||||
{
|
{
|
||||||
/***** Update database changing old WWW by new WWW *****/
|
/***** Update database changing old WWW by new WWW *****/
|
||||||
Ins_UpdateInsWWWDB (Ins->InsCod,NewWWW);
|
Ins_UpdateInsWWWDB (Ins_EditingIns->InsCod,NewWWW);
|
||||||
Str_Copy (Ins->WWW,NewWWW,
|
Str_Copy (Ins_EditingIns->WWW,NewWWW,
|
||||||
Cns_MAX_BYTES_WWW);
|
Cns_MAX_BYTES_WWW);
|
||||||
|
|
||||||
/***** Write message to show the change made
|
/***** Write message to show the change made
|
||||||
|
@ -2073,16 +2084,16 @@ void Ins_ChangeInsWWW (void)
|
||||||
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
||||||
Txt_The_new_web_address_is_X,
|
Txt_The_new_web_address_is_X,
|
||||||
NewWWW);
|
NewWWW);
|
||||||
Ins_ShowAlertAndButtonToGoToIns (Ins->InsCod);
|
Ins_ShowAlertAndButtonToGoToIns ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Ale_ShowAlert (Ale_WARNING,Txt_You_can_not_leave_the_web_address_empty);
|
Ale_ShowAlert (Ale_WARNING,Txt_You_can_not_leave_the_web_address_empty);
|
||||||
|
|
||||||
/***** Institution destructor *****/
|
|
||||||
Ins_InstitutionDestructor (&Ins);
|
|
||||||
|
|
||||||
/***** Show the form again *****/
|
/***** Show the form again *****/
|
||||||
Ins_EditInstitutions ();
|
Ins_EditInstitutionsInternal ();
|
||||||
|
|
||||||
|
/***** Institution destructor *****/
|
||||||
|
Ins_EditingInstitutionDestructor ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ins_ChangeInsWWWInConfig (void)
|
void Ins_ChangeInsWWWInConfig (void)
|
||||||
|
@ -2133,16 +2144,15 @@ static void Ins_UpdateInsWWWDB (long InsCod,const char NewWWW[Cns_MAX_BYTES_WWW
|
||||||
void Ins_ChangeInsStatus (void)
|
void Ins_ChangeInsStatus (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_The_status_of_the_institution_X_has_changed;
|
extern const char *Txt_The_status_of_the_institution_X_has_changed;
|
||||||
struct Instit *Ins = NULL;
|
|
||||||
Ins_Status_t Status;
|
Ins_Status_t Status;
|
||||||
Ins_StatusTxt_t StatusTxt;
|
Ins_StatusTxt_t StatusTxt;
|
||||||
|
|
||||||
/***** Institution constructor *****/
|
/***** Institution constructor *****/
|
||||||
Ins_InstitutionConstructor (&Ins);
|
Ins_EditingInstitutionConstructor ();
|
||||||
|
|
||||||
/***** Get parameters from form *****/
|
/***** Get parameters from form *****/
|
||||||
/* Get institution code */
|
/* Get institution code */
|
||||||
Ins->InsCod = Ins_GetAndCheckParamOtherInsCod (1);
|
Ins_EditingIns->InsCod = Ins_GetAndCheckParamOtherInsCod (1);
|
||||||
|
|
||||||
/* Get parameter with status */
|
/* Get parameter with status */
|
||||||
Status = (Ins_Status_t)
|
Status = (Ins_Status_t)
|
||||||
|
@ -2156,40 +2166,26 @@ void Ins_ChangeInsStatus (void)
|
||||||
Status = Ins_GetStatusBitsFromStatusTxt (StatusTxt); // New status
|
Status = Ins_GetStatusBitsFromStatusTxt (StatusTxt); // New status
|
||||||
|
|
||||||
/***** Get data of institution *****/
|
/***** Get data of institution *****/
|
||||||
Ins_GetDataOfInstitutionByCod (Ins,Ins_GET_BASIC_DATA);
|
Ins_GetDataOfInstitutionByCod (Ins_EditingIns,Ins_GET_BASIC_DATA);
|
||||||
|
|
||||||
/***** Update status in table of institutions *****/
|
/***** Update status in table of institutions *****/
|
||||||
DB_QueryUPDATE ("can not update the status of an institution",
|
DB_QueryUPDATE ("can not update the status of an institution",
|
||||||
"UPDATE institutions SET Status=%u WHERE InsCod=%ld",
|
"UPDATE institutions SET Status=%u WHERE InsCod=%ld",
|
||||||
(unsigned) Status,Ins->InsCod);
|
(unsigned) Status,Ins_EditingIns->InsCod);
|
||||||
Ins->Status = Status;
|
Ins_EditingIns->Status = Status;
|
||||||
|
|
||||||
/***** Write message to show the change made
|
/***** Write message to show the change made
|
||||||
and put button to go to institution changed *****/
|
and put button to go to institution changed *****/
|
||||||
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
||||||
Txt_The_status_of_the_institution_X_has_changed,
|
Txt_The_status_of_the_institution_X_has_changed,
|
||||||
Ins->ShrtName);
|
Ins_EditingIns->ShrtName);
|
||||||
Ins_ShowAlertAndButtonToGoToIns (Ins->InsCod);
|
Ins_ShowAlertAndButtonToGoToIns ();
|
||||||
|
|
||||||
|
/***** Show the form again *****/
|
||||||
|
Ins_EditInstitutionsInternal ();
|
||||||
|
|
||||||
/***** Institution destructor *****/
|
/***** Institution destructor *****/
|
||||||
Ins_InstitutionDestructor (&Ins);
|
Ins_EditingInstitutionDestructor ();
|
||||||
|
|
||||||
/***** Show the form again *****/
|
|
||||||
Ins_EditInstitutions ();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/*********** Show message of success after changing an institution ***********/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
void Ins_ContEditAfterChgIns (void)
|
|
||||||
{
|
|
||||||
/***** Write message to show the change made
|
|
||||||
and put button to go to institution changed *****/
|
|
||||||
Ins_ShowAlertAndButtonToGoToIns (Ins_GetEditingInsCod ());
|
|
||||||
|
|
||||||
/***** Show the form again *****/
|
|
||||||
Ins_EditInstitutions ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2198,13 +2194,12 @@ void Ins_ContEditAfterChgIns (void)
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
// Gbl.Hierarchy.Deg is the current degree
|
// Gbl.Hierarchy.Deg is the current degree
|
||||||
|
|
||||||
static void Ins_ShowAlertAndButtonToGoToIns (long InsCod)
|
static void Ins_ShowAlertAndButtonToGoToIns (void)
|
||||||
{
|
{
|
||||||
// If the institution beeing edited is different to the current one...
|
// If the institution beeing edited is different to the current one...
|
||||||
if (InsCod != Gbl.Hierarchy.Ins.InsCod)
|
if (Ins_EditingIns->InsCod != Gbl.Hierarchy.Ins.InsCod)
|
||||||
{
|
{
|
||||||
/***** Alert with button to go to degree *****/
|
/***** Alert with button to go to degree *****/
|
||||||
Ins_SetEditingInsCod (InsCod); // Parameter to function
|
|
||||||
Ale_ShowLastAlertAndButton (ActSeeCtr,NULL,NULL,Ins_PutParamGoToIns,
|
Ale_ShowLastAlertAndButton (ActSeeCtr,NULL,NULL,Ins_PutParamGoToIns,
|
||||||
Btn_CONFIRM_BUTTON,Gbl.Title);
|
Btn_CONFIRM_BUTTON,Gbl.Title);
|
||||||
}
|
}
|
||||||
|
@ -2215,7 +2210,8 @@ static void Ins_ShowAlertAndButtonToGoToIns (long InsCod)
|
||||||
|
|
||||||
static void Ins_PutParamGoToIns (void)
|
static void Ins_PutParamGoToIns (void)
|
||||||
{
|
{
|
||||||
Ins_PutParamInsCod (Ins_GetEditingInsCod ());
|
/***** Put parameter *****/
|
||||||
|
Ins_PutParamInsCod (Ins_EditingIns->InsCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2249,7 +2245,7 @@ void Ins_RemoveLogo (void)
|
||||||
/****************** Put a form to create a new institution *******************/
|
/****************** Put a form to create a new institution *******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Ins_PutFormToCreateInstitution (struct Instit *Ins)
|
static void Ins_PutFormToCreateInstitution (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_New_institution;
|
extern const char *Txt_New_institution;
|
||||||
extern const char *Txt_Create_institution;
|
extern const char *Txt_Create_institution;
|
||||||
|
@ -2288,7 +2284,7 @@ static void Ins_PutFormToCreateInstitution (struct Instit *Ins)
|
||||||
" class=\"INPUT_SHORT_NAME\""
|
" class=\"INPUT_SHORT_NAME\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />"
|
||||||
"</td>",
|
"</td>",
|
||||||
Hie_MAX_CHARS_SHRT_NAME,Ins->ShrtName);
|
Hie_MAX_CHARS_SHRT_NAME,Ins_EditingIns->ShrtName);
|
||||||
|
|
||||||
/***** Institution full name *****/
|
/***** Institution full name *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
|
@ -2297,7 +2293,7 @@ static void Ins_PutFormToCreateInstitution (struct Instit *Ins)
|
||||||
" class=\"INPUT_FULL_NAME\""
|
" class=\"INPUT_FULL_NAME\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />"
|
||||||
"</td>",
|
"</td>",
|
||||||
Hie_MAX_CHARS_FULL_NAME,Ins->FullName);
|
Hie_MAX_CHARS_FULL_NAME,Ins_EditingIns->FullName);
|
||||||
|
|
||||||
/***** Institution WWW *****/
|
/***** Institution WWW *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
|
@ -2306,7 +2302,7 @@ static void Ins_PutFormToCreateInstitution (struct Instit *Ins)
|
||||||
" class=\"INPUT_WWW\""
|
" class=\"INPUT_WWW\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />"
|
||||||
"</td>",
|
"</td>",
|
||||||
Cns_MAX_CHARS_WWW,Ins->WWW);
|
Cns_MAX_CHARS_WWW,Ins_EditingIns->WWW);
|
||||||
|
|
||||||
/***** Number of users who claim to belong to this institution ****/
|
/***** Number of users who claim to belong to this institution ****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
|
@ -2402,16 +2398,14 @@ static void Ins_PutHeadInstitutionsForEdition (void)
|
||||||
|
|
||||||
void Ins_RecFormReqIns (void)
|
void Ins_RecFormReqIns (void)
|
||||||
{
|
{
|
||||||
struct Instit *Ins = NULL;
|
|
||||||
|
|
||||||
/***** Institution constructor *****/
|
/***** Institution constructor *****/
|
||||||
Ins_InstitutionConstructor (&Ins);
|
Ins_EditingInstitutionConstructor ();
|
||||||
|
|
||||||
/***** Receive form to request a new institution *****/
|
/***** Receive form to request a new institution *****/
|
||||||
Ins_RecFormRequestOrCreateIns (Ins,(unsigned) Ins_STATUS_BIT_PENDING);
|
Ins_RecFormRequestOrCreateIns ((unsigned) Ins_STATUS_BIT_PENDING);
|
||||||
|
|
||||||
/***** Institution destructor *****/
|
/***** Institution destructor *****/
|
||||||
Ins_InstitutionDestructor (&Ins);
|
Ins_EditingInstitutionDestructor ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2420,23 +2414,21 @@ void Ins_RecFormReqIns (void)
|
||||||
|
|
||||||
void Ins_RecFormNewIns (void)
|
void Ins_RecFormNewIns (void)
|
||||||
{
|
{
|
||||||
struct Instit *Ins = NULL;
|
|
||||||
|
|
||||||
/***** Institution constructor *****/
|
/***** Institution constructor *****/
|
||||||
Ins_InstitutionConstructor (&Ins);
|
Ins_EditingInstitutionConstructor ();
|
||||||
|
|
||||||
/***** Receive form to create a new institution *****/
|
/***** Receive form to create a new institution *****/
|
||||||
Ins_RecFormRequestOrCreateIns (Ins,0);
|
Ins_RecFormRequestOrCreateIns (0);
|
||||||
|
|
||||||
/***** Institution destructor *****/
|
/***** Institution destructor *****/
|
||||||
Ins_InstitutionDestructor (&Ins);
|
Ins_EditingInstitutionDestructor ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/*********** Receive form to request or create a new institution *************/
|
/*********** Receive form to request or create a new institution *************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Ins_RecFormRequestOrCreateIns (struct Instit *Ins,unsigned Status)
|
static void Ins_RecFormRequestOrCreateIns (unsigned Status)
|
||||||
{
|
{
|
||||||
extern const char *Txt_The_institution_X_already_exists;
|
extern const char *Txt_The_institution_X_already_exists;
|
||||||
extern const char *Txt_You_must_specify_the_web_address_of_the_new_institution;
|
extern const char *Txt_You_must_specify_the_web_address_of_the_new_institution;
|
||||||
|
@ -2444,31 +2436,33 @@ static void Ins_RecFormRequestOrCreateIns (struct Instit *Ins,unsigned Status)
|
||||||
|
|
||||||
/***** Get parameters from form *****/
|
/***** Get parameters from form *****/
|
||||||
/* Set institution country */
|
/* Set institution country */
|
||||||
Ins->CtyCod = Gbl.Hierarchy.Cty.CtyCod;
|
Ins_EditingIns->CtyCod = Gbl.Hierarchy.Cty.CtyCod;
|
||||||
|
|
||||||
/* Get institution short name */
|
/* Get institution short name */
|
||||||
Par_GetParToText ("ShortName",Ins->ShrtName,Hie_MAX_BYTES_SHRT_NAME);
|
Par_GetParToText ("ShortName",Ins_EditingIns->ShrtName,Hie_MAX_BYTES_SHRT_NAME);
|
||||||
|
|
||||||
/* Get institution full name */
|
/* Get institution full name */
|
||||||
Par_GetParToText ("FullName",Ins->FullName,Hie_MAX_BYTES_FULL_NAME);
|
Par_GetParToText ("FullName",Ins_EditingIns->FullName,Hie_MAX_BYTES_FULL_NAME);
|
||||||
|
|
||||||
/* Get institution WWW */
|
/* Get institution WWW */
|
||||||
Par_GetParToText ("WWW",Ins->WWW,Cns_MAX_BYTES_WWW);
|
Par_GetParToText ("WWW",Ins_EditingIns->WWW,Cns_MAX_BYTES_WWW);
|
||||||
|
|
||||||
if (Ins->ShrtName[0] &&
|
if (Ins_EditingIns->ShrtName[0] &&
|
||||||
Ins->FullName[0]) // If there's a institution name
|
Ins_EditingIns->FullName[0]) // If there's a institution name
|
||||||
{
|
{
|
||||||
if (Ins->WWW[0])
|
if (Ins_EditingIns->WWW[0])
|
||||||
{
|
{
|
||||||
/***** If name of institution was in database... *****/
|
/***** If name of institution was in database... *****/
|
||||||
if (Ins_CheckIfInsNameExistsInCty ("ShortName",Ins->ShrtName,-1L,Gbl.Hierarchy.Cty.CtyCod))
|
if (Ins_CheckIfInsNameExistsInCty ("ShortName",Ins_EditingIns->ShrtName,
|
||||||
|
-1L,Gbl.Hierarchy.Cty.CtyCod))
|
||||||
Ale_ShowAlert (Ale_WARNING,Txt_The_institution_X_already_exists,
|
Ale_ShowAlert (Ale_WARNING,Txt_The_institution_X_already_exists,
|
||||||
Ins->ShrtName);
|
Ins_EditingIns->ShrtName);
|
||||||
else if (Ins_CheckIfInsNameExistsInCty ("FullName",Ins->FullName,-1L,Gbl.Hierarchy.Cty.CtyCod))
|
else if (Ins_CheckIfInsNameExistsInCty ("FullName",Ins_EditingIns->FullName,
|
||||||
|
-1L,Gbl.Hierarchy.Cty.CtyCod))
|
||||||
Ale_ShowAlert (Ale_WARNING,Txt_The_institution_X_already_exists,
|
Ale_ShowAlert (Ale_WARNING,Txt_The_institution_X_already_exists,
|
||||||
Ins->FullName);
|
Ins_EditingIns->FullName);
|
||||||
else // Add new institution to database
|
else // Add new institution to database
|
||||||
Ins_CreateInstitution (Ins,Status);
|
Ins_CreateInstitution (Status);
|
||||||
}
|
}
|
||||||
else // If there is not a web
|
else // If there is not a web
|
||||||
Ale_ShowAlert (Ale_WARNING,Txt_You_must_specify_the_web_address_of_the_new_institution);
|
Ale_ShowAlert (Ale_WARNING,Txt_You_must_specify_the_web_address_of_the_new_institution);
|
||||||
|
@ -2477,37 +2471,37 @@ static void Ins_RecFormRequestOrCreateIns (struct Instit *Ins,unsigned Status)
|
||||||
Ale_ShowAlert (Ale_WARNING,Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_institution);
|
Ale_ShowAlert (Ale_WARNING,Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_institution);
|
||||||
|
|
||||||
/***** Show the form again *****/
|
/***** Show the form again *****/
|
||||||
Ins_EditInstitutions ();
|
Ins_EditInstitutionsInternal ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************************** Create a new institution *************************/
|
/************************** Create a new institution *************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Ins_CreateInstitution (struct Instit *Ins,unsigned Status)
|
static void Ins_CreateInstitution (unsigned Status)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Created_new_institution_X;
|
extern const char *Txt_Created_new_institution_X;
|
||||||
|
|
||||||
/***** Create a new institution *****/
|
/***** Create a new institution *****/
|
||||||
Ins->InsCod =
|
Ins_EditingIns->InsCod =
|
||||||
DB_QueryINSERTandReturnCode ("can not create institution",
|
DB_QueryINSERTandReturnCode ("can not create institution",
|
||||||
"INSERT INTO institutions"
|
"INSERT INTO institutions"
|
||||||
" (CtyCod,Status,RequesterUsrCod,ShortName,FullName,WWW)"
|
" (CtyCod,Status,RequesterUsrCod,ShortName,FullName,WWW)"
|
||||||
" VALUES"
|
" VALUES"
|
||||||
" (%ld,%u,%ld,'%s','%s','%s')",
|
" (%ld,%u,%ld,'%s','%s','%s')",
|
||||||
Ins->CtyCod,
|
Ins_EditingIns->CtyCod,
|
||||||
Status,
|
Status,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
Ins->ShrtName,
|
Ins_EditingIns->ShrtName,
|
||||||
Ins->FullName,
|
Ins_EditingIns->FullName,
|
||||||
Ins->WWW);
|
Ins_EditingIns->WWW);
|
||||||
|
|
||||||
/***** Write message to show the change made
|
/***** Write message to show the change made
|
||||||
and put button to go to institution created *****/
|
and put button to go to institution created *****/
|
||||||
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
||||||
Txt_Created_new_institution_X,
|
Txt_Created_new_institution_X,
|
||||||
Ins->FullName);
|
Ins_EditingIns->FullName);
|
||||||
Ins_ShowAlertAndButtonToGoToIns (Ins->InsCod);
|
Ins_ShowAlertAndButtonToGoToIns ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2658,66 +2652,38 @@ void Ins_ListInssFound (MYSQL_RES **mysql_res,unsigned NumInss)
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/********************** Institution constructor/destructor *******************/
|
/********************** Institution constructor/destructor *******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
// *Ins must be NULL
|
|
||||||
|
|
||||||
static void Ins_InstitutionConstructor (struct Instit **Ins)
|
static void Ins_EditingInstitutionConstructor (void)
|
||||||
{
|
{
|
||||||
/***** *Ins must be NULL *****/
|
/***** *Ins must be NULL *****/
|
||||||
if (*Ins != NULL)
|
if (Ins_EditingIns != NULL)
|
||||||
Lay_ShowErrorAndExit ("Error initializinig institution.");
|
Lay_ShowErrorAndExit ("Error initializinig institution.");
|
||||||
|
|
||||||
/***** Allocate memory for institution *****/
|
/***** Allocate memory for institution *****/
|
||||||
if ((*Ins = (struct Instit *) malloc (sizeof (struct Instit))) == NULL)
|
if ((Ins_EditingIns = (struct Instit *) malloc (sizeof (struct Instit))) == NULL)
|
||||||
Lay_ShowErrorAndExit ("Error allocating memory for institution.");
|
Lay_ShowErrorAndExit ("Error allocating memory for institution.");
|
||||||
|
|
||||||
/***** Reset institution *****/
|
/***** Reset institution *****/
|
||||||
(*Ins)->InsCod = -1L;
|
Ins_EditingIns->InsCod = -1L;
|
||||||
(*Ins)->CtyCod = -1L;
|
Ins_EditingIns->CtyCod = -1L;
|
||||||
(*Ins)->ShrtName[0] = '\0';
|
Ins_EditingIns->ShrtName[0] = '\0';
|
||||||
(*Ins)->FullName[0] = '\0';
|
Ins_EditingIns->FullName[0] = '\0';
|
||||||
(*Ins)->WWW[0] = '\0';
|
Ins_EditingIns->WWW[0] = '\0';
|
||||||
(*Ins)->Ctrs.Num = 0;
|
Ins_EditingIns->Ctrs.Num = 0;
|
||||||
(*Ins)->Ctrs.Lst = NULL;
|
Ins_EditingIns->Ctrs.Lst = NULL;
|
||||||
(*Ins)->Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
Ins_EditingIns->Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
||||||
(*Ins)->NumDpts = 0;
|
Ins_EditingIns->NumDpts = 0;
|
||||||
(*Ins)->NumDegs = 0;
|
Ins_EditingIns->NumDegs = 0;
|
||||||
(*Ins)->NumUsrs = 0;
|
Ins_EditingIns->NumUsrs = 0;
|
||||||
(*Ins)->NumUsrsWhoClaimToBelongToIns = 0;
|
Ins_EditingIns->NumUsrsWhoClaimToBelongToIns = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Ins_InstitutionDestructor (struct Instit **Ins)
|
static void Ins_EditingInstitutionDestructor (void)
|
||||||
{
|
{
|
||||||
/***** Free memory used for institution *****/
|
/***** Free memory used for institution *****/
|
||||||
if (*Ins != NULL)
|
if (Ins_EditingIns != NULL)
|
||||||
{
|
{
|
||||||
free ((void *) *Ins);
|
free ((void *) Ins_EditingIns);
|
||||||
*Ins = NULL;
|
Ins_EditingIns = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/************* Institution code of the institution beeing edited *************/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
static void Ins_SetEditingInsCod (long InsCod)
|
|
||||||
{
|
|
||||||
long *EditingInsCod;
|
|
||||||
|
|
||||||
EditingInsCod = Ins_GetPtrToEditingInsCod ();
|
|
||||||
*EditingInsCod = InsCod;
|
|
||||||
}
|
|
||||||
|
|
||||||
static long Ins_GetEditingInsCod (void)
|
|
||||||
{
|
|
||||||
long *EditingInsCod;
|
|
||||||
|
|
||||||
EditingInsCod = Ins_GetPtrToEditingInsCod ();
|
|
||||||
return *EditingInsCod;
|
|
||||||
}
|
|
||||||
|
|
||||||
static long *Ins_GetPtrToEditingInsCod (void)
|
|
||||||
{
|
|
||||||
static long EditingInsCod; // Static variable to keep institution code
|
|
||||||
|
|
||||||
return &EditingInsCod;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue