mirror of https://github.com/acanas/swad-core.git
Version 17.19
This commit is contained in:
parent
39294f3b5e
commit
f15e79f0a0
|
@ -248,19 +248,20 @@
|
|||
|
||||
// TODO: "Administrar varios profesores no editores" -> debería poder hacerlo un profesor (Perico)
|
||||
|
||||
// TODO: Copy icon/link64x64.gif to public directory in swad.ugr.es and openswad.org
|
||||
// TODO: Mover PROFILE.Briefcase a FILES.Briefcase en la ayuda de GitHub (aquí ya está cambiado)
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 17.18 (2017-10-06)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 17.19 (2017-10-06)"
|
||||
#define CSS_FILE "swad17.0.css"
|
||||
#define JS_FILE "swad17.17.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 17.19: Oct 06, 2017 New file browser for project documents. Not finished. (232781 lines)
|
||||
Version 17.18: Oct 06, 2017 New view in projects for project file browser. (232547 lines)
|
||||
1 change necessary in database:
|
||||
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1697','es','N','Editar archivos proyecto');
|
||||
|
|
|
@ -336,9 +336,15 @@
|
|||
/* Folders for courses, inside public and private swad directories */
|
||||
#define Cfg_FOLDER_CRS "crs" // If not exists, it should be created during installation inside swad private and public directory!
|
||||
|
||||
/* Folders for groups, inside public and private swad directories */
|
||||
#define Cfg_FOLDER_GRP "grp" // Created automatically the first time it is accessed
|
||||
|
||||
/* Folder for users, inside private swad directory */
|
||||
#define Cfg_FOLDER_USR "usr" // Created automatically the first time it is accessed
|
||||
|
||||
/* Folders for projects, inside public and private swad directories */
|
||||
#define Cfg_FOLDER_PRJ "prj" // Created automatically the first time it is accessed
|
||||
|
||||
/* Folder for temporary HTML output of this CGI, inside private swad directory */
|
||||
#define Cfg_FOLDER_OUT "out" // Created automatically the first time it is accessed
|
||||
|
||||
|
|
|
@ -130,6 +130,7 @@ const Brw_FileBrowser_t Brw_FileBrowserForDB_files[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
Brw_ADMI_SHARE_INS, // Brw_ADMI_SHARE_INS = 24
|
||||
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
||||
Brw_ADMI_TEACH_GRP, // Brw_ADMI_TEACH_GRP = 26
|
||||
Brw_ADMI_DOCUM_PRJ, // Brw_ADMI_DOCUM_PRJ = 27
|
||||
};
|
||||
// Browsers viewable shown in search for documents
|
||||
const Brw_FileBrowser_t Brw_FileBrowserForFoundDocs[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
|
@ -161,6 +162,7 @@ const Brw_FileBrowser_t Brw_FileBrowserForFoundDocs[Brw_NUM_TYPES_FILE_BROWSER]
|
|||
Brw_ADMI_SHARE_INS, // Brw_ADMI_SHARE_INS = 24
|
||||
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
||||
Brw_ADMI_TEACH_GRP, // Brw_ADMI_TEACH_GRP = 26
|
||||
Brw_ADMI_DOCUM_PRJ, // Brw_ADMI_DOCUM_PRJ = 27
|
||||
};
|
||||
// Browsers types for database "clipboard" table
|
||||
static const Brw_FileBrowser_t Brw_FileBrowserForDB_clipboard[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
|
@ -192,6 +194,7 @@ static const Brw_FileBrowser_t Brw_FileBrowserForDB_clipboard[Brw_NUM_TYPES_FILE
|
|||
Brw_ADMI_SHARE_INS, // Brw_ADMI_SHARE_INS = 24
|
||||
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
||||
Brw_ADMI_TEACH_GRP, // Brw_ADMI_TEACH_GRP = 26
|
||||
Brw_ADMI_DOCUM_PRJ, // Brw_ADMI_DOCUM_PRJ = 27
|
||||
};
|
||||
// Browsers types for database "expanded_folders" table
|
||||
static const Brw_FileBrowser_t Brw_FileBrowserForDB_expanded_folders[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
|
@ -223,6 +226,7 @@ static const Brw_FileBrowser_t Brw_FileBrowserForDB_expanded_folders[Brw_NUM_TYP
|
|||
Brw_ADMI_SHARE_INS, // Brw_ADMI_SHARE_INS = 24
|
||||
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
||||
Brw_ADMI_TEACH_GRP, // Brw_ADMI_TEACH_GRP = 26
|
||||
Brw_ADMI_DOCUM_PRJ, // Brw_ADMI_DOCUM_PRJ = 27
|
||||
};
|
||||
// Browsers types for database "file_browser_last" table
|
||||
// Assignments and works are stored as one in file_browser_last...
|
||||
|
@ -256,6 +260,7 @@ static const Brw_FileBrowser_t Brw_FileBrowserForDB_file_browser_last[Brw_NUM_TY
|
|||
Brw_ADMI_SHARE_INS, // Brw_ADMI_SHARE_INS = 24
|
||||
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
||||
Brw_ADMI_TEACH_GRP, // Brw_ADMI_TEACH_GRP = 26
|
||||
Brw_ADMI_DOCUM_PRJ, // Brw_ADMI_DOCUM_PRJ = 27
|
||||
};
|
||||
|
||||
// Internal names of root folders
|
||||
|
@ -288,6 +293,7 @@ const char *Brw_RootFolderInternalNames[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED_FILES, // Brw_ADMI_SHARE_INS
|
||||
Brw_INTERNAL_NAME_ROOT_FOLDER_TEACHERS, // Brw_ADMI_TEACH_CRS
|
||||
Brw_INTERNAL_NAME_ROOT_FOLDER_TEACHERS, // Brw_ADMI_TEACH_GRP
|
||||
Brw_INTERNAL_NAME_ROOT_FOLDER_PROJECTS, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
|
||||
static const bool Brw_FileBrowserIsEditable[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
|
@ -319,6 +325,7 @@ static const bool Brw_FileBrowserIsEditable[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
true, // Brw_ADMI_SHARE_INS
|
||||
true, // Brw_ADMI_TEACH_CRS
|
||||
true, // Brw_ADMI_TEACH_GRP
|
||||
true, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActSeeAdm[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -349,6 +356,7 @@ static const Act_Action_t Brw_ActSeeAdm[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActAdmShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActAdmTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActAdmTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActAdmDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
|
||||
static const Act_Action_t Brw_ActFromSeeToAdm[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
|
@ -380,6 +388,7 @@ static const Act_Action_t Brw_ActFromSeeToAdm[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActUnk, // Brw_ADMI_SHARE_INS
|
||||
ActUnk, // Brw_ADMI_TEACH_CRS
|
||||
ActUnk, // Brw_ADMI_TEACH_GRP
|
||||
ActUnk, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActFromAdmToSee[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -410,6 +419,7 @@ static const Act_Action_t Brw_ActFromAdmToSee[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActUnk, // Brw_ADMI_SHARE_INS
|
||||
ActUnk, // Brw_ADMI_TEACH_CRS
|
||||
ActUnk, // Brw_ADMI_TEACH_GRP
|
||||
ActUnk, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
|
||||
static const Act_Action_t Brw_ActChgZone[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
|
@ -441,6 +451,7 @@ static const Act_Action_t Brw_ActChgZone[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActUnk, // Brw_ADMI_SHARE_INS
|
||||
ActChgToAdmTch, // Brw_ADMI_TEACH_CRS
|
||||
ActChgToAdmTch, // Brw_ADMI_TEACH_GRP
|
||||
ActUnk, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActShow[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -471,6 +482,7 @@ static const Act_Action_t Brw_ActShow[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActUnk, // Brw_ADMI_SHARE_INS
|
||||
ActUnk, // Brw_ADMI_TEACH_CRS
|
||||
ActUnk, // Brw_ADMI_TEACH_GRP
|
||||
ActUnk, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActHide[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -501,6 +513,7 @@ static const Act_Action_t Brw_ActHide[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActUnk, // Brw_ADMI_SHARE_INS
|
||||
ActUnk, // Brw_ADMI_TEACH_CRS
|
||||
ActUnk, // Brw_ADMI_TEACH_GRP
|
||||
ActUnk, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActReqDatFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -531,6 +544,7 @@ static const Act_Action_t Brw_ActReqDatFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActReqDatShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActReqDatTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActReqDatTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActReqDatDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActDowFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -561,6 +575,7 @@ static const Act_Action_t Brw_ActDowFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActDowShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActDowTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActDowTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActDowDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActAskRemoveFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -591,6 +606,7 @@ static const Act_Action_t Brw_ActAskRemoveFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActReqRemFilShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActReqRemFilTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActReqRemFilTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActReqRemFilDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActRemoveFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -621,6 +637,7 @@ static const Act_Action_t Brw_ActRemoveFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActRemFilShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActRemFilTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActRemFilTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActRemFilDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActRemoveFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -651,6 +668,7 @@ static const Act_Action_t Brw_ActRemoveFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActRemFolShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActRemFolTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActRemFolTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActRemFolDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActRemoveFolderNotEmpty[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -681,6 +699,7 @@ static const Act_Action_t Brw_ActRemoveFolderNotEmpty[Brw_NUM_TYPES_FILE_BROWSER
|
|||
ActRemTreShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActRemTreTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActRemTreTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActRemTreDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActCopy[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -711,6 +730,7 @@ static const Act_Action_t Brw_ActCopy[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActCopShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActCopTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActCopTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActCopDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActPaste[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -741,6 +761,7 @@ static const Act_Action_t Brw_ActPaste[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActPasShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActPasTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActPasTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActPasDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActFormCreate[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -771,6 +792,7 @@ static const Act_Action_t Brw_ActFormCreate[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActFrmCreShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActFrmCreTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActFrmCreTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActFrmCreDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActCreateFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -801,6 +823,7 @@ static const Act_Action_t Brw_ActCreateFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActCreFolShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActCreFolTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActCreFolTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActCreFolDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActCreateLink[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -831,6 +854,7 @@ static const Act_Action_t Brw_ActCreateLink[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActCreLnkShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActCreLnkTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActCreLnkTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActCreLnkDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActRenameFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -861,6 +885,7 @@ static const Act_Action_t Brw_ActRenameFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActRenFolShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActRenFolTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActRenFolTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActRenFolDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActUploadFileDropzone[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -891,6 +916,7 @@ static const Act_Action_t Brw_ActUploadFileDropzone[Brw_NUM_TYPES_FILE_BROWSER]
|
|||
ActRcvFilShaInsDZ, // Brw_ADMI_SHARE_INS
|
||||
ActRcvFilTchCrsDZ, // Brw_ADMI_TEACH_CRS
|
||||
ActRcvFilTchGrpDZ, // Brw_ADMI_TEACH_GRP
|
||||
ActRcvFilDocPrjDZ, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActUploadFileClassic[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -921,6 +947,7 @@ static const Act_Action_t Brw_ActUploadFileClassic[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActRcvFilShaInsCla, // Brw_ADMI_SHARE_INS
|
||||
ActRcvFilTchCrsCla, // Brw_ADMI_TEACH_CRS
|
||||
ActRcvFilTchGrpCla, // Brw_ADMI_TEACH_GRP
|
||||
ActRcvFilDocPrjCla, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActRefreshAfterUploadFiles[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -951,6 +978,7 @@ static const Act_Action_t Brw_ActRefreshAfterUploadFiles[Brw_NUM_TYPES_FILE_BROW
|
|||
ActAdmShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActAdmTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActAdmTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActAdmDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActExpandFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -981,6 +1009,7 @@ static const Act_Action_t Brw_ActExpandFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActExpShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActExpTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActExpTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActExpDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActContractFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -1011,6 +1040,7 @@ static const Act_Action_t Brw_ActContractFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActConShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActConTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActConTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActConDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
static const Act_Action_t Brw_ActRecDatFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||
{
|
||||
|
@ -1041,6 +1071,7 @@ static const Act_Action_t Brw_ActRecDatFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActChgDatShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActChgDatTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActChgDatTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActChgDatDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
|
||||
/* All quotas must be multiple of 1 GiB (Gibibyte)*/
|
||||
|
@ -1103,6 +1134,10 @@ static const Act_Action_t Brw_ActRecDatFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
#define Brw_MAX_FILES_WORKS_PER_STD 500
|
||||
#define Brw_MAX_FOLDS_WORKS_PER_STD 50
|
||||
|
||||
#define Brw_MAX_QUOTA_PRJ ( 2ULL*Brw_GiB)
|
||||
#define Brw_MAX_FILES_PRJ 500
|
||||
#define Brw_MAX_FOLDS_PRJ 50
|
||||
|
||||
#define Brw_MAX_QUOTA_MARKS_CRS ( 1ULL*Brw_GiB)
|
||||
#define Brw_MAX_FILES_MARKS_CRS 500
|
||||
#define Brw_MAX_FOLDS_MARKS_CRS 50
|
||||
|
@ -2113,6 +2148,29 @@ void Brw_GetParAndInitFileBrowser (void)
|
|||
Gbl.FileBrowser.Type = Brw_ADMI_WORKS_CRS;
|
||||
break;
|
||||
|
||||
/***** Documents in project *****/
|
||||
case ActAdmDocPrj:
|
||||
case ActReqRemFilDocPrj:
|
||||
case ActRemFilDocPrj:
|
||||
case ActRemFolDocPrj:
|
||||
case ActCopDocPrj:
|
||||
case ActPasDocPrj:
|
||||
case ActRemTreDocPrj:
|
||||
case ActFrmCreDocPrj:
|
||||
case ActCreFolDocPrj:
|
||||
case ActCreLnkDocPrj:
|
||||
case ActRenFolDocPrj:
|
||||
case ActRcvFilDocPrjDZ:
|
||||
case ActRcvFilDocPrjCla:
|
||||
case ActExpDocPrj:
|
||||
case ActConDocPrj:
|
||||
case ActZIPDocPrj:
|
||||
case ActReqDatDocPrj:
|
||||
case ActChgDatDocPrj:
|
||||
case ActDowDocPrj:
|
||||
Gbl.FileBrowser.Type = Brw_ADMI_DOCUM_PRJ;
|
||||
break;
|
||||
|
||||
/***** Marks *****/
|
||||
case ActSeeAdmMrk: // Access to a marks zone from menu
|
||||
/* Set file browser type acording to last group accessed */
|
||||
|
@ -2658,26 +2716,26 @@ static void Brw_SetPathFileBrowser (void)
|
|||
case Brw_ADMI_SHARE_GRP:
|
||||
case Brw_SHOW_MARKS_GRP:
|
||||
case Brw_ADMI_MARKS_GRP:
|
||||
sprintf (Path,"%s/grp",
|
||||
Gbl.CurrentCrs.PathPriv);
|
||||
sprintf (Path,"%s/%s",
|
||||
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_GRP);
|
||||
Fil_CreateDirIfNotExists (Path);
|
||||
|
||||
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/grp/%ld",
|
||||
Gbl.CurrentCrs.PathPriv,
|
||||
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%ld",
|
||||
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_GRP,
|
||||
Gbl.CurrentCrs.Grps.GrpCod);
|
||||
break;
|
||||
case Brw_ADMI_ASSIG_USR:
|
||||
case Brw_ADMI_WORKS_USR:
|
||||
sprintf (Path,"%s/usr",
|
||||
Gbl.CurrentCrs.PathPriv);
|
||||
sprintf (Path,"%s/%s",
|
||||
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR);
|
||||
Fil_CreateDirIfNotExists (Path);
|
||||
sprintf (Path,"%s/usr/%02u",
|
||||
Gbl.CurrentCrs.PathPriv,
|
||||
sprintf (Path,"%s/%s/%02u",
|
||||
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR,
|
||||
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100));
|
||||
Fil_CreateDirIfNotExists (Path);
|
||||
|
||||
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/usr/%02u/%ld",
|
||||
Gbl.CurrentCrs.PathPriv,
|
||||
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%02u/%ld",
|
||||
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR,
|
||||
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100),
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||
break;
|
||||
|
@ -2685,20 +2743,29 @@ static void Brw_SetPathFileBrowser (void)
|
|||
case Brw_ADMI_WORKS_CRS:
|
||||
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
|
||||
{
|
||||
sprintf (Path,"%s/usr",
|
||||
Gbl.CurrentCrs.PathPriv);
|
||||
sprintf (Path,"%s/%s",
|
||||
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR);
|
||||
Fil_CreateDirIfNotExists (Path);
|
||||
sprintf (Path,"%s/usr/%02u",
|
||||
Gbl.CurrentCrs.PathPriv,
|
||||
sprintf (Path,"%s/%s/%02u",
|
||||
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR,
|
||||
(unsigned) (Gbl.Usrs.Other.UsrDat.UsrCod % 100));
|
||||
Fil_CreateDirIfNotExists (Path);
|
||||
|
||||
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/usr/%02u/%ld",
|
||||
Gbl.CurrentCrs.PathPriv,
|
||||
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%02u/%ld",
|
||||
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR,
|
||||
(unsigned) (Gbl.Usrs.Other.UsrDat.UsrCod % 100),
|
||||
Gbl.Usrs.Other.UsrDat.UsrCod);
|
||||
}
|
||||
break;
|
||||
case Brw_ADMI_DOCUM_PRJ:
|
||||
sprintf (Path,"%s/%s",
|
||||
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_PRJ);
|
||||
Fil_CreateDirIfNotExists (Path);
|
||||
|
||||
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%ld",
|
||||
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_PRJ,
|
||||
Gbl.CurrentCrs.Grps.GrpCod);
|
||||
break;
|
||||
case Brw_ADMI_BRIEF_USR:
|
||||
Str_Copy (Gbl.FileBrowser.Priv.PathAboveRootFolder,
|
||||
Gbl.Usrs.Me.PathDir,
|
||||
|
@ -3072,18 +3139,6 @@ static void Brw_SetMaxQuota (void)
|
|||
Gbl.FileBrowser.Size.MaxFiles = Brw_MAX_FILES_SHARE_GRP;
|
||||
Gbl.FileBrowser.Size.MaxFolds = Brw_MAX_FOLDS_SHARE_GRP;
|
||||
break;
|
||||
case Brw_SHOW_MARKS_CRS:
|
||||
case Brw_ADMI_MARKS_CRS:
|
||||
Gbl.FileBrowser.Size.MaxQuota = Brw_MAX_QUOTA_MARKS_CRS;
|
||||
Gbl.FileBrowser.Size.MaxFiles = Brw_MAX_FILES_MARKS_CRS;
|
||||
Gbl.FileBrowser.Size.MaxFolds = Brw_MAX_FOLDS_MARKS_CRS;
|
||||
break;
|
||||
case Brw_SHOW_MARKS_GRP:
|
||||
case Brw_ADMI_MARKS_GRP:
|
||||
Gbl.FileBrowser.Size.MaxQuota = Brw_MAX_QUOTA_MARKS_GRP;
|
||||
Gbl.FileBrowser.Size.MaxFiles = Brw_MAX_FILES_MARKS_GRP;
|
||||
Gbl.FileBrowser.Size.MaxFolds = Brw_MAX_FOLDS_MARKS_GRP;
|
||||
break;
|
||||
case Brw_ADMI_ASSIG_USR:
|
||||
case Brw_ADMI_ASSIG_CRS:
|
||||
Gbl.FileBrowser.Size.MaxQuota = Brw_MAX_QUOTA_ASSIG_PER_STD;
|
||||
|
@ -3096,6 +3151,23 @@ static void Brw_SetMaxQuota (void)
|
|||
Gbl.FileBrowser.Size.MaxFiles = Brw_MAX_FILES_WORKS_PER_STD;
|
||||
Gbl.FileBrowser.Size.MaxFolds = Brw_MAX_FOLDS_WORKS_PER_STD;
|
||||
break;
|
||||
case Brw_ADMI_DOCUM_PRJ:
|
||||
Gbl.FileBrowser.Size.MaxQuota = Brw_MAX_QUOTA_PRJ;
|
||||
Gbl.FileBrowser.Size.MaxFiles = Brw_MAX_FILES_PRJ;
|
||||
Gbl.FileBrowser.Size.MaxFolds = Brw_MAX_FOLDS_PRJ;
|
||||
break;
|
||||
case Brw_SHOW_MARKS_CRS:
|
||||
case Brw_ADMI_MARKS_CRS:
|
||||
Gbl.FileBrowser.Size.MaxQuota = Brw_MAX_QUOTA_MARKS_CRS;
|
||||
Gbl.FileBrowser.Size.MaxFiles = Brw_MAX_FILES_MARKS_CRS;
|
||||
Gbl.FileBrowser.Size.MaxFolds = Brw_MAX_FOLDS_MARKS_CRS;
|
||||
break;
|
||||
case Brw_SHOW_MARKS_GRP:
|
||||
case Brw_ADMI_MARKS_GRP:
|
||||
Gbl.FileBrowser.Size.MaxQuota = Brw_MAX_QUOTA_MARKS_GRP;
|
||||
Gbl.FileBrowser.Size.MaxFiles = Brw_MAX_FILES_MARKS_GRP;
|
||||
Gbl.FileBrowser.Size.MaxFolds = Brw_MAX_FOLDS_MARKS_GRP;
|
||||
break;
|
||||
case Brw_ADMI_BRIEF_USR:
|
||||
Gbl.FileBrowser.Size.MaxQuota = Brw_MAX_QUOTA_BRIEF[Gbl.Usrs.Me.Role.Max];
|
||||
Gbl.FileBrowser.Size.MaxFiles = Brw_MAX_FILES_BRIEF;
|
||||
|
@ -3570,7 +3642,8 @@ static void Brw_ShowFileBrowser (void)
|
|||
extern const char *Hlp_FILES_Homework_for_students;
|
||||
extern const char *Hlp_FILES_Homework_for_teachers;
|
||||
extern const char *Hlp_FILES_Marks;
|
||||
extern const char *Hlp_PROFILE_Briefcase;
|
||||
extern const char *Hlp_FILES_Briefcase;
|
||||
extern const char *Hlp_ASSESSMENT_Projects;
|
||||
|
||||
extern const char *Txt_Documents_area;
|
||||
extern const char *Txt_Documents_management_area;
|
||||
|
@ -3581,6 +3654,7 @@ static void Brw_ShowFileBrowser (void)
|
|||
extern const char *Txt_Assignments_area;
|
||||
extern const char *Txt_Works_area;
|
||||
extern const char *Txt_Temporary_private_storage_area;
|
||||
extern const char *Txt_Project_documents;
|
||||
|
||||
const char *Brw_TitleOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER];
|
||||
const char *Brw_HelpOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER];
|
||||
|
@ -3617,35 +3691,37 @@ static void Brw_ShowFileBrowser (void)
|
|||
Brw_TitleOfFileBrowser[Brw_ADMI_SHARE_INS] = Txt_Shared_files_area; // Brw_ADMI_SHARE_INS
|
||||
Brw_TitleOfFileBrowser[Brw_ADMI_TEACH_CRS] = Txt_Teachers_files_area; // Brw_ADMI_TEACH_CRS
|
||||
Brw_TitleOfFileBrowser[Brw_ADMI_TEACH_GRP] = Txt_Teachers_files_area; // Brw_ADMI_TEACH_GRP
|
||||
Brw_TitleOfFileBrowser[Brw_ADMI_DOCUM_PRJ] = Txt_Project_documents; // Brw_ADMI_DOCUM_PRJ
|
||||
|
||||
/***** Set help link of file browser *****/
|
||||
Brw_HelpOfFileBrowser[Brw_UNKNOWN ] = NULL; // Brw_UNKNOWN
|
||||
Brw_HelpOfFileBrowser[Brw_SHOW_DOCUM_CRS] = Hlp_FILES_Documents; // Brw_SHOW_DOCUM_CRS
|
||||
Brw_HelpOfFileBrowser[Brw_SHOW_MARKS_CRS] = Hlp_FILES_Marks; // Brw_SHOW_MARKS_CRS
|
||||
Brw_HelpOfFileBrowser[Brw_SHOW_MARKS_CRS] = Hlp_FILES_Marks; // Brw_SHOW_MARKS_CRS
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOCUM_CRS] = Hlp_FILES_Documents; // Brw_ADMI_DOCUM_CRS
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_SHARE_CRS] = Hlp_FILES_Shared; // Brw_ADMI_SHARE_CRS
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_SHARE_GRP] = Hlp_FILES_Shared; // Brw_ADMI_SHARE_GRP
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_WORKS_USR] = Hlp_FILES_Homework_for_students; // Brw_ADMI_WORKS_USR
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_WORKS_CRS] = Hlp_FILES_Homework_for_teachers; // Brw_ADMI_WORKS_CRS
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_MARKS_CRS] = Hlp_FILES_Marks; // Brw_ADMI_MARKS_CRS
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_BRIEF_USR] = Hlp_PROFILE_Briefcase; // Brw_ADMI_BRIEF_USR
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_MARKS_CRS] = Hlp_FILES_Marks; // Brw_ADMI_MARKS_CRS
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_BRIEF_USR] = Hlp_FILES_Briefcase; // Brw_ADMI_BRIEF_USR
|
||||
Brw_HelpOfFileBrowser[Brw_SHOW_DOCUM_GRP] = Hlp_FILES_Documents; // Brw_SHOW_DOCUM_GRP
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOCUM_GRP] = Hlp_FILES_Documents; // Brw_ADMI_DOCUM_GRP
|
||||
Brw_HelpOfFileBrowser[Brw_SHOW_MARKS_GRP] = Hlp_FILES_Marks; // Brw_SHOW_MARKS_GRP
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_MARKS_GRP] = Hlp_FILES_Marks; // Brw_ADMI_MARKS_GRP
|
||||
Brw_HelpOfFileBrowser[Brw_SHOW_MARKS_GRP] = Hlp_FILES_Marks; // Brw_SHOW_MARKS_GRP
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_MARKS_GRP] = Hlp_FILES_Marks; // Brw_ADMI_MARKS_GRP
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_ASSIG_USR] = Hlp_FILES_Homework_for_students; // Brw_ADMI_ASSIG_USR
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_ASSIG_CRS] = Hlp_FILES_Homework_for_teachers; // Brw_ADMI_ASSIG_CRS
|
||||
Brw_HelpOfFileBrowser[Brw_SHOW_DOCUM_DEG] = Hlp_FILES_Documents; // Brw_SHOW_DOCUM_DEG
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOCUM_DEG] = Hlp_FILES_Documents; // Brw_ADMI_DOCUM_DEG
|
||||
Brw_HelpOfFileBrowser[Brw_SHOW_DOCUM_CTR] = Hlp_FILES_Documents; // Brw_SHOW_DOCUM_CTR
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOCUM_CTR] = Hlp_FILES_Documents; // Brw_ADMI_DOCUM_CTR
|
||||
Brw_HelpOfFileBrowser[Brw_SHOW_DOCUM_INS] = Hlp_FILES_Documents; // Brw_SHOW_DOCUM_INS
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOCUM_INS] = Hlp_FILES_Documents; // Brw_ADMI_DOCUM_INS
|
||||
Brw_HelpOfFileBrowser[Brw_SHOW_DOCUM_INS] = Hlp_FILES_Documents; // Brw_SHOW_DOCUM_INS
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOCUM_INS] = Hlp_FILES_Documents; // Brw_ADMI_DOCUM_INS
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_SHARE_DEG] = Hlp_FILES_Shared; // Brw_ADMI_SHARE_DEG
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_SHARE_CTR] = Hlp_FILES_Shared; // Brw_ADMI_SHARE_CTR
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_SHARE_INS] = Hlp_FILES_Shared; // Brw_ADMI_SHARE_INS
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_TEACH_CRS] = Hlp_FILES_Private; // Brw_ADMI_TEACH_CRS
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_TEACH_GRP] = Hlp_FILES_Private; // Brw_ADMI_TEACH_GRP
|
||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOCUM_PRJ] = Hlp_ASSESSMENT_Projects; // Brw_ADMI_DOCUM_PRJ
|
||||
|
||||
/***** Set contextual icon in box *****/
|
||||
Gbl.FileBrowser.IconViewEdit = Brw_ICON_NONE;
|
||||
|
@ -3964,6 +4040,7 @@ static void Brw_WriteSubtitleOfFileBrowser (void)
|
|||
extern const char *Txt_accessible_for_reading_and_writing_by_you_and_the_teachers_of_the_course;
|
||||
extern const char *Txt_accessible_only_for_reading_by_you_and_the_teachers_of_the_course;
|
||||
extern const char *Txt_the_marks_of_a_student_chosen_at_random_;
|
||||
extern const char *Txt_accessible_for_reading_and_writing_by_project_members;
|
||||
extern const char *Txt_nobody_else_can_access_this_content;
|
||||
char Subtitle[1024];
|
||||
|
||||
|
@ -4086,6 +4163,10 @@ static void Brw_WriteSubtitleOfFileBrowser (void)
|
|||
sprintf (Subtitle,"%s",
|
||||
Gbl.Usrs.Other.UsrDat.FullName);
|
||||
break;
|
||||
case Brw_ADMI_DOCUM_PRJ:
|
||||
sprintf (Subtitle,"(%s)",
|
||||
Txt_accessible_for_reading_and_writing_by_project_members);
|
||||
break;
|
||||
case Brw_ADMI_BRIEF_USR:
|
||||
sprintf (Subtitle,"%s<br />(%s)",
|
||||
Gbl.Usrs.Me.UsrDat.FullName,
|
||||
|
@ -4943,6 +5024,9 @@ static void Brw_GetAndUpdateDateLastAccFileBrowser (void)
|
|||
case Brw_ADMI_MARKS_GRP:
|
||||
Cod = Gbl.CurrentCrs.Grps.GrpCod;
|
||||
break;
|
||||
case Brw_ADMI_DOCUM_PRJ:
|
||||
Cod = Gbl.CurrentCrs.Prjs.PrjCod;
|
||||
break;
|
||||
case Brw_ADMI_BRIEF_USR:
|
||||
Cod = -1L;
|
||||
break;
|
||||
|
@ -6763,6 +6847,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
extern const char *Txt_shared_files_area;
|
||||
extern const char *Txt_assignments_area;
|
||||
extern const char *Txt_works_area;
|
||||
extern const char *Txt_project_documents;
|
||||
extern const char *Txt_marks_management_area;
|
||||
extern const char *Txt_temporary_private_storage_area;
|
||||
extern const char *Txt_institution;
|
||||
|
@ -6770,6 +6855,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
extern const char *Txt_degree;
|
||||
extern const char *Txt_course;
|
||||
extern const char *Txt_group;
|
||||
extern const char *Txt_project;
|
||||
extern const char *Txt_user[Usr_NUM_SEXS];
|
||||
extern const char *Txt_file_folder;
|
||||
extern const char *Txt_file;
|
||||
|
@ -6781,6 +6867,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
struct Degree Deg;
|
||||
struct Course Crs;
|
||||
struct GroupData GrpDat;
|
||||
struct Project Prj;
|
||||
struct UsrData UsrDat;
|
||||
char TxtClipboardZone[1024];
|
||||
char FileNameToShow[NAME_MAX + 1];
|
||||
|
@ -6927,6 +7014,16 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
Txt_user[UsrDat.Sex],UsrDat.FullName);
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
break;
|
||||
case Brw_ADMI_DOCUM_PRJ:
|
||||
Prj.PrjCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Prj_GetDataOfProjectByCod (&Prj);
|
||||
Crs.CrsCod = Prj.CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
sprintf (TxtClipboardZone,"%s, %s <strong>%s</strong>, %s <strong>%s</strong>",
|
||||
Txt_project_documents,
|
||||
Txt_course,Crs.ShrtName,
|
||||
Txt_project,Prj.Title);
|
||||
break;
|
||||
case Brw_ADMI_MARKS_CRS:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
|
@ -7097,6 +7194,10 @@ static bool Brw_CheckIfClipboardIsInThisTree (void)
|
|||
if (Gbl.FileBrowser.Clipboard.Cod == Gbl.CurrentCrs.Grps.GrpCod)
|
||||
return true; // I am in the group of the clipboard
|
||||
break;
|
||||
case Brw_ADMI_DOCUM_PRJ:
|
||||
if (Gbl.FileBrowser.Clipboard.Cod == Gbl.CurrentCrs.Prjs.PrjCod)
|
||||
return true; // I am in the project of the clipboard
|
||||
break;
|
||||
case Brw_ADMI_BRIEF_USR:
|
||||
return true;
|
||||
default:
|
||||
|
@ -7648,6 +7749,12 @@ static void Brw_RemoveAffectedClipboards (Brw_FileBrowser_t FileBrowser,
|
|||
(unsigned) FileBrowser,
|
||||
Gbl.CurrentCrs.Crs.CrsCod,WorksUsrCod);
|
||||
break;
|
||||
case Brw_ADMI_DOCUM_PRJ:
|
||||
sprintf (Query,"DELETE FROM clipboard"
|
||||
" WHERE FileBrowser=%u AND Cod=%ld",
|
||||
(unsigned) FileBrowser,
|
||||
Gbl.CurrentCrs.Prjs.PrjCod);
|
||||
break;
|
||||
case Brw_ADMI_BRIEF_USR:
|
||||
sprintf (Query,"DELETE FROM clipboard"
|
||||
" WHERE UsrCod=%ld AND FileBrowser=%u",
|
||||
|
@ -7733,6 +7840,7 @@ static void Brw_PasteClipboard (void)
|
|||
struct Degree Deg;
|
||||
struct Course Crs;
|
||||
struct GroupData GrpDat;
|
||||
struct Project Prj;
|
||||
char PathOrg[PATH_MAX + 1];
|
||||
struct Brw_NumObjects Pasted;
|
||||
long FirstFilCod = -1L; // First file code of the first file or link pasted. Important: initialize here to -1L
|
||||
|
@ -7804,9 +7912,9 @@ static void Brw_PasteClipboard (void)
|
|||
Grp_GetDataOfGroupByCod (&GrpDat);
|
||||
Crs.CrsCod = GrpDat.CrsCod;
|
||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||
sprintf (PathOrg,"%s/%s/%ld/grp/%ld/%s",
|
||||
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,Crs.CrsCod,
|
||||
Gbl.FileBrowser.Clipboard.Cod,
|
||||
sprintf (PathOrg,"%s/%s/%ld/%s/%ld/%s",
|
||||
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,Crs.CrsCod,Cfg_FOLDER_GRP,
|
||||
GrpDat.GrpCod,
|
||||
Gbl.FileBrowser.Clipboard.Path);
|
||||
else
|
||||
Lay_ShowErrorAndExit ("The course of copy source does not exist.");
|
||||
|
@ -7815,26 +7923,31 @@ static void Brw_PasteClipboard (void)
|
|||
case Brw_ADMI_WORKS_USR:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||
sprintf (PathOrg,"%s/%s/%ld/usr/%02u/%ld/%s",
|
||||
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,Crs.CrsCod,
|
||||
sprintf (PathOrg,"%s/%s/%ld/%s/%02u/%ld/%s",
|
||||
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,Crs.CrsCod,Cfg_FOLDER_USR,
|
||||
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100),
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Gbl.FileBrowser.Clipboard.Path);
|
||||
else
|
||||
Lay_ShowErrorAndExit ("The course of copy source does not exist.");
|
||||
break;
|
||||
case Brw_ADMI_ASSIG_CRS:
|
||||
case Brw_ADMI_WORKS_CRS:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||
sprintf (PathOrg,"%s/%s/%ld/usr/%02u/%ld/%s",
|
||||
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,Crs.CrsCod,
|
||||
(unsigned) (Gbl.FileBrowser.Clipboard.WorksUsrCod % 100),
|
||||
Gbl.FileBrowser.Clipboard.WorksUsrCod,
|
||||
Gbl.FileBrowser.Clipboard.Path);
|
||||
case Brw_ADMI_DOCUM_PRJ:
|
||||
Prj.PrjCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Prj_GetDataOfProjectByCod (&Prj);
|
||||
if (Prj.PrjCod > 0)
|
||||
{
|
||||
Crs.CrsCod = Prj.CrsCod;
|
||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||
sprintf (PathOrg,"%s/%s/%ld/%s/%02u/%ld/%s",
|
||||
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,Crs.CrsCod,Cfg_FOLDER_PRJ,
|
||||
(unsigned) (Prj.PrjCod % 100),
|
||||
Prj.PrjCod,
|
||||
Gbl.FileBrowser.Clipboard.Path);
|
||||
else
|
||||
Lay_ShowErrorAndExit ("The course of copy source does not exist.");
|
||||
}
|
||||
else
|
||||
Lay_ShowErrorAndExit ("The course of copy source does not exist.");
|
||||
break;
|
||||
Lay_ShowErrorAndExit ("The course of copy source does not exist.");
|
||||
break;
|
||||
case Brw_ADMI_BRIEF_USR:
|
||||
sprintf (PathOrg,"%s/%s",
|
||||
|
@ -10083,6 +10196,7 @@ void Brw_ChgFileMetadata (void)
|
|||
case Brw_ADMI_ASSIG_CRS:
|
||||
case Brw_ADMI_WORKS_USR:
|
||||
case Brw_ADMI_WORKS_CRS:
|
||||
case Brw_ADMI_DOCUM_PRJ:
|
||||
case Brw_ADMI_BRIEF_USR:
|
||||
PublicFileAfterEdition = false; // Files in these zones can not be public
|
||||
License = Brw_GetParLicense ();
|
||||
|
@ -11659,6 +11773,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
|
|||
extern const char *Txt_Shared_files_area;
|
||||
extern const char *Txt_Assignments_area;
|
||||
extern const char *Txt_Works_area;
|
||||
extern const char *Txt_Project_documents;
|
||||
extern const char *Txt_Marks_area;
|
||||
extern const char *Txt_Temporary_private_storage_area;
|
||||
extern const char *Txt_Go_to_X;
|
||||
|
@ -11813,6 +11928,9 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
|
|||
case Brw_ADMI_WORKS_USR:
|
||||
Title = Txt_Works_area;
|
||||
break;
|
||||
case Brw_ADMI_DOCUM_PRJ:
|
||||
Title = Txt_Project_documents;
|
||||
break;
|
||||
case Brw_ADMI_MARKS_CRS:
|
||||
case Brw_ADMI_MARKS_GRP:
|
||||
Title = Txt_Marks_area;
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
#define Brw_MAX_CHARS_FOLDER 30 // 30
|
||||
#define Brw_MAX_BYTES_FOLDER NAME_MAX // 255
|
||||
|
||||
#define Brw_NUM_TYPES_FILE_BROWSER 27
|
||||
#define Brw_NUM_TYPES_FILE_BROWSER 28
|
||||
// The following types are stored in several database tables as numeric fields,
|
||||
// so don't change numbers!
|
||||
typedef enum
|
||||
|
@ -71,6 +71,7 @@ typedef enum
|
|||
Brw_ADMI_SHARE_INS = 24,
|
||||
Brw_ADMI_TEACH_CRS = 25,
|
||||
Brw_ADMI_TEACH_GRP = 26,
|
||||
Brw_ADMI_DOCUM_PRJ = 27,
|
||||
} Brw_FileBrowser_t;
|
||||
|
||||
// The following types are stored in files and clipboard tables as numeric fields, so don't change numbers!
|
||||
|
@ -153,6 +154,7 @@ struct FileMetadata
|
|||
#define Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED "comun" // TODO: It should be "sha"
|
||||
#define Brw_INTERNAL_NAME_ROOT_FOLDER_ASSIGNMENTS "actividades" // TODO: It should be "asg"
|
||||
#define Brw_INTERNAL_NAME_ROOT_FOLDER_WORKS "trabajos" // TODO: It should be "wrk"
|
||||
#define Brw_INTERNAL_NAME_ROOT_FOLDER_PROJECTS "prj"
|
||||
#define Brw_INTERNAL_NAME_ROOT_FOLDER_MARKS "calificaciones" // TODO: It should be "mrk"
|
||||
#define Brw_INTERNAL_NAME_ROOT_FOLDER_BRIEF "maletin" // TODO: It should be "brf"
|
||||
|
||||
|
|
|
@ -463,6 +463,7 @@ struct Globals
|
|||
struct
|
||||
{
|
||||
Prj_WhichProjects_t WhichPrjs; // Show my projects or all projects
|
||||
long PrjCod;
|
||||
} Prjs;
|
||||
struct
|
||||
{
|
||||
|
|
|
@ -1474,6 +1474,27 @@ const char *Hlp_FILES_Marks =
|
|||
"FILES.Marks.en";
|
||||
#endif
|
||||
|
||||
const char *Hlp_FILES_Briefcase =
|
||||
#if L==1
|
||||
"FILES.Briefcase.es";
|
||||
#elif L==2
|
||||
"FILES.Briefcase.en";
|
||||
#elif L==3
|
||||
"FILES.Briefcase.en";
|
||||
#elif L==4
|
||||
"FILES.Briefcase.es";
|
||||
#elif L==5
|
||||
"FILES.Briefcase.en";
|
||||
#elif L==6
|
||||
"FILES.Briefcase.es";
|
||||
#elif L==7
|
||||
"FILES.Briefcase.en";
|
||||
#elif L==8
|
||||
"FILES.Briefcase.en";
|
||||
#elif L==9
|
||||
"FILES.Briefcase.en";
|
||||
#endif
|
||||
|
||||
/***** USERS tab *****/
|
||||
|
||||
const char *Hlp_USERS_Groups =
|
||||
|
@ -3646,24 +3667,3 @@ const char *Hlp_PROFILE_Preferences_notifications =
|
|||
#elif L==9
|
||||
"PROFILE.Preferences.en#notifications";
|
||||
#endif
|
||||
|
||||
const char *Hlp_PROFILE_Briefcase =
|
||||
#if L==1
|
||||
"PROFILE.Briefcase.es";
|
||||
#elif L==2
|
||||
"PROFILE.Briefcase.en";
|
||||
#elif L==3
|
||||
"PROFILE.Briefcase.en";
|
||||
#elif L==4
|
||||
"PROFILE.Briefcase.es";
|
||||
#elif L==5
|
||||
"PROFILE.Briefcase.en";
|
||||
#elif L==6
|
||||
"PROFILE.Briefcase.es";
|
||||
#elif L==7
|
||||
"PROFILE.Briefcase.en";
|
||||
#elif L==8
|
||||
"PROFILE.Briefcase.en";
|
||||
#elif L==9
|
||||
"PROFILE.Briefcase.en";
|
||||
#endif
|
||||
|
|
|
@ -221,9 +221,10 @@ void Lay_WriteStartOfPage (void)
|
|||
case ActFrmCreAsgCrs: // Brw_ADMI_ASSIG_CRS
|
||||
case ActFrmCreWrkUsr: // Brw_ADMI_WORKS_USR
|
||||
case ActFrmCreWrkCrs: // Brw_ADMI_WORKS_CRS
|
||||
case ActFrmCreDocPrj: // Brw_ADMI_DOCUM_PRJ
|
||||
case ActFrmCreMrkCrs: // Brw_ADMI_MARKS_CRS
|
||||
case ActFrmCreMrkGrp: // Brw_ADMI_MARKS_GRP
|
||||
case ActFrmCreBrf: // Brw_ADMI_BRIEF_USR
|
||||
case ActFrmCreBrf: // Brw_ADMI_BRIEF_USR
|
||||
fprintf (Gbl.F.Out,"<link rel=\"StyleSheet\""
|
||||
" href=\"%s/dropzone/css/dropzone.css\""
|
||||
" type=\"text/css\" />\n",
|
||||
|
@ -594,6 +595,7 @@ static void Lay_WriteScripts (void)
|
|||
case ActFrmCreAsgCrs: // Brw_ADMI_ASSIG_CRS
|
||||
case ActFrmCreWrkUsr: // Brw_ADMI_WORKS_USR
|
||||
case ActFrmCreWrkCrs: // Brw_ADMI_WORKS_CRS
|
||||
case ActFrmCreDocPrj: // Brw_ADMI_DOCUM_PRJ
|
||||
case ActFrmCreMrkCrs: // Brw_ADMI_MARKS_CRS
|
||||
case ActFrmCreMrkGrp: // Brw_ADMI_MARKS_GRP
|
||||
case ActFrmCreBrf: // Brw_ADMI_BRIEF_USR
|
||||
|
|
117
swad_project.c
117
swad_project.c
|
@ -568,6 +568,7 @@ void Prj_FileBrowserPrj (void)
|
|||
/***** Get project data *****/
|
||||
Prj.PrjCod = Prj_GetParamPrjCod ();
|
||||
Prj_GetDataOfProjectByCod (&Prj);
|
||||
Gbl.CurrentCrs.Prjs.PrjCod = Prj.PrjCod; // Used in file browser
|
||||
|
||||
/***** Start box and table *****/
|
||||
Box_StartBoxTable (NULL,Prj.Title,NULL,
|
||||
|
@ -1959,7 +1960,7 @@ void Prj_GetDataOfProjectByCod (struct Project *Prj)
|
|||
if (Prj->PrjCod > 0)
|
||||
{
|
||||
/***** Build query *****/
|
||||
sprintf (Query,"SELECT PrjCod,DptCod,Hidden,Preassigned,NumStds,Proposal,"
|
||||
sprintf (Query,"SELECT PrjCod,CrsCod,DptCod,Hidden,Preassigned,NumStds,Proposal,"
|
||||
"UNIX_TIMESTAMP(StartTime),"
|
||||
"UNIX_TIMESTAMP(EndTime),"
|
||||
"NOW() BETWEEN StartTime AND EndTime,"
|
||||
|
@ -1969,19 +1970,20 @@ void Prj_GetDataOfProjectByCod (struct Project *Prj)
|
|||
Prj->PrjCod,Gbl.CurrentCrs.Crs.CrsCod);
|
||||
/*
|
||||
row[ 0]: PrjCod
|
||||
row[ 1]: DptCod
|
||||
row[ 2]: Hidden
|
||||
row[ 3]: Preassigned
|
||||
row[ 4]: NumStds
|
||||
row[ 5]: Proposal
|
||||
row[ 6]: UNIX_TIMESTAMP(StartTime)
|
||||
row[ 7]: UNIX_TIMESTAMP(EndTime)
|
||||
row[ 8]: NOW() BETWEEN StartTime AND EndTime
|
||||
row[ 9]: Title
|
||||
row[10]: Description
|
||||
row[11]: Knowledge
|
||||
row[12]: Materials
|
||||
row[13]: URL
|
||||
row[ 1]: CrsCod
|
||||
row[ 2]: DptCod
|
||||
row[ 3]: Hidden
|
||||
row[ 4]: Preassigned
|
||||
row[ 5]: NumStds
|
||||
row[ 6]: Proposal
|
||||
row[ 7]: UNIX_TIMESTAMP(StartTime)
|
||||
row[ 8]: UNIX_TIMESTAMP(EndTime)
|
||||
row[ 9]: NOW() BETWEEN StartTime AND EndTime
|
||||
row[10]: Title
|
||||
row[11]: Description
|
||||
row[12]: Knowledge
|
||||
row[13]: Materials
|
||||
row[14]: URL
|
||||
*/
|
||||
|
||||
/***** Get data of project *****/
|
||||
|
@ -2016,79 +2018,83 @@ static void Prj_GetDataOfProject (struct Project *Prj,const char *Query)
|
|||
row = mysql_fetch_row (mysql_res);
|
||||
/*
|
||||
row[ 0]: PrjCod
|
||||
row[ 1]: DptCod
|
||||
row[ 2]: Hidden
|
||||
row[ 3]: Preassigned
|
||||
row[ 4]: NumStds
|
||||
row[ 5]: Proposal
|
||||
row[ 6]: UNIX_TIMESTAMP(StartTime)
|
||||
row[ 7]: UNIX_TIMESTAMP(EndTime)
|
||||
row[ 8]: NOW() BETWEEN StartTime AND EndTime
|
||||
row[ 9]: Title
|
||||
row[10]: Description
|
||||
row[11]: Knowledge
|
||||
row[12]: Materials
|
||||
row[13]: URL
|
||||
row[ 1]: CrsCod
|
||||
row[ 2]: DptCod
|
||||
row[ 3]: Hidden
|
||||
row[ 4]: Preassigned
|
||||
row[ 5]: NumStds
|
||||
row[ 6]: Proposal
|
||||
row[ 7]: UNIX_TIMESTAMP(StartTime)
|
||||
row[ 8]: UNIX_TIMESTAMP(EndTime)
|
||||
row[ 9]: NOW() BETWEEN StartTime AND EndTime
|
||||
row[10]: Title
|
||||
row[11]: Description
|
||||
row[12]: Knowledge
|
||||
row[13]: Materials
|
||||
row[14]: URL
|
||||
*/
|
||||
|
||||
/* Get code of the project (row[0]) */
|
||||
Prj->PrjCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
|
||||
/* Get code of the department (row[1]) */
|
||||
Prj->DptCod = Str_ConvertStrCodToLongCod (row[1]);
|
||||
/* Get code of the course (row[1]) */
|
||||
Prj->CrsCod = Str_ConvertStrCodToLongCod (row[1]);
|
||||
|
||||
/* Get whether the project is hidden or not (row[2]) */
|
||||
Prj->Hidden = (row[2][0] == 'Y');
|
||||
/* Get code of the department (row[2]) */
|
||||
Prj->DptCod = Str_ConvertStrCodToLongCod (row[2]);
|
||||
|
||||
/* Get if project is preassigned or not (row[3]) */
|
||||
Prj->Preassigned = (row[3][0] == 'Y') ? Prj_PREASSIGNED :
|
||||
Prj_NOT_PREASSIGNED;
|
||||
/* Get whether the project is hidden or not (row[3]) */
|
||||
Prj->Hidden = (row[3][0] == 'Y');
|
||||
|
||||
/* Get if project is preassigned or not (row[4]) */
|
||||
NumLong = Str_ConvertStrCodToLongCod (row[4]);
|
||||
Prj->Preassigned = (row[4][0] == 'Y') ? Prj_PREASSIGNED :
|
||||
Prj_NOT_PREASSIGNED;
|
||||
|
||||
/* Get if project is preassigned or not (row[5]) */
|
||||
NumLong = Str_ConvertStrCodToLongCod (row[5]);
|
||||
if (NumLong >= 0)
|
||||
Prj->NumStds = (unsigned) NumLong;
|
||||
else
|
||||
Prj->NumStds = 1;
|
||||
|
||||
/* Get project status (row[5]) */
|
||||
/* Get project status (row[6]) */
|
||||
Prj->Proposal = Prj_PROPOSAL_DEFAULT;
|
||||
for (Proposal = (Prj_Proposal_t) 0;
|
||||
Proposal <= (Prj_Proposal_t) (Prj_NUM_PROPOSAL_TYPES - 1);
|
||||
Proposal++)
|
||||
if (!strcmp (Prj_Proposal_DB[Proposal],row[5]))
|
||||
if (!strcmp (Prj_Proposal_DB[Proposal],row[6]))
|
||||
{
|
||||
Prj->Proposal = Proposal;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Get start date (row[6] holds the start UTC time) */
|
||||
Prj->TimeUTC[Dat_START_TIME] = Dat_GetUNIXTimeFromStr (row[6]);
|
||||
/* Get start date (row[7] holds the start UTC time) */
|
||||
Prj->TimeUTC[Dat_START_TIME] = Dat_GetUNIXTimeFromStr (row[7]);
|
||||
|
||||
/* Get end date (row[7] holds the end UTC time) */
|
||||
Prj->TimeUTC[Dat_END_TIME ] = Dat_GetUNIXTimeFromStr (row[7]);
|
||||
/* Get end date (row[8] holds the end UTC time) */
|
||||
Prj->TimeUTC[Dat_END_TIME ] = Dat_GetUNIXTimeFromStr (row[8]);
|
||||
|
||||
/* Get whether the project is open or closed (row[8]) */
|
||||
Prj->Open = (row[8][0] == '1');
|
||||
/* Get whether the project is open or closed (row[9]) */
|
||||
Prj->Open = (row[9][0] == '1');
|
||||
|
||||
/* Get the title of the project (row[9]) */
|
||||
Str_Copy (Prj->Title,row[9],
|
||||
/* Get the title of the project (row[10]) */
|
||||
Str_Copy (Prj->Title,row[10],
|
||||
Prj_MAX_BYTES_PROJECT_TITLE);
|
||||
|
||||
/* Get the description of the project (row[10]) */
|
||||
Str_Copy (Prj->Description,row[10],
|
||||
/* Get the description of the project (row[11]) */
|
||||
Str_Copy (Prj->Description,row[11],
|
||||
Cns_MAX_BYTES_TEXT);
|
||||
|
||||
/* Get the required knowledge for the project (row[11]) */
|
||||
Str_Copy (Prj->Knowledge,row[11],
|
||||
/* Get the required knowledge for the project (row[12]) */
|
||||
Str_Copy (Prj->Knowledge,row[12],
|
||||
Cns_MAX_BYTES_TEXT);
|
||||
|
||||
/* Get the required materials for the project (row[12]) */
|
||||
Str_Copy (Prj->Materials,row[12],
|
||||
/* Get the required materials for the project (row[13]) */
|
||||
Str_Copy (Prj->Materials,row[13],
|
||||
Cns_MAX_BYTES_TEXT);
|
||||
|
||||
/* Get the URL of the project (row[13]) */
|
||||
Str_Copy (Prj->URL,row[13],
|
||||
/* Get the URL of the project (row[14]) */
|
||||
Str_Copy (Prj->URL,row[14],
|
||||
Cns_MAX_BYTES_WWW);
|
||||
}
|
||||
|
||||
|
@ -2104,10 +2110,11 @@ static void Prj_ResetProject (struct Project *Prj)
|
|||
{
|
||||
if (Prj->PrjCod <= 0) // If > 0 ==> keep value
|
||||
Prj->PrjCod = -1L;
|
||||
Prj->CrsCod = -1L;
|
||||
Prj->Hidden = false;
|
||||
Prj->Preassigned = Prj_PREASSIGNED_DEFAULT;
|
||||
Prj->NumStds = 1;
|
||||
Prj->Proposal = Prj_PROPOSAL_DEFAULT;
|
||||
Prj->Proposal = Prj_PROPOSAL_DEFAULT;
|
||||
Prj->TimeUTC[Dat_START_TIME] =
|
||||
Prj->TimeUTC[Dat_END_TIME ] = (time_t) 0;
|
||||
Prj->Open = false;
|
||||
|
@ -2116,7 +2123,7 @@ static void Prj_ResetProject (struct Project *Prj)
|
|||
Prj->Description[0] = '\0';
|
||||
Prj->Knowledge[0] = '\0';
|
||||
Prj->Materials[0] = '\0';
|
||||
Prj->URL[0] = '\0';
|
||||
Prj->URL[0] = '\0';
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -70,6 +70,7 @@ typedef enum
|
|||
struct Project
|
||||
{
|
||||
long PrjCod;
|
||||
long CrsCod;
|
||||
bool Hidden;
|
||||
Prj_Preassigned_t Preassigned;
|
||||
unsigned NumStds;
|
||||
|
|
105
swad_text.c
105
swad_text.c
|
@ -1723,6 +1723,27 @@ const char *Txt_accessible_for_reading_and_writing_by_administrators_of_the_inst
|
|||
"acessível para leitura e escrita pelos administradores da instituição";
|
||||
#endif
|
||||
|
||||
const char *Txt_accessible_for_reading_and_writing_by_project_members =
|
||||
#if L==1
|
||||
"accessible per a lectura i escriptura per membres del projecte";
|
||||
#elif L==2
|
||||
"zugänglich zum Lesen und Schreiben von Projektmitgliedern";
|
||||
#elif L==3
|
||||
"accessible for reading and writing by project members";
|
||||
#elif L==4
|
||||
"accesible para lectura y escritura por miembros del proyecto";
|
||||
#elif L==5
|
||||
"accessible pour la lecture et l'écriture par les membres du projet";
|
||||
#elif L==6
|
||||
"accesible para lectura y escritura por miembros del proyecto"; // Okoteve traducción
|
||||
#elif L==7
|
||||
"accessibile per la lettura e la scrittura da parte dei membri del progetto";
|
||||
#elif L==8
|
||||
"dostępne do czytania i pisania przez członków projektu";
|
||||
#elif L==9
|
||||
"acessível para leitura e escrita por membros do projeto";
|
||||
#endif
|
||||
|
||||
const char *Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_centre =
|
||||
#if L==1
|
||||
"accessible per a lectura i escriptura per estudiants i professors del centre";
|
||||
|
@ -30789,6 +30810,69 @@ const char *Txt_Private_available_to_certain_users_identified =
|
|||
"Privado, disponível para alguns usuários identificados";
|
||||
#endif
|
||||
|
||||
const char *Txt_project =
|
||||
#if L==1
|
||||
"projecte";
|
||||
#elif L==2
|
||||
"Projekt";
|
||||
#elif L==3
|
||||
"project";
|
||||
#elif L==4
|
||||
"proyecto";
|
||||
#elif L==5
|
||||
"project";
|
||||
#elif L==6
|
||||
"proyecto"; // Okoteve traducción
|
||||
#elif L==7
|
||||
"progetto";
|
||||
#elif L==8
|
||||
"projektowe";
|
||||
#elif L==9
|
||||
"projeto";
|
||||
#endif
|
||||
|
||||
const char *Txt_Project_documents =
|
||||
#if L==1
|
||||
"Documents del projecte";
|
||||
#elif L==2
|
||||
"Projektdokumente";
|
||||
#elif L==3
|
||||
"Project documents";
|
||||
#elif L==4
|
||||
"Documentos del proyecto";
|
||||
#elif L==5
|
||||
"Documents du project";
|
||||
#elif L==6
|
||||
"Documentos del proyecto"; // Okoteve traducción
|
||||
#elif L==7
|
||||
"Documenti di progetto";
|
||||
#elif L==8
|
||||
"Dokumenty projektowe";
|
||||
#elif L==9
|
||||
"Documentos do projeto";
|
||||
#endif
|
||||
|
||||
const char *Txt_project_documents =
|
||||
#if L==1
|
||||
"documents del projecte";
|
||||
#elif L==2
|
||||
"Projektdokumente";
|
||||
#elif L==3
|
||||
"project documents";
|
||||
#elif L==4
|
||||
"documentos del proyecto";
|
||||
#elif L==5
|
||||
"documents du project";
|
||||
#elif L==6
|
||||
"documentos del proyecto"; // Okoteve traducción
|
||||
#elif L==7
|
||||
"documenti di progetto";
|
||||
#elif L==8
|
||||
"dokumenty projektowe";
|
||||
#elif L==9
|
||||
"documentos do projeto";
|
||||
#endif
|
||||
|
||||
const char *Txt_Project_X_is_now_hidden = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1
|
||||
"El projecte <strong>%s</strong> ara està ocult.";
|
||||
|
@ -37975,6 +38059,27 @@ const char *Txt_ROOT_FOLDER_EXTERNAL_NAMES[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
"prywatne"
|
||||
#elif L==9
|
||||
"privados"
|
||||
#endif
|
||||
,
|
||||
// Brw_ADMI_DOCUM_PRJ
|
||||
#if L==1
|
||||
"projecte"
|
||||
#elif L==2
|
||||
"Projekt"
|
||||
#elif L==3
|
||||
"project"
|
||||
#elif L==4
|
||||
"proyecto"
|
||||
#elif L==5
|
||||
"projet"
|
||||
#elif L==6
|
||||
"proyecto" // Okoteve traducción
|
||||
#elif L==7
|
||||
"progetto"
|
||||
#elif L==8
|
||||
"projekt"
|
||||
#elif L==9
|
||||
"projeto"
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
|
@ -83,6 +83,7 @@ const Act_Action_t ZIP_ActZIPFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
|||
ActZIPShaIns, // Brw_ADMI_SHARE_INS
|
||||
ActZIPTchCrs, // Brw_ADMI_TEACH_CRS
|
||||
ActZIPTchGrp, // Brw_ADMI_TEACH_GRP
|
||||
ActZIPDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
Loading…
Reference in New Issue