Version20.8

This commit is contained in:
acanas 2020-12-15 22:28:11 +01:00
parent 598311b0bb
commit 9778f7c09b
3 changed files with 100 additions and 93 deletions

View File

@ -2374,7 +2374,8 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.LST_EDIT_REC_HID {width:250px; color:#89BE87; font-weight:bold; font-size:11pt; height:20px; padding:0; margin:-1px; border-width:1px; border-style:solid; border-color:#ECE9D8;}
.LST_EDIT_ROWS {width:30px; color:#202020; font-weight:bold; font-size:11pt; height:20px; padding:0; margin:-1px; border-width:1px; border-style:solid; border-color:#ECE9D8;}
.LICENSE {max-width:260px;}
.PUBLIC_FILE {max-width:400px;}
.LICENSE {max-width:400px;}
/************** Paragraph (margin on top and bottom of a div) ****************/
.PAR

View File

@ -555,8 +555,8 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 20.7.4 (2020-12-01)"
#define CSS_FILE "swad20.1.1.css"
#define Log_PLATFORM_VERSION "SWAD 20.8 (2020-12-15)"
#define CSS_FILE "swad20.8.css"
#define JS_FILE "swad20.6.2.js"
/*
TODO: Juan Miguel Boyero Corral: Este verano ha habido varias personas que han solicitado incluir la funcionalidad del apartado de Actividades en SWADroid. Si lo ves viable podríamos estudiarlo.
@ -602,6 +602,7 @@ Juan Miguel.
TODO: Fix bug: un profesor editor no puede ver las carpetas de TFG (proyectos) de otros. Debería poder.
TODO: DNI de un estudiante sale erróneamente como ******* en lugar de mostrarse al ver los accesos de un estudiante a la asignatura.
Version 20.8: Dec 15, 2020 Fixed bug in file browser. Reported by Javier Fernández Baldomero. (304711 lines)
Version 20.7.4: Dec 01, 2020 Fixed bug in pagination of forums of a thread. Reported by Javier Fernández Baldomero. (304705 lines)
Version 20.7.3: Nov 26, 2020 Fixed bugs in pagination when editing assignments. (304706 lines)
Version 20.7.2: Nov 25, 2020 Changes in edition of matches. (304690 lines)

View File

@ -1418,7 +1418,7 @@ static bool Brw_GetIfFolderHasPublicFiles (const char Path[PATH_MAX + 1]);
static void Brw_ChangeFileOrFolderHiddenInDB (const char Path[PATH_MAX + 1],bool IsHidden);
static void Brw_ChangeFilePublicInDB (long PublisherUsrCod,const char *Path,
static void Brw_ChangeFilePublicInDB (struct FileMetadata *FileMetadata,
bool IsPublic,Brw_License_t License);
static long Brw_GetZoneUsrCodForFiles (void);
@ -9548,7 +9548,10 @@ void Brw_ShowFileMetadata (void)
}
Frm_StartForm (Brw_ActRecDatFile[Gbl.FileBrowser.Type]);
Brw_PutImplicitParamsFileBrowser (&Gbl.FileBrowser.FilFolLnk);
Brw_PutParamsFileBrowser (NULL, // Not used
NULL, // Not used
Brw_IS_UNKNOWN, // Not used
FileMetadata.FilCod);
}
/***** Begin box and table *****/
@ -9649,7 +9652,7 @@ void Brw_ShowFileMetadata (void)
if (ICanChangePublic) // I can change file to public
{
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"PublicFile\" name=\"PublicFile\"");
"id=\"PublicFile\" name=\"PublicFile\" class=\"PUBLIC_FILE\"");
HTM_OPTION (HTM_Type_STRING,"N",
!FileMetadata.IsPublic,false,
"%s",Txt_Private_available_to_certain_users_identified);
@ -10205,6 +10208,7 @@ void Brw_ChgFileMetadata (void)
{
extern const char *Txt_The_properties_of_file_X_have_been_saved;
struct FileMetadata FileMetadata;
bool Found;
bool IAmTheOwner;
bool PublicFileBeforeEdition;
bool PublicFileAfterEdition;
@ -10214,106 +10218,103 @@ void Brw_ChgFileMetadata (void)
/***** Get parameters related to file browser *****/
Brw_GetParAndInitFileBrowser ();
/***** Get file metadata from database *****/
Brw_GetFileMetadataByPath (&FileMetadata);
Brw_GetFileTypeSizeAndDate (&FileMetadata);
/***** Get file metadata *****/
FileMetadata.FilCod = Brw_GetParamFilCod ();
Brw_GetFileMetadataByCod (&FileMetadata);
Found = Brw_GetFileTypeSizeAndDate (&FileMetadata);
/***** Check if I can change file metadata *****/
IAmTheOwner = Brw_CheckIfIAmOwnerOfFile (FileMetadata.PublisherUsrCod);
if (Brw_CheckIfICanEditFileMetadata (IAmTheOwner))
if (Found)
{
/* Check if the file was public before the edition */
PublicFileBeforeEdition = FileMetadata.IsPublic;
/***** Check if I can change file metadata *****/
IAmTheOwner = Brw_CheckIfIAmOwnerOfFile (FileMetadata.PublisherUsrCod);
if (Brw_CheckIfICanEditFileMetadata (IAmTheOwner))
{
/* Check if the file was public before the edition */
PublicFileBeforeEdition = FileMetadata.IsPublic;
/***** Get the new file privacy and license from form *****/
switch (Gbl.FileBrowser.Type)
{
case Brw_ADMI_DOC_INS:
case Brw_ADMI_SHR_INS:
case Brw_ADMI_DOC_CTR:
case Brw_ADMI_SHR_CTR:
case Brw_ADMI_DOC_DEG:
case Brw_ADMI_SHR_DEG:
case Brw_ADMI_DOC_CRS:
case Brw_ADMI_SHR_CRS:
PublicFileAfterEdition = Brw_GetParamPublicFile ();
License = Brw_GetParLicense ();
break;
case Brw_ADMI_DOC_GRP:
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_ASG_USR:
case Brw_ADMI_ASG_CRS:
case Brw_ADMI_WRK_USR:
case Brw_ADMI_WRK_CRS:
case Brw_ADMI_DOC_PRJ:
case Brw_ADMI_ASS_PRJ:
case Brw_ADMI_BRF_USR:
PublicFileAfterEdition = false; // Files in these zones can not be public
License = Brw_GetParLicense ();
break;
default:
PublicFileAfterEdition = false; // Files in other zones can not be public
License = Brw_LICENSE_DEFAULT;
break;
}
/***** Change file metadata *****/
if (FileMetadata.FilCod > 0) // Entry exists in database
Brw_ChangeFilePublicInDB (Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.FileBrowser.FilFolLnk.Full,
PublicFileAfterEdition,License);
else // No entry in database
FileMetadata.FilCod = Brw_AddPathToDB (Gbl.Usrs.Me.UsrDat.UsrCod,FileMetadata.FilFolLnk.Type,
Gbl.FileBrowser.FilFolLnk.Full,
PublicFileAfterEdition,License);
/***** Remove the affected clipboards *****/
Brw_RemoveAffectedClipboards (Gbl.FileBrowser.Type,
Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Usrs.Other.UsrDat.UsrCod);
/***** Insert file into public social activity *****/
if (!PublicFileBeforeEdition &&
PublicFileAfterEdition) // Only if file has changed from private to public
/***** Get the new file privacy and license from form *****/
switch (Gbl.FileBrowser.Type)
{
case Brw_ADMI_DOC_INS:
TL_StoreAndPublishNote (TL_NOTE_INS_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_SHR_INS:
TL_StoreAndPublishNote (TL_NOTE_INS_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_DOC_CTR:
TL_StoreAndPublishNote (TL_NOTE_CTR_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_SHR_CTR:
TL_StoreAndPublishNote (TL_NOTE_CTR_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_DOC_DEG:
TL_StoreAndPublishNote (TL_NOTE_DEG_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_SHR_DEG:
TL_StoreAndPublishNote (TL_NOTE_DEG_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_DOC_CRS:
TL_StoreAndPublishNote (TL_NOTE_CRS_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_SHR_CRS:
TL_StoreAndPublishNote (TL_NOTE_CRS_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
PublicFileAfterEdition = Brw_GetParamPublicFile ();
License = Brw_GetParLicense ();
break;
case Brw_ADMI_DOC_GRP:
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_ASG_USR:
case Brw_ADMI_ASG_CRS:
case Brw_ADMI_WRK_USR:
case Brw_ADMI_WRK_CRS:
case Brw_ADMI_DOC_PRJ:
case Brw_ADMI_ASS_PRJ:
case Brw_ADMI_BRF_USR:
PublicFileAfterEdition = false; // Files in these zones can not be public
License = Brw_GetParLicense ();
break;
default:
PublicFileAfterEdition = false; // Files in other zones can not be public
License = Brw_LICENSE_DEFAULT;
break;
}
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_The_properties_of_file_X_have_been_saved,
Gbl.FileBrowser.FilFolLnk.Name);
/***** Change file metadata *****/
Brw_ChangeFilePublicInDB (&FileMetadata,PublicFileAfterEdition,License);
/***** Remove the affected clipboards *****/
Brw_RemoveAffectedClipboards (Gbl.FileBrowser.Type,
Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Usrs.Other.UsrDat.UsrCod);
/***** Insert file into public social activity *****/
if (!PublicFileBeforeEdition &&
PublicFileAfterEdition) // Only if file has changed from private to public
switch (Gbl.FileBrowser.Type)
{
case Brw_ADMI_DOC_INS:
TL_StoreAndPublishNote (TL_NOTE_INS_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_SHR_INS:
TL_StoreAndPublishNote (TL_NOTE_INS_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_DOC_CTR:
TL_StoreAndPublishNote (TL_NOTE_CTR_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_SHR_CTR:
TL_StoreAndPublishNote (TL_NOTE_CTR_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_DOC_DEG:
TL_StoreAndPublishNote (TL_NOTE_DEG_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_SHR_DEG:
TL_StoreAndPublishNote (TL_NOTE_DEG_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_DOC_CRS:
TL_StoreAndPublishNote (TL_NOTE_CRS_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
case Brw_ADMI_SHR_CRS:
TL_StoreAndPublishNote (TL_NOTE_CRS_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
break;
default:
break;
}
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_The_properties_of_file_X_have_been_saved,
Gbl.FileBrowser.FilFolLnk.Name);
}
else
/***** Write error message and exit *****/
Lay_NoPermissionExit ();
}
else
/***** Write error message and exit *****/
Lay_NoPermissionExit ();
/***** Show again the file browser *****/
Brw_ShowAgainFileBrowserOrWorks ();
@ -10979,24 +10980,28 @@ static void Brw_ChangeFileOrFolderHiddenInDB (const char Path[PATH_MAX + 1],bool
/******* Change publisher, public and license of file in the database ********/
/*****************************************************************************/
static void Brw_ChangeFilePublicInDB (long PublisherUsrCod,const char *Path,
static void Brw_ChangeFilePublicInDB (struct FileMetadata *FileMetadata,
bool IsPublic,Brw_License_t License)
{
long Cod = Brw_GetCodForFiles ();
long Cod = Brw_GetCodForFiles ();
long ZoneUsrCod = Brw_GetZoneUsrCodForFiles ();
/***** Trivial check *****/
if (FileMetadata->FilCod <= 0)
return;
/***** Change publisher, public and license of file in database *****/
DB_QueryUPDATE ("can not change metadata of a file in database",
"UPDATE files SET PublisherUsrCod=%ld,Public='%c',License=%u"
"UPDATE files SET Public='%c',License=%u"
" WHERE FileBrowser=%u AND Cod=%ld AND ZoneUsrCod=%ld"
" AND Path='%s'",
PublisherUsrCod,
" AND FilCod=%ld AND Path='%s'",
IsPublic ? 'Y' :
'N',
(unsigned) License,
(unsigned) Brw_FileBrowserForDB_files[Gbl.FileBrowser.Type],
Cod,ZoneUsrCod,
Path);
FileMetadata->FilCod,
FileMetadata->FilFolLnk.Full);
}
/*****************************************************************************/