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_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_GetParamCtrOrderType (void);
static void Ctr_GetPhotoAttribution (long CtrCod,char **PhotoAttribution);
static void Ctr_FreePhotoAttribution (char **PhotoAttribution);
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_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_centre;
unsigned NumCtr;
bool ICanEdit = (Gbl.Usrs.Me.LoggedRole >= Rol__GUEST_);
/***** Start frame *****/
sprintf (Gbl.Title,Txt_Centres_of_INSTITUTION_X,Gbl.CurrentIns.Ins.FullName);
Lay_StartRoundFrame (NULL,Gbl.Title,ICanEdit ? Ctr_PutIconToEditFrames :
NULL);
Lay_StartRoundFrame (NULL,Gbl.Title,Ctr_PutIconsListCentres);
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);
/***** Button to create centre *****/
if (ICanEdit)
if (Ctr_CheckIfICanEditCentres ())
{
Act_FormStart (ActEdiCtr);
Lay_PutConfirmButton (Gbl.Ctrs.Num ? Txt_Create_another_centre :
@ -772,11 +772,35 @@ static void Ctr_ListCentres (void)
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 **********************/
/*****************************************************************************/
static void Ctr_PutIconToEditFrames (void)
static void Ctr_PutIconToEditCentres (void)
{
extern const char *Txt_Edit;
@ -1354,7 +1378,7 @@ static void Ctr_ListCentresForEdition (void)
{
Ctr = &Gbl.Ctrs.Lst[NumCtr];
ICanEdit = Ctr_CheckIfICanEdit (Ctr);
ICanEdit = Ctr_CheckIfICanEditACentre (Ctr);
/* Put icon to remove centre */
fprintf (Gbl.F.Out,"<tr>"
@ -1545,9 +1569,9 @@ static void Ctr_ListCentresForEdition (void)
/************** 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
Gbl.Usrs.Me.UsrDat.UsrCod == Ctr->RequesterUsrCod)); // I am the requester
}

View File

@ -156,13 +156,14 @@
/****************************** 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 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.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.5: Nov 06, 2016 Code refactoring in countries. (206162 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 void Cty_PutIconsCountries (void);
static void Cty_PutIconsListCountries (void);
static void Cty_PutIconToEditCountries (void);
static unsigned Cty_GetNumUsrsWhoClaimToBelongToCty (long CtyCod);
@ -515,7 +515,7 @@ void Cty_ListCountries2 (void)
const char *BgColor;
/***** 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\">"
"<tr>");
for (Order = Cty_ORDER_BY_COUNTRY;
@ -696,14 +696,14 @@ void Cty_ListCountries2 (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 *****************/
/*****************************************************************************/
static void Cty_PutIconsCountries (void)
static void Cty_PutIconsListCountries (void)
{
/***** Put icon to edit countries *****/
if (Cty_CheckIfICanEditCountries ())

View File

@ -68,7 +68,7 @@ static void Ins_PutIconsToPrintAndUpload (void);
static void Ins_ListInstitutions (void);
static bool Ins_CheckIfICanEditInstitutions (void);
static void Ins_PutIconsInstitutions (void);
static void Ins_PutIconsListInstitutions (void);
static void Ins_PutIconToEditInstitutions (void);
static void Ins_ListOneInstitutionForSeeing (struct Instit *Ins,unsigned NumIns);
static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable);
@ -662,7 +662,7 @@ static void Ins_ListInstitutions (void)
/***** Start frame *****/
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
{
@ -700,16 +700,16 @@ static void Ins_ListInstitutions (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 ****************/
/*****************************************************************************/
static void Ins_PutIconsInstitutions (void)
static void Ins_PutIconsListInstitutions (void)
{
/***** Put icon to edit countries *****/
/***** Put icon to edit institutions *****/
if (Ins_CheckIfICanEditInstitutions ())
Ins_PutIconToEditInstitutions ();

View File

@ -67,8 +67,7 @@ const unsigned Not_MaxCharsURLOnScreen[Not_NUM_TYPES_LISTING] =
/*****************************************************************************/
static bool Not_CheckIfICanEditNotices (void);
static void Not_PutIconsNotices (void);
static void Not_PutIconsListNotices (void);
static void Not_PutIconToAddNewNotice (void);
static void Not_PutButtonToAddNewNotice (void);
static void Not_GetDataAndShowNotice (long NotCod);
@ -221,16 +220,6 @@ void Not_ListFullNotices (void)
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 *******************/
/*****************************************************************************/
@ -404,7 +393,7 @@ void Not_ShowNotices (Not_Listing_t TypeNoticesListing)
Lay_StartRoundFrame (StrWidth,
Gbl.CurrentCrs.Notices.HighlightNotCod > 0 ? Txt_All_notices :
Txt_Notices,
Not_PutIconsNotices);
Not_PutIconsListNotices);
if (!NumNotices)
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 ******************/
/*****************************************************************************/
static void Not_PutIconsNotices (void)
static void Not_PutIconsListNotices (void)
{
/***** Put icon to add a new notice *****/
if (Not_CheckIfICanEditNotices ())