From a9e1f021bb20d968887172a0315ce5f09e813a8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Mon, 21 Mar 2016 17:03:12 +0100 Subject: [PATCH] Version 15.159.3 --- swad_announcement.c | 66 ++++++++++++++++++++++++++++++--------------- swad_changelog.h | 4 ++- 2 files changed, 47 insertions(+), 23 deletions(-) diff --git a/swad_announcement.c b/swad_announcement.c index 9091117e8..5129a1ded 100644 --- a/swad_announcement.c +++ b/swad_announcement.c @@ -58,11 +58,13 @@ extern struct Globals Gbl; /***************************** Internal prototypes ***************************/ /*****************************************************************************/ +static void Ann_PutIconToAddNewAnnouncement (void); +static void Ann_PutButtonToAddNewAnnouncement (void); static void Ann_DrawAnAnnouncement (long AnnCod,Ann_Status_t Status, const char *Subject,const char *Content, unsigned Roles, bool ShowAllAnnouncements, - bool ICanEditAnnouncements); + bool ICanEdit); static void Ann_PutHiddenParamAnnCod (long AnnCod); static long Ann_GetParamAnnCod (void); static void Ann_CreateAnnouncement (unsigned Roles,const char *Subject,const char *Content); @@ -73,7 +75,6 @@ static void Ann_CreateAnnouncement (unsigned Roles,const char *Subject,const cha void Ann_ShowAllAnnouncements (void) { - extern const char *Txt_New_announcement; extern const char *Txt_Announcements; extern const char *Txt_No_announcements; char Query[256]; @@ -87,19 +88,10 @@ void Ann_ShowAllAnnouncements (void) char Content[Cns_MAX_BYTES_TEXT+1]; unsigned UnsignedNum; Ann_Status_t Status; - bool ICanEditAnnouncements = (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM); - - /***** Put link (form) to create a new announcement *****/ - if (ICanEditAnnouncements) - { - fprintf (Gbl.F.Out,"
"); - Lay_PutContextualLink (ActWriAnn,NULL,"plus64x64.png", - Txt_New_announcement,Txt_New_announcement); - fprintf (Gbl.F.Out,"
"); - } + bool ICanEdit = (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM); /***** Get announcements from database *****/ - if (ICanEditAnnouncements) + if (ICanEdit) /* Select all announcements */ sprintf (Query,"SELECT AnnCod,Status,Roles,Subject,Content" " FROM announcements" @@ -122,10 +114,12 @@ void Ann_ShowAllAnnouncements (void) (unsigned) (1 << Rol_UNKNOWN)); NumAnnouncements = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get announcements"); - if (NumAnnouncements) - /***** Start frame *****/ - Lay_StartRoundFrame ("550px",Txt_Announcements,NULL); - else + /***** Start frame *****/ + Lay_StartRoundFrame ("550px",Txt_Announcements, + ICanEdit ? Ann_PutIconToAddNewAnnouncement : + NULL); + + if (!NumAnnouncements) Lay_ShowAlert (Lay_INFO,Txt_No_announcements); /***** Show the announcements *****/ @@ -160,17 +154,45 @@ void Ann_ShowAllAnnouncements (void) /* Show the announcement */ Ann_DrawAnAnnouncement (AnnCod,Status,Subject,Content, - Roles,true,ICanEditAnnouncements); + Roles,true,ICanEdit); } + /***** Button to add new announcement *****/ + if (ICanEdit) + Ann_PutButtonToAddNewAnnouncement (); + /***** End frame *****/ - if (NumAnnouncements) - Lay_EndRoundFrame (); + Lay_EndRoundFrame (); /***** Free structure that stores the query result *****/ DB_FreeMySQLResult (&mysql_res); } +/*****************************************************************************/ +/******************** Put icon to add a new announcement *********************/ +/*****************************************************************************/ + +static void Ann_PutIconToAddNewAnnouncement (void) + { + extern const char *Txt_New_announcement; + + Lay_PutContextualLink (ActWriAnn,NULL,"plus64x64.png", + Txt_New_announcement,NULL); + } + +/*****************************************************************************/ +/******************* Put button to add a new announcement ********************/ +/*****************************************************************************/ + +static void Ann_PutButtonToAddNewAnnouncement (void) + { + extern const char *Txt_New_announcement; + + Act_FormStart (ActWriAnn); + Lay_PutConfirmButton (Txt_New_announcement); + Act_FormEnd (); + } + /*****************************************************************************/ /************************** Show global announcements ************************/ /*****************************************************************************/ @@ -239,7 +261,7 @@ static void Ann_DrawAnAnnouncement (long AnnCod,Ann_Status_t Status, const char *Subject,const char *Content, unsigned Roles, bool ShowAllAnnouncements, - bool ICanEditAnnouncements) + bool ICanEdit) { extern const char *The_ClassForm[The_NUM_THEMES]; extern const char *Txt_Users; @@ -275,7 +297,7 @@ static void Ann_DrawAnAnnouncement (long AnnCod,Ann_Status_t Status, fprintf (Gbl.F.Out,"
", ContainerClass[Status]); - if (ICanEditAnnouncements) + if (ICanEdit) { /* Form to remove announcement */ Act_FormStart (ActRemAnn); diff --git a/swad_changelog.h b/swad_changelog.h index 34da2368b..1d8439e5c 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -134,13 +134,15 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 15.159.2 (2016-03-21)" +#define Log_PLATFORM_VERSION "SWAD 15.159.3 (2016-03-21)" #define CSS_FILE "swad15.157.css" #define JS_FILE "swad15.131.3.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 15.159.3: Mar 21, 2016 Icon to add new announcement integrated in frame. + Button to add new announcement. (196427 lines) Version 15.159.2: Mar 21, 2016 Button to add new notice. (196410 lines) Version 15.159.1: Mar 21, 2016 Icon to add new notice integrated in frame. (196395 lines) Version 15.159: Mar 21, 2016 Number of sent/received messages integrated in frame title. (196372 lines)