Version 16.47.7

This commit is contained in:
Antonio Cañas Vargas 2016-11-06 23:46:29 +01:00
parent 7c18efd174
commit 93b8e22b3c
5 changed files with 58 additions and 34 deletions

View File

@ -80,13 +80,15 @@ static void Ctr_PutIconsToPrintAndUpload (void);
static void Ctr_PutIconToChangePhoto (void); static void Ctr_PutIconToChangePhoto (void);
static void Ctr_ListCentres (void); static void Ctr_ListCentres (void);
static void Ctr_PutIconToEditFrames (void); static bool Ctr_CheckIfICanEditCentres (void);
static void Ctr_PutIconsListCentres (void);
static void Ctr_PutIconToEditCentres (void);
static void Ctr_ListOneCentreForSeeing (struct Centre *Ctr,unsigned NumCtr); static void Ctr_ListOneCentreForSeeing (struct Centre *Ctr,unsigned NumCtr);
static void Ctr_GetParamCtrOrderType (void); static void Ctr_GetParamCtrOrderType (void);
static void Ctr_GetPhotoAttribution (long CtrCod,char **PhotoAttribution); static void Ctr_GetPhotoAttribution (long CtrCod,char **PhotoAttribution);
static void Ctr_FreePhotoAttribution (char **PhotoAttribution); static void Ctr_FreePhotoAttribution (char **PhotoAttribution);
static void Ctr_ListCentresForEdition (void); static void Ctr_ListCentresForEdition (void);
static bool Ctr_CheckIfICanEdit (struct Centre *Ctr); static bool Ctr_CheckIfICanEditACentre (struct Centre *Ctr);
static Ctr_StatusTxt_t Ctr_GetStatusTxtFromStatusBits (Ctr_Status_t Status); static Ctr_StatusTxt_t Ctr_GetStatusTxtFromStatusBits (Ctr_Status_t Status);
static Ctr_Status_t Ctr_GetStatusBitsFromStatusTxt (Ctr_StatusTxt_t StatusTxt); static Ctr_Status_t Ctr_GetStatusBitsFromStatusTxt (Ctr_StatusTxt_t StatusTxt);
@ -734,12 +736,10 @@ static void Ctr_ListCentres (void)
extern const char *Txt_Create_another_centre; extern const char *Txt_Create_another_centre;
extern const char *Txt_Create_centre; extern const char *Txt_Create_centre;
unsigned NumCtr; unsigned NumCtr;
bool ICanEdit = (Gbl.Usrs.Me.LoggedRole >= Rol__GUEST_);
/***** Start frame *****/ /***** Start frame *****/
sprintf (Gbl.Title,Txt_Centres_of_INSTITUTION_X,Gbl.CurrentIns.Ins.FullName); sprintf (Gbl.Title,Txt_Centres_of_INSTITUTION_X,Gbl.CurrentIns.Ins.FullName);
Lay_StartRoundFrame (NULL,Gbl.Title,ICanEdit ? Ctr_PutIconToEditFrames : Lay_StartRoundFrame (NULL,Gbl.Title,Ctr_PutIconsListCentres);
NULL);
if (Gbl.Ctrs.Num) // There are centres in the current institution if (Gbl.Ctrs.Num) // There are centres in the current institution
{ {
@ -760,7 +760,7 @@ static void Ctr_ListCentres (void)
Lay_ShowAlert (Lay_INFO,Txt_No_centres); Lay_ShowAlert (Lay_INFO,Txt_No_centres);
/***** Button to create centre *****/ /***** Button to create centre *****/
if (ICanEdit) if (Ctr_CheckIfICanEditCentres ())
{ {
Act_FormStart (ActEdiCtr); Act_FormStart (ActEdiCtr);
Lay_PutConfirmButton (Gbl.Ctrs.Num ? Txt_Create_another_centre : Lay_PutConfirmButton (Gbl.Ctrs.Num ? Txt_Create_another_centre :
@ -772,11 +772,35 @@ static void Ctr_ListCentres (void)
Lay_EndRoundFrame (); Lay_EndRoundFrame ();
} }
/*****************************************************************************/
/*********************** Check if I can edit centres *************************/
/*****************************************************************************/
static bool Ctr_CheckIfICanEditCentres (void)
{
return (bool) (Gbl.Usrs.Me.LoggedRole >= Rol__GUEST_);
}
/*****************************************************************************/
/***************** Put contextual icons in list of centres *******************/
/*****************************************************************************/
static void Ctr_PutIconsListCentres (void)
{
/***** Put icon to edit centres *****/
if (Ctr_CheckIfICanEditCentres ())
Ctr_PutIconToEditCentres ();
/***** Put icon to show a figure *****/
Gbl.Stat.FigureType = Sta_HIERARCHY;
Sta_PutIconToShowFigure ();
}
/*****************************************************************************/ /*****************************************************************************/
/********************** Put link (form) to edit centres **********************/ /********************** Put link (form) to edit centres **********************/
/*****************************************************************************/ /*****************************************************************************/
static void Ctr_PutIconToEditFrames (void) static void Ctr_PutIconToEditCentres (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
@ -1354,7 +1378,7 @@ static void Ctr_ListCentresForEdition (void)
{ {
Ctr = &Gbl.Ctrs.Lst[NumCtr]; Ctr = &Gbl.Ctrs.Lst[NumCtr];
ICanEdit = Ctr_CheckIfICanEdit (Ctr); ICanEdit = Ctr_CheckIfICanEditACentre (Ctr);
/* Put icon to remove centre */ /* Put icon to remove centre */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
@ -1545,9 +1569,9 @@ static void Ctr_ListCentresForEdition (void)
/************** Check if I can edit, remove, etc. a centre *******************/ /************** Check if I can edit, remove, etc. a centre *******************/
/*****************************************************************************/ /*****************************************************************************/
static bool Ctr_CheckIfICanEdit (struct Centre *Ctr) static bool Ctr_CheckIfICanEditACentre (struct Centre *Ctr)
{ {
return (bool) (Gbl.Usrs.Me.LoggedRole >= Rol_INS_ADM || // I am an institution administrator or higher return (bool) (Gbl.Usrs.Me.LoggedRole >= Rol_INS_ADM || // I am an institution administrator or higher
((Ctr->Status & Ctr_STATUS_BIT_PENDING) != 0 && // Centre is not yet activated ((Ctr->Status & Ctr_STATUS_BIT_PENDING) != 0 && // Centre is not yet activated
Gbl.Usrs.Me.UsrDat.UsrCod == Ctr->RequesterUsrCod)); // I am the requester Gbl.Usrs.Me.UsrDat.UsrCod == Ctr->RequesterUsrCod)); // I am the requester
} }

View File

@ -156,13 +156,14 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.47.6 (2016-11-06)" #define Log_PLATFORM_VERSION "SWAD 16.47.7 (2016-11-06)"
#define CSS_FILE "swad16.32.1.css" #define CSS_FILE "swad16.32.1.css"
#define JS_FILE "swad16.46.1.js" #define JS_FILE "swad16.46.1.js"
// Number of lines (includes comments but not blank lines) has been got with the following command: // 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 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
/* /*
Version 16.47.7: Nov 06, 2016 Icon in list of centres to show figure (statistics). (206191 lines)
Version 16.47.6: Nov 06, 2016 Code refactoring in countries. (206171 lines) Version 16.47.6: Nov 06, 2016 Code refactoring in countries. (206171 lines)
Version 16.47.5: Nov 06, 2016 Code refactoring in countries. (206162 lines) Version 16.47.5: Nov 06, 2016 Code refactoring in countries. (206162 lines)
Version 16.47.4: Nov 06, 2016 Code refactoring in notices. (206153 lines) Version 16.47.4: Nov 06, 2016 Code refactoring in notices. (206153 lines)

View File

@ -68,7 +68,7 @@ static void Cty_PutIconToPrint (void);
static bool Cty_CheckIfICanEditCountries (void); static bool Cty_CheckIfICanEditCountries (void);
static void Cty_PutIconsCountries (void); static void Cty_PutIconsListCountries (void);
static void Cty_PutIconToEditCountries (void); static void Cty_PutIconToEditCountries (void);
static unsigned Cty_GetNumUsrsWhoClaimToBelongToCty (long CtyCod); static unsigned Cty_GetNumUsrsWhoClaimToBelongToCty (long CtyCod);
@ -515,7 +515,7 @@ void Cty_ListCountries2 (void)
const char *BgColor; const char *BgColor;
/***** Table head *****/ /***** Table head *****/
Lay_StartRoundFrame (NULL,Txt_Countries,Cty_PutIconsCountries); Lay_StartRoundFrame (NULL,Txt_Countries,Cty_PutIconsListCountries);
fprintf (Gbl.F.Out,"<table class=\"FRAME_TABLE CELLS_PAD_2\">" fprintf (Gbl.F.Out,"<table class=\"FRAME_TABLE CELLS_PAD_2\">"
"<tr>"); "<tr>");
for (Order = Cty_ORDER_BY_COUNTRY; for (Order = Cty_ORDER_BY_COUNTRY;
@ -696,14 +696,14 @@ void Cty_ListCountries2 (void)
static bool Cty_CheckIfICanEditCountries (void) static bool Cty_CheckIfICanEditCountries (void)
{ {
return (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM); return (bool) (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM);
} }
/*****************************************************************************/ /*****************************************************************************/
/***************** Put contextual icons in list of countries *****************/ /***************** Put contextual icons in list of countries *****************/
/*****************************************************************************/ /*****************************************************************************/
static void Cty_PutIconsCountries (void) static void Cty_PutIconsListCountries (void)
{ {
/***** Put icon to edit countries *****/ /***** Put icon to edit countries *****/
if (Cty_CheckIfICanEditCountries ()) if (Cty_CheckIfICanEditCountries ())

View File

@ -68,7 +68,7 @@ static void Ins_PutIconsToPrintAndUpload (void);
static void Ins_ListInstitutions (void); static void Ins_ListInstitutions (void);
static bool Ins_CheckIfICanEditInstitutions (void); static bool Ins_CheckIfICanEditInstitutions (void);
static void Ins_PutIconsInstitutions (void); static void Ins_PutIconsListInstitutions (void);
static void Ins_PutIconToEditInstitutions (void); static void Ins_PutIconToEditInstitutions (void);
static void Ins_ListOneInstitutionForSeeing (struct Instit *Ins,unsigned NumIns); static void Ins_ListOneInstitutionForSeeing (struct Instit *Ins,unsigned NumIns);
static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable); static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable);
@ -662,7 +662,7 @@ static void Ins_ListInstitutions (void)
/***** Start frame *****/ /***** Start frame *****/
sprintf (Gbl.Title,Txt_Institutions_of_COUNTRY_X,Gbl.CurrentCty.Cty.Name[Gbl.Prefs.Language]); sprintf (Gbl.Title,Txt_Institutions_of_COUNTRY_X,Gbl.CurrentCty.Cty.Name[Gbl.Prefs.Language]);
Lay_StartRoundFrame (NULL,Gbl.Title,Ins_PutIconsInstitutions); Lay_StartRoundFrame (NULL,Gbl.Title,Ins_PutIconsListInstitutions);
if (Gbl.Inss.Num) // There are institutions in the current country if (Gbl.Inss.Num) // There are institutions in the current country
{ {
@ -700,16 +700,16 @@ static void Ins_ListInstitutions (void)
static bool Ins_CheckIfICanEditInstitutions (void) static bool Ins_CheckIfICanEditInstitutions (void)
{ {
return (Gbl.Usrs.Me.LoggedRole >= Rol__GUEST_); return (bool) (Gbl.Usrs.Me.LoggedRole >= Rol__GUEST_);
} }
/*****************************************************************************/ /*****************************************************************************/
/*************** Put contextual icons in list of institutions ****************/ /*************** Put contextual icons in list of institutions ****************/
/*****************************************************************************/ /*****************************************************************************/
static void Ins_PutIconsInstitutions (void) static void Ins_PutIconsListInstitutions (void)
{ {
/***** Put icon to edit countries *****/ /***** Put icon to edit institutions *****/
if (Ins_CheckIfICanEditInstitutions ()) if (Ins_CheckIfICanEditInstitutions ())
Ins_PutIconToEditInstitutions (); Ins_PutIconToEditInstitutions ();

View File

@ -67,8 +67,7 @@ const unsigned Not_MaxCharsURLOnScreen[Not_NUM_TYPES_LISTING] =
/*****************************************************************************/ /*****************************************************************************/
static bool Not_CheckIfICanEditNotices (void); static bool Not_CheckIfICanEditNotices (void);
static void Not_PutIconsListNotices (void);
static void Not_PutIconsNotices (void);
static void Not_PutIconToAddNewNotice (void); static void Not_PutIconToAddNewNotice (void);
static void Not_PutButtonToAddNewNotice (void); static void Not_PutButtonToAddNewNotice (void);
static void Not_GetDataAndShowNotice (long NotCod); static void Not_GetDataAndShowNotice (long NotCod);
@ -221,16 +220,6 @@ void Not_ListFullNotices (void)
Not_ShowNotices (Not_LIST_FULL_NOTICES); Not_ShowNotices (Not_LIST_FULL_NOTICES);
} }
/*****************************************************************************/
/*********************** Check if I can edit notices *************************/
/*****************************************************************************/
static bool Not_CheckIfICanEditNotices (void)
{
return (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER ||
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM);
}
/*****************************************************************************/ /*****************************************************************************/
/***************** Mark as hidden a notice that was active *******************/ /***************** Mark as hidden a notice that was active *******************/
/*****************************************************************************/ /*****************************************************************************/
@ -404,7 +393,7 @@ void Not_ShowNotices (Not_Listing_t TypeNoticesListing)
Lay_StartRoundFrame (StrWidth, Lay_StartRoundFrame (StrWidth,
Gbl.CurrentCrs.Notices.HighlightNotCod > 0 ? Txt_All_notices : Gbl.CurrentCrs.Notices.HighlightNotCod > 0 ? Txt_All_notices :
Txt_Notices, Txt_Notices,
Not_PutIconsNotices); Not_PutIconsListNotices);
if (!NumNotices) if (!NumNotices)
Lay_ShowAlert (Lay_INFO,Txt_No_notices); Lay_ShowAlert (Lay_INFO,Txt_No_notices);
} }
@ -487,11 +476,21 @@ void Not_ShowNotices (Not_Listing_t TypeNoticesListing)
} }
} }
/*****************************************************************************/
/*********************** Check if I can edit notices *************************/
/*****************************************************************************/
static bool Not_CheckIfICanEditNotices (void)
{
return (bool) (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER ||
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM);
}
/*****************************************************************************/ /*****************************************************************************/
/****************** Put contextual icons in list of notices ******************/ /****************** Put contextual icons in list of notices ******************/
/*****************************************************************************/ /*****************************************************************************/
static void Not_PutIconsNotices (void) static void Not_PutIconsListNotices (void)
{ {
/***** Put icon to add a new notice *****/ /***** Put icon to add a new notice *****/
if (Not_CheckIfICanEditNotices ()) if (Not_CheckIfICanEditNotices ())