From 611deb2e7aa4e06923de5bf30c3a21dae0051160 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Sun, 3 Jan 2016 01:13:57 +0100 Subject: [PATCH] Version 15.93 --- swad_changelog.h | 6 +- swad_file_browser.c | 50 +++++++------- swad_file_browser.h | 2 + swad_notification.c | 162 +++++++++++++++++++++++--------------------- swad_social.c | 147 +++++++++++++++------------------------- 5 files changed, 167 insertions(+), 200 deletions(-) diff --git a/swad_changelog.h b/swad_changelog.h index a529ffe3c..439ef5c4f 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -111,19 +111,21 @@ // TODO: Reply to all // TODO: Hour in exam announcement should start at six a.m. // TODO: When a file, notice, etc. is removed, it should be removed from social events? -// TODO: Cange "Actividad pública" to "Actividad de Antonio" in user's profile +// TODO: Change "Actividad pública" to "Actividad de Antonio" in user's profile +// TODO: Put parameter FilCod instead of Path to go to a file in Notifications and Social? /*****************************************************************************/ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 15.92 (2016-01-02)" +#define Log_PLATFORM_VERSION "SWAD 15.93 (2016-01-03)" #define CSS_FILE "swad15.88.1.css" #define JS_FILE "swad15.77.7.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.93: Jan 03, 2016 Fixing bugs in file metadata of files in institution, centre and degree zones. (190335 lines) Version 15.92: Jan 02, 2016 Fixing bugs in file metadata of files in institution, centre and degree zones. Not finished. (190365 lines) 1 change necessary in database: ALTER TABLE social_notes DROP COLUMN DegCod; diff --git a/swad_file_browser.c b/swad_file_browser.c index 7b64def2e..b2c27e4e8 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -2229,6 +2229,28 @@ static void Brw_GetDataCurrentGrp (void) } } +/*****************************************************************************/ +/**************** Write hidden parameter with code of file *******************/ +/*****************************************************************************/ +/* +void Brw_PutHiddenParamFilCod (long FilCod) + { + Par_PutHiddenParamLong ("FilCod",FilCod); + } +*/ +/*****************************************************************************/ +/********************* Get parameter with code of file ***********************/ +/*****************************************************************************/ +/* +long Brw_GetParamFilCod (void) + { + char LongStr[1+10+1]; + + ***** Get parameter with code of file ***** + Par_GetParToText ("FilCod",LongStr,1+10); + return Str_ConvertStrCodToLongCod (LongStr); + } +*/ /*****************************************************************************/ /** Put hidden params. with the path in the tree and the name of file/folder */ /*****************************************************************************/ @@ -8868,22 +8890,15 @@ void Brw_ShowFileMetadata (void) /***** Get file metadata *****/ Brw_GetFileMetadataByPath (&FileMetadata); + // Brw_GetFileMetadataByCod (&FileMetadata); Found = Brw_GetFileTypeSizeAndDate (&FileMetadata); - sprintf (Gbl.Message,"Found = %s; FileMetadata.FilCod = %ld", - Found ? "true" : "false", - FileMetadata.FilCod); - Lay_ShowAlert (Lay_INFO,Gbl.Message); - if (Found) { if (FileMetadata.FilCod <= 0) // No entry for this file in database table of files - { /* Add entry to the table of files/folders */ FileMetadata.FilCod = Brw_AddPathToDB (-1L,FileMetadata.FileType, Gbl.FileBrowser.Priv.FullPathInTree,false,Brw_LICENSE_DEFAULT); - // Brw_GetFileMetadataByCod (&FileMetadata); - } /***** Check if I can view this file. It could be marked as hidden or in a hidden folder *****/ @@ -9273,12 +9288,9 @@ void Brw_DownloadFile (void) if (Found) { if (FileMetadata.FilCod <= 0) // No entry for this file in database table of files - { /* Add entry to the table of files/folders */ FileMetadata.FilCod = Brw_AddPathToDB (-1L,FileMetadata.FileType, Gbl.FileBrowser.Priv.FullPathInTree,false,Brw_LICENSE_DEFAULT); - // Brw_GetFileMetadataByCod (&FileMetadata); - } /***** Check if I can view this file. It could be marked as hidden or in a hidden folder *****/ @@ -9948,10 +9960,6 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata) MYSQL_ROW row; unsigned UnsignedNum; - sprintf (Gbl.Message,"FileMetadata->FilCod = %ld", - FileMetadata->FilCod); - Lay_ShowAlert (Lay_INFO,Gbl.Message); - /***** Get metadata of a file from database *****/ sprintf (Query,"SELECT FilCod,FileBrowser,Cod,ZoneUsrCod," "PublisherUsrCod,FileType,Path,Hidden,Public,License" @@ -9959,10 +9967,6 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata) " WHERE FilCod='%ld'", FileMetadata->FilCod); - sprintf (Gbl.Message,"Query = %s", - Query); - Lay_ShowAlert (Lay_INFO,Gbl.Message); - if (DB_QuerySELECT (Query,&mysql_res,"can not get file metadata")) { /* Get row */ @@ -9996,10 +10000,6 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata) strncpy (FileMetadata->Path,row[6],PATH_MAX); FileMetadata->Path[PATH_MAX] = '\0'; - sprintf (Gbl.Message,"FileMetadata->Path = %s", - FileMetadata->Path); - Lay_ShowAlert (Lay_INFO,Gbl.Message); - /* Is a hidden file? (row[7]) */ switch (Gbl.FileBrowser.Type) { @@ -10063,10 +10063,6 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata) /***** Free structure that stores the query result *****/ DB_FreeMySQLResult (&mysql_res); - sprintf (Gbl.Message,"FileMetadata->Path = %s", - FileMetadata->Path); - Lay_ShowAlert (Lay_INFO,Gbl.Message); - /***** Fill some values with 0 (unused at this moment) *****/ FileMetadata->Size = (off_t) 0; FileMetadata->Time = (time_t) 0; diff --git a/swad_file_browser.h b/swad_file_browser.h index c4ddbdd9b..b64b0091e 100644 --- a/swad_file_browser.h +++ b/swad_file_browser.h @@ -139,6 +139,8 @@ struct FileMetadata /*****************************************************************************/ void Brw_GetParAndInitFileBrowser (void); +// void Brw_PutHiddenParamFilCod (long FilCod); +// long Brw_GetParamFilCod (void); void Brw_PutParamsPathAndFile (Brw_FileType_t FileType,const char *PathInTree,const char *FileFolderName); void Brw_InitializeFileBrowser (void); bool Brw_CheckIfExistsFolderAssigmentForAnyUsr (const char *FolderName); diff --git a/swad_notification.c b/swad_notification.c index 63e05c4e1..b4a07060f 100644 --- a/swad_notification.c +++ b/swad_notification.c @@ -227,7 +227,7 @@ static const char *Ntf_Icons[Ntf_NUM_NOTIFY_EVENTS] = static void Ntf_WriteFormAllNotifications (bool AllNotifications); static bool Ntf_GetAllNotificationsFromForm (void); -static void Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent, +static bool Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent, long CrsCod,long Cod); static void Ntf_UpdateMyLastAccessToNotifications (void); static void Ntf_SendPendingNotifByEMailToOneUsr (struct UsrData *ToUsrDat,unsigned *NumNotif,unsigned *NumMails); @@ -439,17 +439,19 @@ void Ntf_ShowMyNotifications (void) fprintf (Gbl.F.Out,"" "", ClassBackground); + if (PutLink) + PutLink = Ntf_StartFormGoToAction (NotifyEvent,Crs.CrsCod,Cod); + if (PutLink) { - Ntf_StartFormGoToAction (NotifyEvent,Crs.CrsCod,Cod); - fprintf (Gbl.F.Out,"", - Gbl.Prefs.IconsURL, - Ntf_Icons[NotifyEvent], - Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent], - Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent]); - Act_FormEnd (); + fprintf (Gbl.F.Out,"", + Gbl.Prefs.IconsURL, + Ntf_Icons[NotifyEvent], + Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent], + Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent]); + Act_FormEnd (); } else fprintf (Gbl.F.Out,"", ClassBackground); + if (PutLink) + PutLink = Ntf_StartFormGoToAction (NotifyEvent,Crs.CrsCod,Cod); + if (PutLink) { - Ntf_StartFormGoToAction (NotifyEvent,Crs.CrsCod,Cod); Act_LinkFormSubmit (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent],ClassAnchor); fprintf (Gbl.F.Out,"%s", Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent]); @@ -487,10 +491,10 @@ void Ntf_ShowMyNotifications (void) NotifyEvent == Ntf_EVENT_FORUM_REPLY) { if (PutLink) - { - Ntf_StartFormGoToAction (NotifyEvent,Crs.CrsCod,Cod); + PutLink = Ntf_StartFormGoToAction (NotifyEvent,Crs.CrsCod,Cod); + + if (PutLink) Act_LinkFormSubmit (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent],ClassAnchor); - } else fprintf (Gbl.F.Out,"",ClassAnchor); fprintf (Gbl.F.Out,"%s: %s",Txt_Forum,ForumName); @@ -505,10 +509,10 @@ void Ntf_ShowMyNotifications (void) else if (Crs.CrsCod > 0) { if (PutLink) - { - Ntf_StartFormGoToAction (NotifyEvent,Crs.CrsCod,Cod); + PutLink = Ntf_StartFormGoToAction (NotifyEvent,Crs.CrsCod,Cod); + + if (PutLink) Act_LinkFormSubmit (Txt_NOTIFY_EVENTS_SINGULAR[NotifyEvent],ClassAnchor); - } else fprintf (Gbl.F.Out,"",ClassAnchor); fprintf (Gbl.F.Out,"%s: %s",Txt_Course,Crs.ShortName); @@ -632,8 +636,9 @@ static bool Ntf_GetAllNotificationsFromForm (void) /*****************************************************************************/ /*********** Put form to go to an action depending on the event **************/ /*****************************************************************************/ +// Return the value of Gbl.InsideForm (true if form is started) -static void Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent, +static bool Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent, long CrsCod,long Cod) { extern const Act_Action_t For_ActionsSeeFor[For_NUM_TYPES_FORUM]; @@ -652,62 +657,58 @@ static void Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent, case Ntf_EVENT_DOCUMENT_FILE: case Ntf_EVENT_SHARED_FILE: case Ntf_EVENT_MARKS_FILE: - if (Cod > 0) // File code + FileMetadata.FilCod = Cod; + PathUntilFileName[0] = '\0'; + FileName[0] = '\0'; + if (FileMetadata.FilCod > 0) { - FileMetadata.FilCod = Cod; Brw_GetFileMetadataByCod (&FileMetadata); - Brw_GetCrsGrpFromFileMetadata (FileMetadata.FileBrowser,FileMetadata.Cod, - &InsCod,&CtrCod,&DegCod,&CrsCod,&GrpCod); - Str_SplitFullPathIntoPathAndFileName (FileMetadata.Path, - PathUntilFileName, - FileName); + if (FileMetadata.FilCod > 0) + { + Brw_GetCrsGrpFromFileMetadata (FileMetadata.FileBrowser,FileMetadata.Cod, + &InsCod,&CtrCod,&DegCod,&CrsCod,&GrpCod); + Str_SplitFullPathIntoPathAndFileName (FileMetadata.Path, + PathUntilFileName, + FileName); + } } switch (NotifyEvent) { case Ntf_EVENT_DOCUMENT_FILE: - Action = (Cod > 0) ? ((GrpCod > 0) ? ActReqDatSeeDocGrp : - ((CrsCod > 0) ? ActReqDatSeeDocCrs : - ((DegCod > 0) ? ActReqDatSeeDocDeg : - (CtrCod > 0) ? ActReqDatSeeDocCtr : - ActReqDatSeeDocIns))) : - ((GrpCod > 0) ? ActSeeDocGrp : - ((CrsCod > 0) ? ActSeeDocCrs : - ((DegCod > 0) ? ActSeeDocDeg : - (CtrCod > 0) ? ActSeeDocCtr : - ActSeeDocIns))); + Action = (FileMetadata.FilCod > 0) ? ((GrpCod > 0) ? ActReqDatSeeDocGrp : + ((CrsCod > 0) ? ActReqDatSeeDocCrs : + ((DegCod > 0) ? ActReqDatSeeDocDeg : + (CtrCod > 0) ? ActReqDatSeeDocCtr : + ActReqDatSeeDocIns))) : + ActUnk; break; case Ntf_EVENT_SHARED_FILE: - Action = (Cod > 0) ? ((GrpCod > 0) ? ActReqDatShaGrp : - ActReqDatShaCrs) : - ((GrpCod > 0) ? ActAdmShaGrp : - ActAdmShaCrs); - Action = (Cod > 0) ? ((GrpCod > 0) ? ActReqDatShaGrp : - ((CrsCod > 0) ? ActReqDatShaCrs : - ((DegCod > 0) ? ActReqDatShaDeg : - (CtrCod > 0) ? ActReqDatShaCtr : - ActReqDatShaIns))) : - ((GrpCod > 0) ? ActAdmShaGrp : - ((CrsCod > 0) ? ActAdmShaCrs : - ((DegCod > 0) ? ActAdmShaDeg : - (CtrCod > 0) ? ActAdmShaCtr : - ActAdmShaIns))); + Action = (FileMetadata.FilCod > 0) ? ((GrpCod > 0) ? ActReqDatShaGrp : + ((CrsCod > 0) ? ActReqDatShaCrs : + ((DegCod > 0) ? ActReqDatShaDeg : + (CtrCod > 0) ? ActReqDatShaCtr : + ActReqDatShaIns))) : + ActUnk; break; case Ntf_EVENT_MARKS_FILE: - Action = (Cod > 0) ? ((GrpCod > 0) ? ActReqDatSeeMrkGrp : - ActReqDatSeeMrkCrs) : - ((GrpCod > 0) ? ActSeeMrkGrp : - ActSeeMrkCrs); + Action = (FileMetadata.FilCod > 0) ? ((GrpCod > 0) ? ActReqDatSeeMrkGrp : + ActReqDatSeeMrkCrs) : + ActUnk; break; default: // Not aplicable here break; } - Act_FormStart (Action); - // Grp_PutParamGrpCod (GrpCod > 0 ? GrpCod : - // -1L); - if (GrpCod > 0) - Grp_PutParamGrpCod (GrpCod); - if (Cod > 0) // File code - Brw_PutParamsPathAndFile (Brw_IS_UNKNOWN,PathUntilFileName,FileName); // TODO: Brw_IS_UNKNOWN should be changed to Brw_IS_FILE or Brw_IS_LINK + if (Action != ActUnk) + { + Act_FormStart (Action); + if (GrpCod > 0) + Grp_PutParamGrpCod (GrpCod); + if (FileMetadata.FilCod > 0) + { + // Brw_PutHiddenParamFilCod (FileMetadata.FilCod); + Brw_PutParamsPathAndFile (FileMetadata.FileType,PathUntilFileName,FileName); + } + } break; case Ntf_EVENT_NOTICE: Act_FormStart (Ntf_DefaultActions[NotifyEvent]); @@ -728,26 +729,31 @@ static void Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent, } /***** Parameter to go to another course/degree/centre/institution *****/ - if (CrsCod > 0) // Course specified + if (Gbl.InsideForm) { - if (CrsCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course - Crs_PutParamCrsCod (CrsCod); // Go to another course - } - else if (DegCod > 0) // Degree specified - { - if (DegCod != Gbl.CurrentDeg.Deg.DegCod) // Not the current degree - Deg_PutParamDegCod (DegCod); // Go to another degree - } - else if (CtrCod > 0) // Centre specified - { - if (CtrCod != Gbl.CurrentCtr.Ctr.CtrCod) // Not the current centre - Ctr_PutParamCtrCod (CtrCod); // Go to another centre - } - else if (InsCod > 0) // Institution specified - { - if (InsCod != Gbl.CurrentIns.Ins.InsCod) // Not the current institution - Ins_PutParamInsCod (InsCod); // Go to another institution + if (CrsCod > 0) // Course specified + { + if (CrsCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course + Crs_PutParamCrsCod (CrsCod); // Go to another course + } + else if (DegCod > 0) // Degree specified + { + if (DegCod != Gbl.CurrentDeg.Deg.DegCod) // Not the current degree + Deg_PutParamDegCod (DegCod); // Go to another degree + } + else if (CtrCod > 0) // Centre specified + { + if (CtrCod != Gbl.CurrentCtr.Ctr.CtrCod) // Not the current centre + Ctr_PutParamCtrCod (CtrCod); // Go to another centre + } + else if (InsCod > 0) // Institution specified + { + if (InsCod != Gbl.CurrentIns.Ins.InsCod) // Not the current institution + Ins_PutParamInsCod (InsCod); // Go to another institution + } } + + return Gbl.InsideForm; } /*****************************************************************************/ diff --git a/swad_social.c b/swad_social.c index 4d14b5df5..b9e250b31 100644 --- a/swad_social.c +++ b/swad_social.c @@ -58,20 +58,20 @@ static const Act_Action_t Soc_DefaultActions[Soc_NUM_SOCIAL_NOTES] = ActUnk, // Soc_NOTE_UNKNOWN /* Institution tab */ - ActSeeDocIns, // Soc_NOTE_INS_DOC_PUB_FILE - ActAdmShaIns, // Soc_NOTE_INS_SHA_PUB_FILE + ActReqDatSeeDocIns, // Soc_NOTE_INS_DOC_PUB_FILE + ActReqDatShaIns, // Soc_NOTE_INS_SHA_PUB_FILE /* Centre tab */ - ActSeeDocCtr, // Soc_NOTE_CTR_DOC_PUB_FILE - ActAdmShaCtr, // Soc_NOTE_CTR_SHA_PUB_FILE + ActReqDatSeeDocCtr, // Soc_NOTE_CTR_DOC_PUB_FILE + ActReqDatShaCtr, // Soc_NOTE_CTR_SHA_PUB_FILE /* Degree tab */ - ActSeeDocDeg, // Soc_NOTE_DEG_DOC_PUB_FILE - ActAdmShaDeg, // Soc_NOTE_DEG_SHA_PUB_FILE + ActReqDatSeeDocDeg, // Soc_NOTE_DEG_DOC_PUB_FILE + ActReqDatShaDeg, // Soc_NOTE_DEG_SHA_PUB_FILE /* Course tab */ - ActSeeDocCrs, // Soc_NOTE_CRS_DOC_PUB_FILE - ActAdmShaCrs, // Soc_NOTE_CRS_SHA_PUB_FILE + ActReqDatSeeDocCrs, // Soc_NOTE_CRS_DOC_PUB_FILE + ActReqDatShaCrs, // Soc_NOTE_CRS_SHA_PUB_FILE /* Assessment tab */ ActSeeExaAnn, // Soc_NOTE_EXAM_ANNOUNCEMENT @@ -135,8 +135,8 @@ static void Soc_WriteSocialNote (const struct SocialPublishing *SocPub, bool WritingTimeline,bool LastInList); static void Soc_WriteNoteDate (time_t TimeUTC); static void Soc_GetAndWriteSocialPost (long PstCod); -static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType, - long CrsCod,long Cod); +static void Soc_PutFormGoToAction (Soc_NoteType_t NoteType, + long CrsCod,long Cod); static void Soc_GetNoteSummary (const struct SocialNote *SocNot, char *SummaryStr,unsigned MaxChars); static void Soc_PublishSocialNoteInTimeline (struct SocialPublishing *SocPub); @@ -303,11 +303,6 @@ static void Soc_ShowTimeline (const char *Query,Act_Action_t UpdateAction) /* Get and write social note */ SocNot.NotCod = SocPub.NotCod; Soc_GetDataOfSocialNoteByCod (&SocNot); - - sprintf (Gbl.Message,"SocNot.Cod = %ld", - SocNot.Cod); - Lay_ShowAlert (Lay_INFO,Gbl.Message); - Soc_WriteSocialNote (&SocPub,&SocNot,true,NumPub == NumPublishings - 1); } @@ -354,8 +349,6 @@ static void Soc_WriteSocialNote (const struct SocialPublishing *SocPub, const struct SocialNote *SocNot, bool WritingTimeline,bool LastInList) { - extern const char *The_ClassForm[The_NUM_THEMES]; - extern const char *Txt_SOCIAL_NOTE[Soc_NUM_SOCIAL_NOTES]; extern const char *Txt_Forum; extern const char *Txt_Course; extern const char *Txt_Degree; @@ -428,10 +421,6 @@ static void Soc_WriteSocialNote (const struct SocialPublishing *SocPub, /* Get institution data */ Ins.InsCod = SocNot->HieCod; Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA); - - sprintf (Gbl.Message,"SocNot->Cod = %ld", - SocNot->Cod); - Lay_ShowAlert (Lay_INFO,Gbl.Message); break; case Soc_NOTE_CTR_DOC_PUB_FILE: case Soc_NOTE_CTR_SHA_PUB_FILE: @@ -472,13 +461,8 @@ static void Soc_WriteSocialNote (const struct SocialPublishing *SocPub, } /* Write note type */ - fprintf (Gbl.F.Out,"
"); - Soc_StartFormGoToAction (SocNot->NoteType,Crs.CrsCod,SocNot->Cod); - Act_LinkFormSubmit (Txt_SOCIAL_NOTE[SocNot->NoteType], - The_ClassForm[Gbl.Prefs.Theme]); - fprintf (Gbl.F.Out,"%s", - Txt_SOCIAL_NOTE[SocNot->NoteType]); - Act_FormEnd (); + fprintf (Gbl.F.Out,"
"); + Soc_PutFormGoToAction (SocNot->NoteType,Crs.CrsCod,SocNot->Cod); fprintf (Gbl.F.Out,"
"); /* Write location in hierarchy */ @@ -624,9 +608,11 @@ static void Soc_GetAndWriteSocialPost (long PstCod) /********* Put form to go to an action depending on the social note **********/ /*****************************************************************************/ -static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType,long CrsCod,long Cod) +static void Soc_PutFormGoToAction (Soc_NoteType_t NoteType,long CrsCod,long Cod) { extern const Act_Action_t For_ActionsSeeFor[For_NUM_TYPES_FORUM]; + extern const char *The_ClassForm[The_NUM_THEMES]; + extern const char *Txt_SOCIAL_NOTE[Soc_NUM_SOCIAL_NOTES]; struct FileMetadata FileMetadata; long InsCod = -1L; long CtrCod = -1L; @@ -634,7 +620,6 @@ static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType,long CrsCod,long Co long GrpCod = -1L; char PathUntilFileName[PATH_MAX+1]; char FileName[NAME_MAX+1]; - Act_Action_t Action = ActUnk; // Initialized to avoid warning /***** Parameters depending on the type of note *****/ switch (NoteType) @@ -647,14 +632,12 @@ static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType,long CrsCod,long Co case Soc_NOTE_DEG_SHA_PUB_FILE: case Soc_NOTE_CRS_DOC_PUB_FILE: case Soc_NOTE_CRS_SHA_PUB_FILE: - if (Cod > 0) // File code + FileMetadata.FilCod = Cod; + PathUntilFileName[0] = '\0'; + FileName[0] = '\0'; + if (FileMetadata.FilCod > 0) { - sprintf (Gbl.Message,"Cod = %ld", - Cod); - Lay_ShowAlert (Lay_INFO,Gbl.Message); - - FileMetadata.FilCod = Cod; - Brw_GetFileMetadataByCod (&FileMetadata); // TODO: Check all calls to this function!!!!! + Brw_GetFileMetadataByCod (&FileMetadata); if (FileMetadata.FilCod > 0) // Found { Brw_GetCrsGrpFromFileMetadata (FileMetadata.FileBrowser,FileMetadata.Cod, @@ -663,46 +646,13 @@ static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType,long CrsCod,long Co PathUntilFileName, FileName); } - Cod = FileMetadata.FilCod; // If file not found ==> FileMetadata.FilCod == -1 - - sprintf (Gbl.Message,"PathUntilFileName = %s; FileName = %s; FileMetadata.FilCod = %ld", - PathUntilFileName,FileName, - FileMetadata.FilCod); - Lay_ShowAlert (Lay_INFO,Gbl.Message); } - switch (NoteType) + if (FileMetadata.FilCod > 0) { - case Soc_NOTE_INS_DOC_PUB_FILE: - Action = (Cod > 0) ? ActReqDatSeeDocIns : ActSeeDocIns; - break; - case Soc_NOTE_INS_SHA_PUB_FILE: - Action = (Cod > 0) ? ActReqDatShaIns : ActAdmShaIns; - break; - case Soc_NOTE_CTR_DOC_PUB_FILE: - Action = (Cod > 0) ? ActReqDatSeeDocCtr : ActSeeDocCtr; - break; - case Soc_NOTE_CTR_SHA_PUB_FILE: - Action = (Cod > 0) ? ActReqDatShaCtr : ActAdmShaCtr; - break; - case Soc_NOTE_DEG_DOC_PUB_FILE: - Action = (Cod > 0) ? ActReqDatSeeDocDeg : ActSeeDocDeg; - break; - case Soc_NOTE_DEG_SHA_PUB_FILE: - Action = (Cod > 0) ? ActReqDatShaDeg : ActAdmShaDeg; - break; - case Soc_NOTE_CRS_DOC_PUB_FILE: - Action = (Cod > 0) ? ActReqDatSeeDocCrs : ActSeeDocCrs; - break; - case Soc_NOTE_CRS_SHA_PUB_FILE: - Action = (Cod > 0) ? ActReqDatShaCrs : ActAdmShaCrs; - break; - default: // Not aplicable here - break; + Act_FormStart (Soc_DefaultActions[NoteType]); + // Brw_PutHiddenParamFilCod (FileMetadata.FilCod); + Brw_PutParamsPathAndFile (FileMetadata.FileType,PathUntilFileName,FileName); } - Act_FormStart (Action); - // Grp_PutParamGrpCod (-1L); - if (Cod > 0) // File code - Brw_PutParamsPathAndFile (Brw_IS_FILE,PathUntilFileName,FileName); break; case Soc_NOTE_NOTICE: Act_FormStart (Soc_DefaultActions[NoteType]); @@ -717,27 +667,38 @@ static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType,long CrsCod,long Co break; } - /***** Parameter to go to another course *****/ - if (CrsCod > 0) // Course specified + if (Gbl.InsideForm) { - if (CrsCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course - Crs_PutParamCrsCod (CrsCod); // Go to another course - } - else if (DegCod > 0) // Degree specified - { - if (DegCod != Gbl.CurrentDeg.Deg.DegCod) // Not the current degree - Deg_PutParamDegCod (DegCod); // Go to another degree - } - else if (CtrCod > 0) // Centre specified - { - if (CtrCod != Gbl.CurrentCtr.Ctr.CtrCod) // Not the current centre - Ctr_PutParamCtrCod (CtrCod); // Go to another centre - } - else if (InsCod > 0) // Institution specified - { - if (InsCod != Gbl.CurrentIns.Ins.InsCod) // Not the current institution - Ins_PutParamInsCod (InsCod); // Go to another institution + /***** Parameter to go to another place in hierarchy *****/ + if (CrsCod > 0) // Course specified + { + if (CrsCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course + Crs_PutParamCrsCod (CrsCod); // Go to another course + } + else if (DegCod > 0) // Degree specified + { + if (DegCod != Gbl.CurrentDeg.Deg.DegCod) // Not the current degree + Deg_PutParamDegCod (DegCod); // Go to another degree + } + else if (CtrCod > 0) // Centre specified + { + if (CtrCod != Gbl.CurrentCtr.Ctr.CtrCod) // Not the current centre + Ctr_PutParamCtrCod (CtrCod); // Go to another centre + } + else if (InsCod > 0) // Institution specified + { + if (InsCod != Gbl.CurrentIns.Ins.InsCod) // Not the current institution + Ins_PutParamInsCod (InsCod); // Go to another institution + } + + /***** Link and end form *****/ + Act_LinkFormSubmit (Txt_SOCIAL_NOTE[NoteType], + The_ClassForm[Gbl.Prefs.Theme]); + fprintf (Gbl.F.Out,"%s",Txt_SOCIAL_NOTE[NoteType]); + Act_FormEnd (); } + else // Not inside a form + fprintf (Gbl.F.Out,"%s",Txt_SOCIAL_NOTE[NoteType]); } /*****************************************************************************/