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: "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 *****************************/
|
/****************************** 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 CSS_FILE "swad17.0.css"
|
||||||
#define JS_FILE "swad17.17.1.js"
|
#define JS_FILE "swad17.17.1.js"
|
||||||
|
|
||||||
// Number of lines (includes comments but not blank lines) has been got with the following command:
|
// 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
|
// 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)
|
Version 17.18: Oct 06, 2017 New view in projects for project file browser. (232547 lines)
|
||||||
1 change necessary in database:
|
1 change necessary in database:
|
||||||
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1697','es','N','Editar archivos proyecto');
|
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 */
|
/* 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!
|
#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 */
|
/* Folder for users, inside private swad directory */
|
||||||
#define Cfg_FOLDER_USR "usr" // Created automatically the first time it is accessed
|
#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 */
|
/* 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
|
#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_SHARE_INS, // Brw_ADMI_SHARE_INS = 24
|
||||||
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
||||||
Brw_ADMI_TEACH_GRP, // Brw_ADMI_TEACH_GRP = 26
|
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
|
// Browsers viewable shown in search for documents
|
||||||
const Brw_FileBrowser_t Brw_FileBrowserForFoundDocs[Brw_NUM_TYPES_FILE_BROWSER] =
|
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_SHARE_INS, // Brw_ADMI_SHARE_INS = 24
|
||||||
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
||||||
Brw_ADMI_TEACH_GRP, // Brw_ADMI_TEACH_GRP = 26
|
Brw_ADMI_TEACH_GRP, // Brw_ADMI_TEACH_GRP = 26
|
||||||
|
Brw_ADMI_DOCUM_PRJ, // Brw_ADMI_DOCUM_PRJ = 27
|
||||||
};
|
};
|
||||||
// Browsers types for database "clipboard" table
|
// Browsers types for database "clipboard" table
|
||||||
static const Brw_FileBrowser_t Brw_FileBrowserForDB_clipboard[Brw_NUM_TYPES_FILE_BROWSER] =
|
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_SHARE_INS, // Brw_ADMI_SHARE_INS = 24
|
||||||
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
||||||
Brw_ADMI_TEACH_GRP, // Brw_ADMI_TEACH_GRP = 26
|
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
|
// Browsers types for database "expanded_folders" table
|
||||||
static const Brw_FileBrowser_t Brw_FileBrowserForDB_expanded_folders[Brw_NUM_TYPES_FILE_BROWSER] =
|
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_SHARE_INS, // Brw_ADMI_SHARE_INS = 24
|
||||||
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
||||||
Brw_ADMI_TEACH_GRP, // Brw_ADMI_TEACH_GRP = 26
|
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
|
// Browsers types for database "file_browser_last" table
|
||||||
// Assignments and works are stored as one in file_browser_last...
|
// 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_SHARE_INS, // Brw_ADMI_SHARE_INS = 24
|
||||||
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
Brw_ADMI_TEACH_CRS, // Brw_ADMI_TEACH_CRS = 25
|
||||||
Brw_ADMI_TEACH_GRP, // Brw_ADMI_TEACH_GRP = 26
|
Brw_ADMI_TEACH_GRP, // Brw_ADMI_TEACH_GRP = 26
|
||||||
|
Brw_ADMI_DOCUM_PRJ, // Brw_ADMI_DOCUM_PRJ = 27
|
||||||
};
|
};
|
||||||
|
|
||||||
// Internal names of root folders
|
// 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_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_CRS
|
||||||
Brw_INTERNAL_NAME_ROOT_FOLDER_TEACHERS, // Brw_ADMI_TEACH_GRP
|
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] =
|
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_SHARE_INS
|
||||||
true, // Brw_ADMI_TEACH_CRS
|
true, // Brw_ADMI_TEACH_CRS
|
||||||
true, // Brw_ADMI_TEACH_GRP
|
true, // Brw_ADMI_TEACH_GRP
|
||||||
|
true, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActSeeAdm[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActAdmShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActAdmTchCrs, // Brw_ADMI_TEACH_CRS
|
ActAdmTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActAdmTchGrp, // Brw_ADMI_TEACH_GRP
|
ActAdmTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActAdmDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
|
|
||||||
static const Act_Action_t Brw_ActFromSeeToAdm[Brw_NUM_TYPES_FILE_BROWSER] =
|
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_SHARE_INS
|
||||||
ActUnk, // Brw_ADMI_TEACH_CRS
|
ActUnk, // Brw_ADMI_TEACH_CRS
|
||||||
ActUnk, // Brw_ADMI_TEACH_GRP
|
ActUnk, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActUnk, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActFromAdmToSee[Brw_NUM_TYPES_FILE_BROWSER] =
|
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_SHARE_INS
|
||||||
ActUnk, // Brw_ADMI_TEACH_CRS
|
ActUnk, // Brw_ADMI_TEACH_CRS
|
||||||
ActUnk, // Brw_ADMI_TEACH_GRP
|
ActUnk, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActUnk, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
|
|
||||||
static const Act_Action_t Brw_ActChgZone[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActUnk, // Brw_ADMI_SHARE_INS
|
||||||
ActChgToAdmTch, // Brw_ADMI_TEACH_CRS
|
ActChgToAdmTch, // Brw_ADMI_TEACH_CRS
|
||||||
ActChgToAdmTch, // Brw_ADMI_TEACH_GRP
|
ActChgToAdmTch, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActUnk, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActShow[Brw_NUM_TYPES_FILE_BROWSER] =
|
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_SHARE_INS
|
||||||
ActUnk, // Brw_ADMI_TEACH_CRS
|
ActUnk, // Brw_ADMI_TEACH_CRS
|
||||||
ActUnk, // Brw_ADMI_TEACH_GRP
|
ActUnk, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActUnk, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActHide[Brw_NUM_TYPES_FILE_BROWSER] =
|
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_SHARE_INS
|
||||||
ActUnk, // Brw_ADMI_TEACH_CRS
|
ActUnk, // Brw_ADMI_TEACH_CRS
|
||||||
ActUnk, // Brw_ADMI_TEACH_GRP
|
ActUnk, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActUnk, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActReqDatFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActReqDatShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActReqDatTchCrs, // Brw_ADMI_TEACH_CRS
|
ActReqDatTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActReqDatTchGrp, // Brw_ADMI_TEACH_GRP
|
ActReqDatTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActReqDatDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActDowFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActDowShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActDowTchCrs, // Brw_ADMI_TEACH_CRS
|
ActDowTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActDowTchGrp, // Brw_ADMI_TEACH_GRP
|
ActDowTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActDowDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActAskRemoveFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActReqRemFilShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActReqRemFilTchCrs, // Brw_ADMI_TEACH_CRS
|
ActReqRemFilTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActReqRemFilTchGrp, // Brw_ADMI_TEACH_GRP
|
ActReqRemFilTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActReqRemFilDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActRemoveFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActRemFilShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActRemFilTchCrs, // Brw_ADMI_TEACH_CRS
|
ActRemFilTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActRemFilTchGrp, // Brw_ADMI_TEACH_GRP
|
ActRemFilTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActRemFilDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActRemoveFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActRemFolShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActRemFolTchCrs, // Brw_ADMI_TEACH_CRS
|
ActRemFolTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActRemFolTchGrp, // Brw_ADMI_TEACH_GRP
|
ActRemFolTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActRemFolDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActRemoveFolderNotEmpty[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActRemTreShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActRemTreTchCrs, // Brw_ADMI_TEACH_CRS
|
ActRemTreTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActRemTreTchGrp, // Brw_ADMI_TEACH_GRP
|
ActRemTreTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActRemTreDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActCopy[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActCopShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActCopTchCrs, // Brw_ADMI_TEACH_CRS
|
ActCopTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActCopTchGrp, // Brw_ADMI_TEACH_GRP
|
ActCopTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActCopDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActPaste[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActPasShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActPasTchCrs, // Brw_ADMI_TEACH_CRS
|
ActPasTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActPasTchGrp, // Brw_ADMI_TEACH_GRP
|
ActPasTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActPasDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActFormCreate[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActFrmCreShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActFrmCreTchCrs, // Brw_ADMI_TEACH_CRS
|
ActFrmCreTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActFrmCreTchGrp, // Brw_ADMI_TEACH_GRP
|
ActFrmCreTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActFrmCreDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActCreateFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActCreFolShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActCreFolTchCrs, // Brw_ADMI_TEACH_CRS
|
ActCreFolTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActCreFolTchGrp, // Brw_ADMI_TEACH_GRP
|
ActCreFolTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActCreFolDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActCreateLink[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActCreLnkShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActCreLnkTchCrs, // Brw_ADMI_TEACH_CRS
|
ActCreLnkTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActCreLnkTchGrp, // Brw_ADMI_TEACH_GRP
|
ActCreLnkTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActCreLnkDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActRenameFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActRenFolShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActRenFolTchCrs, // Brw_ADMI_TEACH_CRS
|
ActRenFolTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActRenFolTchGrp, // Brw_ADMI_TEACH_GRP
|
ActRenFolTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActRenFolDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActUploadFileDropzone[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActRcvFilShaInsDZ, // Brw_ADMI_SHARE_INS
|
||||||
ActRcvFilTchCrsDZ, // Brw_ADMI_TEACH_CRS
|
ActRcvFilTchCrsDZ, // Brw_ADMI_TEACH_CRS
|
||||||
ActRcvFilTchGrpDZ, // Brw_ADMI_TEACH_GRP
|
ActRcvFilTchGrpDZ, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActRcvFilDocPrjDZ, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActUploadFileClassic[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActRcvFilShaInsCla, // Brw_ADMI_SHARE_INS
|
||||||
ActRcvFilTchCrsCla, // Brw_ADMI_TEACH_CRS
|
ActRcvFilTchCrsCla, // Brw_ADMI_TEACH_CRS
|
||||||
ActRcvFilTchGrpCla, // Brw_ADMI_TEACH_GRP
|
ActRcvFilTchGrpCla, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActRcvFilDocPrjCla, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActRefreshAfterUploadFiles[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActAdmShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActAdmTchCrs, // Brw_ADMI_TEACH_CRS
|
ActAdmTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActAdmTchGrp, // Brw_ADMI_TEACH_GRP
|
ActAdmTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActAdmDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActExpandFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActExpShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActExpTchCrs, // Brw_ADMI_TEACH_CRS
|
ActExpTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActExpTchGrp, // Brw_ADMI_TEACH_GRP
|
ActExpTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActExpDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActContractFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActConShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActConTchCrs, // Brw_ADMI_TEACH_CRS
|
ActConTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActConTchGrp, // Brw_ADMI_TEACH_GRP
|
ActConTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActConDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
static const Act_Action_t Brw_ActRecDatFile[Brw_NUM_TYPES_FILE_BROWSER] =
|
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
|
ActChgDatShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActChgDatTchCrs, // Brw_ADMI_TEACH_CRS
|
ActChgDatTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActChgDatTchGrp, // Brw_ADMI_TEACH_GRP
|
ActChgDatTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActChgDatDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
|
|
||||||
/* All quotas must be multiple of 1 GiB (Gibibyte)*/
|
/* 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_FILES_WORKS_PER_STD 500
|
||||||
#define Brw_MAX_FOLDS_WORKS_PER_STD 50
|
#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_QUOTA_MARKS_CRS ( 1ULL*Brw_GiB)
|
||||||
#define Brw_MAX_FILES_MARKS_CRS 500
|
#define Brw_MAX_FILES_MARKS_CRS 500
|
||||||
#define Brw_MAX_FOLDS_MARKS_CRS 50
|
#define Brw_MAX_FOLDS_MARKS_CRS 50
|
||||||
|
@ -2113,6 +2148,29 @@ void Brw_GetParAndInitFileBrowser (void)
|
||||||
Gbl.FileBrowser.Type = Brw_ADMI_WORKS_CRS;
|
Gbl.FileBrowser.Type = Brw_ADMI_WORKS_CRS;
|
||||||
break;
|
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 *****/
|
/***** Marks *****/
|
||||||
case ActSeeAdmMrk: // Access to a marks zone from menu
|
case ActSeeAdmMrk: // Access to a marks zone from menu
|
||||||
/* Set file browser type acording to last group accessed */
|
/* 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_ADMI_SHARE_GRP:
|
||||||
case Brw_SHOW_MARKS_GRP:
|
case Brw_SHOW_MARKS_GRP:
|
||||||
case Brw_ADMI_MARKS_GRP:
|
case Brw_ADMI_MARKS_GRP:
|
||||||
sprintf (Path,"%s/grp",
|
sprintf (Path,"%s/%s",
|
||||||
Gbl.CurrentCrs.PathPriv);
|
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_GRP);
|
||||||
Fil_CreateDirIfNotExists (Path);
|
Fil_CreateDirIfNotExists (Path);
|
||||||
|
|
||||||
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/grp/%ld",
|
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%ld",
|
||||||
Gbl.CurrentCrs.PathPriv,
|
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_GRP,
|
||||||
Gbl.CurrentCrs.Grps.GrpCod);
|
Gbl.CurrentCrs.Grps.GrpCod);
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_ASSIG_USR:
|
case Brw_ADMI_ASSIG_USR:
|
||||||
case Brw_ADMI_WORKS_USR:
|
case Brw_ADMI_WORKS_USR:
|
||||||
sprintf (Path,"%s/usr",
|
sprintf (Path,"%s/%s",
|
||||||
Gbl.CurrentCrs.PathPriv);
|
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR);
|
||||||
Fil_CreateDirIfNotExists (Path);
|
Fil_CreateDirIfNotExists (Path);
|
||||||
sprintf (Path,"%s/usr/%02u",
|
sprintf (Path,"%s/%s/%02u",
|
||||||
Gbl.CurrentCrs.PathPriv,
|
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR,
|
||||||
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100));
|
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100));
|
||||||
Fil_CreateDirIfNotExists (Path);
|
Fil_CreateDirIfNotExists (Path);
|
||||||
|
|
||||||
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/usr/%02u/%ld",
|
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%02u/%ld",
|
||||||
Gbl.CurrentCrs.PathPriv,
|
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR,
|
||||||
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100),
|
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100),
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
break;
|
break;
|
||||||
|
@ -2685,20 +2743,29 @@ static void Brw_SetPathFileBrowser (void)
|
||||||
case Brw_ADMI_WORKS_CRS:
|
case Brw_ADMI_WORKS_CRS:
|
||||||
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
|
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
|
||||||
{
|
{
|
||||||
sprintf (Path,"%s/usr",
|
sprintf (Path,"%s/%s",
|
||||||
Gbl.CurrentCrs.PathPriv);
|
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR);
|
||||||
Fil_CreateDirIfNotExists (Path);
|
Fil_CreateDirIfNotExists (Path);
|
||||||
sprintf (Path,"%s/usr/%02u",
|
sprintf (Path,"%s/%s/%02u",
|
||||||
Gbl.CurrentCrs.PathPriv,
|
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR,
|
||||||
(unsigned) (Gbl.Usrs.Other.UsrDat.UsrCod % 100));
|
(unsigned) (Gbl.Usrs.Other.UsrDat.UsrCod % 100));
|
||||||
Fil_CreateDirIfNotExists (Path);
|
Fil_CreateDirIfNotExists (Path);
|
||||||
|
|
||||||
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/usr/%02u/%ld",
|
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%02u/%ld",
|
||||||
Gbl.CurrentCrs.PathPriv,
|
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR,
|
||||||
(unsigned) (Gbl.Usrs.Other.UsrDat.UsrCod % 100),
|
(unsigned) (Gbl.Usrs.Other.UsrDat.UsrCod % 100),
|
||||||
Gbl.Usrs.Other.UsrDat.UsrCod);
|
Gbl.Usrs.Other.UsrDat.UsrCod);
|
||||||
}
|
}
|
||||||
break;
|
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:
|
case Brw_ADMI_BRIEF_USR:
|
||||||
Str_Copy (Gbl.FileBrowser.Priv.PathAboveRootFolder,
|
Str_Copy (Gbl.FileBrowser.Priv.PathAboveRootFolder,
|
||||||
Gbl.Usrs.Me.PathDir,
|
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.MaxFiles = Brw_MAX_FILES_SHARE_GRP;
|
||||||
Gbl.FileBrowser.Size.MaxFolds = Brw_MAX_FOLDS_SHARE_GRP;
|
Gbl.FileBrowser.Size.MaxFolds = Brw_MAX_FOLDS_SHARE_GRP;
|
||||||
break;
|
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_USR:
|
||||||
case Brw_ADMI_ASSIG_CRS:
|
case Brw_ADMI_ASSIG_CRS:
|
||||||
Gbl.FileBrowser.Size.MaxQuota = Brw_MAX_QUOTA_ASSIG_PER_STD;
|
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.MaxFiles = Brw_MAX_FILES_WORKS_PER_STD;
|
||||||
Gbl.FileBrowser.Size.MaxFolds = Brw_MAX_FOLDS_WORKS_PER_STD;
|
Gbl.FileBrowser.Size.MaxFolds = Brw_MAX_FOLDS_WORKS_PER_STD;
|
||||||
break;
|
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:
|
case Brw_ADMI_BRIEF_USR:
|
||||||
Gbl.FileBrowser.Size.MaxQuota = Brw_MAX_QUOTA_BRIEF[Gbl.Usrs.Me.Role.Max];
|
Gbl.FileBrowser.Size.MaxQuota = Brw_MAX_QUOTA_BRIEF[Gbl.Usrs.Me.Role.Max];
|
||||||
Gbl.FileBrowser.Size.MaxFiles = Brw_MAX_FILES_BRIEF;
|
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_students;
|
||||||
extern const char *Hlp_FILES_Homework_for_teachers;
|
extern const char *Hlp_FILES_Homework_for_teachers;
|
||||||
extern const char *Hlp_FILES_Marks;
|
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_area;
|
||||||
extern const char *Txt_Documents_management_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_Assignments_area;
|
||||||
extern const char *Txt_Works_area;
|
extern const char *Txt_Works_area;
|
||||||
extern const char *Txt_Temporary_private_storage_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_TitleOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER];
|
||||||
const char *Brw_HelpOfFileBrowser[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_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_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_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 *****/
|
/***** Set help link of file browser *****/
|
||||||
Brw_HelpOfFileBrowser[Brw_UNKNOWN ] = NULL; // Brw_UNKNOWN
|
Brw_HelpOfFileBrowser[Brw_UNKNOWN ] = NULL; // Brw_UNKNOWN
|
||||||
Brw_HelpOfFileBrowser[Brw_SHOW_DOCUM_CRS] = Hlp_FILES_Documents; // Brw_SHOW_DOCUM_CRS
|
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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 *****/
|
/***** Set contextual icon in box *****/
|
||||||
Gbl.FileBrowser.IconViewEdit = Brw_ICON_NONE;
|
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_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_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_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;
|
extern const char *Txt_nobody_else_can_access_this_content;
|
||||||
char Subtitle[1024];
|
char Subtitle[1024];
|
||||||
|
|
||||||
|
@ -4086,6 +4163,10 @@ static void Brw_WriteSubtitleOfFileBrowser (void)
|
||||||
sprintf (Subtitle,"%s",
|
sprintf (Subtitle,"%s",
|
||||||
Gbl.Usrs.Other.UsrDat.FullName);
|
Gbl.Usrs.Other.UsrDat.FullName);
|
||||||
break;
|
break;
|
||||||
|
case Brw_ADMI_DOCUM_PRJ:
|
||||||
|
sprintf (Subtitle,"(%s)",
|
||||||
|
Txt_accessible_for_reading_and_writing_by_project_members);
|
||||||
|
break;
|
||||||
case Brw_ADMI_BRIEF_USR:
|
case Brw_ADMI_BRIEF_USR:
|
||||||
sprintf (Subtitle,"%s<br />(%s)",
|
sprintf (Subtitle,"%s<br />(%s)",
|
||||||
Gbl.Usrs.Me.UsrDat.FullName,
|
Gbl.Usrs.Me.UsrDat.FullName,
|
||||||
|
@ -4943,6 +5024,9 @@ static void Brw_GetAndUpdateDateLastAccFileBrowser (void)
|
||||||
case Brw_ADMI_MARKS_GRP:
|
case Brw_ADMI_MARKS_GRP:
|
||||||
Cod = Gbl.CurrentCrs.Grps.GrpCod;
|
Cod = Gbl.CurrentCrs.Grps.GrpCod;
|
||||||
break;
|
break;
|
||||||
|
case Brw_ADMI_DOCUM_PRJ:
|
||||||
|
Cod = Gbl.CurrentCrs.Prjs.PrjCod;
|
||||||
|
break;
|
||||||
case Brw_ADMI_BRIEF_USR:
|
case Brw_ADMI_BRIEF_USR:
|
||||||
Cod = -1L;
|
Cod = -1L;
|
||||||
break;
|
break;
|
||||||
|
@ -6763,6 +6847,7 @@ static void Brw_WriteCurrentClipboard (void)
|
||||||
extern const char *Txt_shared_files_area;
|
extern const char *Txt_shared_files_area;
|
||||||
extern const char *Txt_assignments_area;
|
extern const char *Txt_assignments_area;
|
||||||
extern const char *Txt_works_area;
|
extern const char *Txt_works_area;
|
||||||
|
extern const char *Txt_project_documents;
|
||||||
extern const char *Txt_marks_management_area;
|
extern const char *Txt_marks_management_area;
|
||||||
extern const char *Txt_temporary_private_storage_area;
|
extern const char *Txt_temporary_private_storage_area;
|
||||||
extern const char *Txt_institution;
|
extern const char *Txt_institution;
|
||||||
|
@ -6770,6 +6855,7 @@ static void Brw_WriteCurrentClipboard (void)
|
||||||
extern const char *Txt_degree;
|
extern const char *Txt_degree;
|
||||||
extern const char *Txt_course;
|
extern const char *Txt_course;
|
||||||
extern const char *Txt_group;
|
extern const char *Txt_group;
|
||||||
|
extern const char *Txt_project;
|
||||||
extern const char *Txt_user[Usr_NUM_SEXS];
|
extern const char *Txt_user[Usr_NUM_SEXS];
|
||||||
extern const char *Txt_file_folder;
|
extern const char *Txt_file_folder;
|
||||||
extern const char *Txt_file;
|
extern const char *Txt_file;
|
||||||
|
@ -6781,6 +6867,7 @@ static void Brw_WriteCurrentClipboard (void)
|
||||||
struct Degree Deg;
|
struct Degree Deg;
|
||||||
struct Course Crs;
|
struct Course Crs;
|
||||||
struct GroupData GrpDat;
|
struct GroupData GrpDat;
|
||||||
|
struct Project Prj;
|
||||||
struct UsrData UsrDat;
|
struct UsrData UsrDat;
|
||||||
char TxtClipboardZone[1024];
|
char TxtClipboardZone[1024];
|
||||||
char FileNameToShow[NAME_MAX + 1];
|
char FileNameToShow[NAME_MAX + 1];
|
||||||
|
@ -6927,6 +7014,16 @@ static void Brw_WriteCurrentClipboard (void)
|
||||||
Txt_user[UsrDat.Sex],UsrDat.FullName);
|
Txt_user[UsrDat.Sex],UsrDat.FullName);
|
||||||
Usr_UsrDataDestructor (&UsrDat);
|
Usr_UsrDataDestructor (&UsrDat);
|
||||||
break;
|
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:
|
case Brw_ADMI_MARKS_CRS:
|
||||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||||
Crs_GetDataOfCourseByCod (&Crs);
|
Crs_GetDataOfCourseByCod (&Crs);
|
||||||
|
@ -7097,6 +7194,10 @@ static bool Brw_CheckIfClipboardIsInThisTree (void)
|
||||||
if (Gbl.FileBrowser.Clipboard.Cod == Gbl.CurrentCrs.Grps.GrpCod)
|
if (Gbl.FileBrowser.Clipboard.Cod == Gbl.CurrentCrs.Grps.GrpCod)
|
||||||
return true; // I am in the group of the clipboard
|
return true; // I am in the group of the clipboard
|
||||||
break;
|
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:
|
case Brw_ADMI_BRIEF_USR:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
|
@ -7648,6 +7749,12 @@ static void Brw_RemoveAffectedClipboards (Brw_FileBrowser_t FileBrowser,
|
||||||
(unsigned) FileBrowser,
|
(unsigned) FileBrowser,
|
||||||
Gbl.CurrentCrs.Crs.CrsCod,WorksUsrCod);
|
Gbl.CurrentCrs.Crs.CrsCod,WorksUsrCod);
|
||||||
break;
|
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:
|
case Brw_ADMI_BRIEF_USR:
|
||||||
sprintf (Query,"DELETE FROM clipboard"
|
sprintf (Query,"DELETE FROM clipboard"
|
||||||
" WHERE UsrCod=%ld AND FileBrowser=%u",
|
" WHERE UsrCod=%ld AND FileBrowser=%u",
|
||||||
|
@ -7733,6 +7840,7 @@ static void Brw_PasteClipboard (void)
|
||||||
struct Degree Deg;
|
struct Degree Deg;
|
||||||
struct Course Crs;
|
struct Course Crs;
|
||||||
struct GroupData GrpDat;
|
struct GroupData GrpDat;
|
||||||
|
struct Project Prj;
|
||||||
char PathOrg[PATH_MAX + 1];
|
char PathOrg[PATH_MAX + 1];
|
||||||
struct Brw_NumObjects Pasted;
|
struct Brw_NumObjects Pasted;
|
||||||
long FirstFilCod = -1L; // First file code of the first file or link pasted. Important: initialize here to -1L
|
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);
|
Grp_GetDataOfGroupByCod (&GrpDat);
|
||||||
Crs.CrsCod = GrpDat.CrsCod;
|
Crs.CrsCod = GrpDat.CrsCod;
|
||||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||||
sprintf (PathOrg,"%s/%s/%ld/grp/%ld/%s",
|
sprintf (PathOrg,"%s/%s/%ld/%s/%ld/%s",
|
||||||
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,Crs.CrsCod,
|
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,Crs.CrsCod,Cfg_FOLDER_GRP,
|
||||||
Gbl.FileBrowser.Clipboard.Cod,
|
GrpDat.GrpCod,
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.Path);
|
||||||
else
|
else
|
||||||
Lay_ShowErrorAndExit ("The course of copy source does not exist.");
|
Lay_ShowErrorAndExit ("The course of copy source does not exist.");
|
||||||
|
@ -7815,26 +7923,31 @@ static void Brw_PasteClipboard (void)
|
||||||
case Brw_ADMI_WORKS_USR:
|
case Brw_ADMI_WORKS_USR:
|
||||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||||
sprintf (PathOrg,"%s/%s/%ld/usr/%02u/%ld/%s",
|
sprintf (PathOrg,"%s/%s/%ld/%s/%02u/%ld/%s",
|
||||||
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,Crs.CrsCod,
|
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,Crs.CrsCod,Cfg_FOLDER_USR,
|
||||||
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100),
|
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100),
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.Path);
|
||||||
else
|
else
|
||||||
Lay_ShowErrorAndExit ("The course of copy source does not exist.");
|
Lay_ShowErrorAndExit ("The course of copy source does not exist.");
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_ASSIG_CRS:
|
case Brw_ADMI_DOCUM_PRJ:
|
||||||
case Brw_ADMI_WORKS_CRS:
|
Prj.PrjCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
Prj_GetDataOfProjectByCod (&Prj);
|
||||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
if (Prj.PrjCod > 0)
|
||||||
sprintf (PathOrg,"%s/%s/%ld/usr/%02u/%ld/%s",
|
{
|
||||||
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,Crs.CrsCod,
|
Crs.CrsCod = Prj.CrsCod;
|
||||||
(unsigned) (Gbl.FileBrowser.Clipboard.WorksUsrCod % 100),
|
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||||
Gbl.FileBrowser.Clipboard.WorksUsrCod,
|
sprintf (PathOrg,"%s/%s/%ld/%s/%02u/%ld/%s",
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
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
|
else
|
||||||
Lay_ShowErrorAndExit ("The course of copy source does not exist.");
|
Lay_ShowErrorAndExit ("The course of copy source does not exist.");
|
||||||
break;
|
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_BRIEF_USR:
|
case Brw_ADMI_BRIEF_USR:
|
||||||
sprintf (PathOrg,"%s/%s",
|
sprintf (PathOrg,"%s/%s",
|
||||||
|
@ -10083,6 +10196,7 @@ void Brw_ChgFileMetadata (void)
|
||||||
case Brw_ADMI_ASSIG_CRS:
|
case Brw_ADMI_ASSIG_CRS:
|
||||||
case Brw_ADMI_WORKS_USR:
|
case Brw_ADMI_WORKS_USR:
|
||||||
case Brw_ADMI_WORKS_CRS:
|
case Brw_ADMI_WORKS_CRS:
|
||||||
|
case Brw_ADMI_DOCUM_PRJ:
|
||||||
case Brw_ADMI_BRIEF_USR:
|
case Brw_ADMI_BRIEF_USR:
|
||||||
PublicFileAfterEdition = false; // Files in these zones can not be public
|
PublicFileAfterEdition = false; // Files in these zones can not be public
|
||||||
License = Brw_GetParLicense ();
|
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_Shared_files_area;
|
||||||
extern const char *Txt_Assignments_area;
|
extern const char *Txt_Assignments_area;
|
||||||
extern const char *Txt_Works_area;
|
extern const char *Txt_Works_area;
|
||||||
|
extern const char *Txt_Project_documents;
|
||||||
extern const char *Txt_Marks_area;
|
extern const char *Txt_Marks_area;
|
||||||
extern const char *Txt_Temporary_private_storage_area;
|
extern const char *Txt_Temporary_private_storage_area;
|
||||||
extern const char *Txt_Go_to_X;
|
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:
|
case Brw_ADMI_WORKS_USR:
|
||||||
Title = Txt_Works_area;
|
Title = Txt_Works_area;
|
||||||
break;
|
break;
|
||||||
|
case Brw_ADMI_DOCUM_PRJ:
|
||||||
|
Title = Txt_Project_documents;
|
||||||
|
break;
|
||||||
case Brw_ADMI_MARKS_CRS:
|
case Brw_ADMI_MARKS_CRS:
|
||||||
case Brw_ADMI_MARKS_GRP:
|
case Brw_ADMI_MARKS_GRP:
|
||||||
Title = Txt_Marks_area;
|
Title = Txt_Marks_area;
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
#define Brw_MAX_CHARS_FOLDER 30 // 30
|
#define Brw_MAX_CHARS_FOLDER 30 // 30
|
||||||
#define Brw_MAX_BYTES_FOLDER NAME_MAX // 255
|
#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,
|
// The following types are stored in several database tables as numeric fields,
|
||||||
// so don't change numbers!
|
// so don't change numbers!
|
||||||
typedef enum
|
typedef enum
|
||||||
|
@ -71,6 +71,7 @@ typedef enum
|
||||||
Brw_ADMI_SHARE_INS = 24,
|
Brw_ADMI_SHARE_INS = 24,
|
||||||
Brw_ADMI_TEACH_CRS = 25,
|
Brw_ADMI_TEACH_CRS = 25,
|
||||||
Brw_ADMI_TEACH_GRP = 26,
|
Brw_ADMI_TEACH_GRP = 26,
|
||||||
|
Brw_ADMI_DOCUM_PRJ = 27,
|
||||||
} Brw_FileBrowser_t;
|
} Brw_FileBrowser_t;
|
||||||
|
|
||||||
// The following types are stored in files and clipboard tables as numeric fields, so don't change numbers!
|
// 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_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_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_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_MARKS "calificaciones" // TODO: It should be "mrk"
|
||||||
#define Brw_INTERNAL_NAME_ROOT_FOLDER_BRIEF "maletin" // TODO: It should be "brf"
|
#define Brw_INTERNAL_NAME_ROOT_FOLDER_BRIEF "maletin" // TODO: It should be "brf"
|
||||||
|
|
||||||
|
|
|
@ -463,6 +463,7 @@ struct Globals
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
Prj_WhichProjects_t WhichPrjs; // Show my projects or all projects
|
Prj_WhichProjects_t WhichPrjs; // Show my projects or all projects
|
||||||
|
long PrjCod;
|
||||||
} Prjs;
|
} Prjs;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
|
|
@ -1474,6 +1474,27 @@ const char *Hlp_FILES_Marks =
|
||||||
"FILES.Marks.en";
|
"FILES.Marks.en";
|
||||||
#endif
|
#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 *****/
|
/***** USERS tab *****/
|
||||||
|
|
||||||
const char *Hlp_USERS_Groups =
|
const char *Hlp_USERS_Groups =
|
||||||
|
@ -3646,24 +3667,3 @@ const char *Hlp_PROFILE_Preferences_notifications =
|
||||||
#elif L==9
|
#elif L==9
|
||||||
"PROFILE.Preferences.en#notifications";
|
"PROFILE.Preferences.en#notifications";
|
||||||
#endif
|
#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 ActFrmCreAsgCrs: // Brw_ADMI_ASSIG_CRS
|
||||||
case ActFrmCreWrkUsr: // Brw_ADMI_WORKS_USR
|
case ActFrmCreWrkUsr: // Brw_ADMI_WORKS_USR
|
||||||
case ActFrmCreWrkCrs: // Brw_ADMI_WORKS_CRS
|
case ActFrmCreWrkCrs: // Brw_ADMI_WORKS_CRS
|
||||||
|
case ActFrmCreDocPrj: // Brw_ADMI_DOCUM_PRJ
|
||||||
case ActFrmCreMrkCrs: // Brw_ADMI_MARKS_CRS
|
case ActFrmCreMrkCrs: // Brw_ADMI_MARKS_CRS
|
||||||
case ActFrmCreMrkGrp: // Brw_ADMI_MARKS_GRP
|
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\""
|
fprintf (Gbl.F.Out,"<link rel=\"StyleSheet\""
|
||||||
" href=\"%s/dropzone/css/dropzone.css\""
|
" href=\"%s/dropzone/css/dropzone.css\""
|
||||||
" type=\"text/css\" />\n",
|
" type=\"text/css\" />\n",
|
||||||
|
@ -594,6 +595,7 @@ static void Lay_WriteScripts (void)
|
||||||
case ActFrmCreAsgCrs: // Brw_ADMI_ASSIG_CRS
|
case ActFrmCreAsgCrs: // Brw_ADMI_ASSIG_CRS
|
||||||
case ActFrmCreWrkUsr: // Brw_ADMI_WORKS_USR
|
case ActFrmCreWrkUsr: // Brw_ADMI_WORKS_USR
|
||||||
case ActFrmCreWrkCrs: // Brw_ADMI_WORKS_CRS
|
case ActFrmCreWrkCrs: // Brw_ADMI_WORKS_CRS
|
||||||
|
case ActFrmCreDocPrj: // Brw_ADMI_DOCUM_PRJ
|
||||||
case ActFrmCreMrkCrs: // Brw_ADMI_MARKS_CRS
|
case ActFrmCreMrkCrs: // Brw_ADMI_MARKS_CRS
|
||||||
case ActFrmCreMrkGrp: // Brw_ADMI_MARKS_GRP
|
case ActFrmCreMrkGrp: // Brw_ADMI_MARKS_GRP
|
||||||
case ActFrmCreBrf: // Brw_ADMI_BRIEF_USR
|
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 *****/
|
/***** Get project data *****/
|
||||||
Prj.PrjCod = Prj_GetParamPrjCod ();
|
Prj.PrjCod = Prj_GetParamPrjCod ();
|
||||||
Prj_GetDataOfProjectByCod (&Prj);
|
Prj_GetDataOfProjectByCod (&Prj);
|
||||||
|
Gbl.CurrentCrs.Prjs.PrjCod = Prj.PrjCod; // Used in file browser
|
||||||
|
|
||||||
/***** Start box and table *****/
|
/***** Start box and table *****/
|
||||||
Box_StartBoxTable (NULL,Prj.Title,NULL,
|
Box_StartBoxTable (NULL,Prj.Title,NULL,
|
||||||
|
@ -1959,7 +1960,7 @@ void Prj_GetDataOfProjectByCod (struct Project *Prj)
|
||||||
if (Prj->PrjCod > 0)
|
if (Prj->PrjCod > 0)
|
||||||
{
|
{
|
||||||
/***** Build query *****/
|
/***** 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(StartTime),"
|
||||||
"UNIX_TIMESTAMP(EndTime),"
|
"UNIX_TIMESTAMP(EndTime),"
|
||||||
"NOW() BETWEEN StartTime AND EndTime,"
|
"NOW() BETWEEN StartTime AND EndTime,"
|
||||||
|
@ -1969,19 +1970,20 @@ void Prj_GetDataOfProjectByCod (struct Project *Prj)
|
||||||
Prj->PrjCod,Gbl.CurrentCrs.Crs.CrsCod);
|
Prj->PrjCod,Gbl.CurrentCrs.Crs.CrsCod);
|
||||||
/*
|
/*
|
||||||
row[ 0]: PrjCod
|
row[ 0]: PrjCod
|
||||||
row[ 1]: DptCod
|
row[ 1]: CrsCod
|
||||||
row[ 2]: Hidden
|
row[ 2]: DptCod
|
||||||
row[ 3]: Preassigned
|
row[ 3]: Hidden
|
||||||
row[ 4]: NumStds
|
row[ 4]: Preassigned
|
||||||
row[ 5]: Proposal
|
row[ 5]: NumStds
|
||||||
row[ 6]: UNIX_TIMESTAMP(StartTime)
|
row[ 6]: Proposal
|
||||||
row[ 7]: UNIX_TIMESTAMP(EndTime)
|
row[ 7]: UNIX_TIMESTAMP(StartTime)
|
||||||
row[ 8]: NOW() BETWEEN StartTime AND EndTime
|
row[ 8]: UNIX_TIMESTAMP(EndTime)
|
||||||
row[ 9]: Title
|
row[ 9]: NOW() BETWEEN StartTime AND EndTime
|
||||||
row[10]: Description
|
row[10]: Title
|
||||||
row[11]: Knowledge
|
row[11]: Description
|
||||||
row[12]: Materials
|
row[12]: Knowledge
|
||||||
row[13]: URL
|
row[13]: Materials
|
||||||
|
row[14]: URL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***** Get data of project *****/
|
/***** 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 = mysql_fetch_row (mysql_res);
|
||||||
/*
|
/*
|
||||||
row[ 0]: PrjCod
|
row[ 0]: PrjCod
|
||||||
row[ 1]: DptCod
|
row[ 1]: CrsCod
|
||||||
row[ 2]: Hidden
|
row[ 2]: DptCod
|
||||||
row[ 3]: Preassigned
|
row[ 3]: Hidden
|
||||||
row[ 4]: NumStds
|
row[ 4]: Preassigned
|
||||||
row[ 5]: Proposal
|
row[ 5]: NumStds
|
||||||
row[ 6]: UNIX_TIMESTAMP(StartTime)
|
row[ 6]: Proposal
|
||||||
row[ 7]: UNIX_TIMESTAMP(EndTime)
|
row[ 7]: UNIX_TIMESTAMP(StartTime)
|
||||||
row[ 8]: NOW() BETWEEN StartTime AND EndTime
|
row[ 8]: UNIX_TIMESTAMP(EndTime)
|
||||||
row[ 9]: Title
|
row[ 9]: NOW() BETWEEN StartTime AND EndTime
|
||||||
row[10]: Description
|
row[10]: Title
|
||||||
row[11]: Knowledge
|
row[11]: Description
|
||||||
row[12]: Materials
|
row[12]: Knowledge
|
||||||
row[13]: URL
|
row[13]: Materials
|
||||||
|
row[14]: URL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Get code of the project (row[0]) */
|
/* Get code of the project (row[0]) */
|
||||||
Prj->PrjCod = Str_ConvertStrCodToLongCod (row[0]);
|
Prj->PrjCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||||
|
|
||||||
/* Get code of the department (row[1]) */
|
/* Get code of the course (row[1]) */
|
||||||
Prj->DptCod = Str_ConvertStrCodToLongCod (row[1]);
|
Prj->CrsCod = Str_ConvertStrCodToLongCod (row[1]);
|
||||||
|
|
||||||
/* Get whether the project is hidden or not (row[2]) */
|
/* Get code of the department (row[2]) */
|
||||||
Prj->Hidden = (row[2][0] == 'Y');
|
Prj->DptCod = Str_ConvertStrCodToLongCod (row[2]);
|
||||||
|
|
||||||
/* Get if project is preassigned or not (row[3]) */
|
/* Get whether the project is hidden or not (row[3]) */
|
||||||
Prj->Preassigned = (row[3][0] == 'Y') ? Prj_PREASSIGNED :
|
Prj->Hidden = (row[3][0] == 'Y');
|
||||||
Prj_NOT_PREASSIGNED;
|
|
||||||
|
|
||||||
/* Get if project is preassigned or not (row[4]) */
|
/* 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)
|
if (NumLong >= 0)
|
||||||
Prj->NumStds = (unsigned) NumLong;
|
Prj->NumStds = (unsigned) NumLong;
|
||||||
else
|
else
|
||||||
Prj->NumStds = 1;
|
Prj->NumStds = 1;
|
||||||
|
|
||||||
/* Get project status (row[5]) */
|
/* Get project status (row[6]) */
|
||||||
Prj->Proposal = Prj_PROPOSAL_DEFAULT;
|
Prj->Proposal = Prj_PROPOSAL_DEFAULT;
|
||||||
for (Proposal = (Prj_Proposal_t) 0;
|
for (Proposal = (Prj_Proposal_t) 0;
|
||||||
Proposal <= (Prj_Proposal_t) (Prj_NUM_PROPOSAL_TYPES - 1);
|
Proposal <= (Prj_Proposal_t) (Prj_NUM_PROPOSAL_TYPES - 1);
|
||||||
Proposal++)
|
Proposal++)
|
||||||
if (!strcmp (Prj_Proposal_DB[Proposal],row[5]))
|
if (!strcmp (Prj_Proposal_DB[Proposal],row[6]))
|
||||||
{
|
{
|
||||||
Prj->Proposal = Proposal;
|
Prj->Proposal = Proposal;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get start date (row[6] holds the start UTC time) */
|
/* Get start date (row[7] holds the start UTC time) */
|
||||||
Prj->TimeUTC[Dat_START_TIME] = Dat_GetUNIXTimeFromStr (row[6]);
|
Prj->TimeUTC[Dat_START_TIME] = Dat_GetUNIXTimeFromStr (row[7]);
|
||||||
|
|
||||||
/* Get end date (row[7] holds the end UTC time) */
|
/* Get end date (row[8] holds the end UTC time) */
|
||||||
Prj->TimeUTC[Dat_END_TIME ] = Dat_GetUNIXTimeFromStr (row[7]);
|
Prj->TimeUTC[Dat_END_TIME ] = Dat_GetUNIXTimeFromStr (row[8]);
|
||||||
|
|
||||||
/* Get whether the project is open or closed (row[8]) */
|
/* Get whether the project is open or closed (row[9]) */
|
||||||
Prj->Open = (row[8][0] == '1');
|
Prj->Open = (row[9][0] == '1');
|
||||||
|
|
||||||
/* Get the title of the project (row[9]) */
|
/* Get the title of the project (row[10]) */
|
||||||
Str_Copy (Prj->Title,row[9],
|
Str_Copy (Prj->Title,row[10],
|
||||||
Prj_MAX_BYTES_PROJECT_TITLE);
|
Prj_MAX_BYTES_PROJECT_TITLE);
|
||||||
|
|
||||||
/* Get the description of the project (row[10]) */
|
/* Get the description of the project (row[11]) */
|
||||||
Str_Copy (Prj->Description,row[10],
|
Str_Copy (Prj->Description,row[11],
|
||||||
Cns_MAX_BYTES_TEXT);
|
Cns_MAX_BYTES_TEXT);
|
||||||
|
|
||||||
/* Get the required knowledge for the project (row[11]) */
|
/* Get the required knowledge for the project (row[12]) */
|
||||||
Str_Copy (Prj->Knowledge,row[11],
|
Str_Copy (Prj->Knowledge,row[12],
|
||||||
Cns_MAX_BYTES_TEXT);
|
Cns_MAX_BYTES_TEXT);
|
||||||
|
|
||||||
/* Get the required materials for the project (row[12]) */
|
/* Get the required materials for the project (row[13]) */
|
||||||
Str_Copy (Prj->Materials,row[12],
|
Str_Copy (Prj->Materials,row[13],
|
||||||
Cns_MAX_BYTES_TEXT);
|
Cns_MAX_BYTES_TEXT);
|
||||||
|
|
||||||
/* Get the URL of the project (row[13]) */
|
/* Get the URL of the project (row[14]) */
|
||||||
Str_Copy (Prj->URL,row[13],
|
Str_Copy (Prj->URL,row[14],
|
||||||
Cns_MAX_BYTES_WWW);
|
Cns_MAX_BYTES_WWW);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2104,10 +2110,11 @@ static void Prj_ResetProject (struct Project *Prj)
|
||||||
{
|
{
|
||||||
if (Prj->PrjCod <= 0) // If > 0 ==> keep value
|
if (Prj->PrjCod <= 0) // If > 0 ==> keep value
|
||||||
Prj->PrjCod = -1L;
|
Prj->PrjCod = -1L;
|
||||||
|
Prj->CrsCod = -1L;
|
||||||
Prj->Hidden = false;
|
Prj->Hidden = false;
|
||||||
Prj->Preassigned = Prj_PREASSIGNED_DEFAULT;
|
Prj->Preassigned = Prj_PREASSIGNED_DEFAULT;
|
||||||
Prj->NumStds = 1;
|
Prj->NumStds = 1;
|
||||||
Prj->Proposal = Prj_PROPOSAL_DEFAULT;
|
Prj->Proposal = Prj_PROPOSAL_DEFAULT;
|
||||||
Prj->TimeUTC[Dat_START_TIME] =
|
Prj->TimeUTC[Dat_START_TIME] =
|
||||||
Prj->TimeUTC[Dat_END_TIME ] = (time_t) 0;
|
Prj->TimeUTC[Dat_END_TIME ] = (time_t) 0;
|
||||||
Prj->Open = false;
|
Prj->Open = false;
|
||||||
|
@ -2116,7 +2123,7 @@ static void Prj_ResetProject (struct Project *Prj)
|
||||||
Prj->Description[0] = '\0';
|
Prj->Description[0] = '\0';
|
||||||
Prj->Knowledge[0] = '\0';
|
Prj->Knowledge[0] = '\0';
|
||||||
Prj->Materials[0] = '\0';
|
Prj->Materials[0] = '\0';
|
||||||
Prj->URL[0] = '\0';
|
Prj->URL[0] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -70,6 +70,7 @@ typedef enum
|
||||||
struct Project
|
struct Project
|
||||||
{
|
{
|
||||||
long PrjCod;
|
long PrjCod;
|
||||||
|
long CrsCod;
|
||||||
bool Hidden;
|
bool Hidden;
|
||||||
Prj_Preassigned_t Preassigned;
|
Prj_Preassigned_t Preassigned;
|
||||||
unsigned NumStds;
|
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";
|
"acessível para leitura e escrita pelos administradores da instituição";
|
||||||
#endif
|
#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 =
|
const char *Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_centre =
|
||||||
#if L==1
|
#if L==1
|
||||||
"accessible per a lectura i escriptura per estudiants i professors del centre";
|
"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";
|
"Privado, disponível para alguns usuários identificados";
|
||||||
#endif
|
#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
|
const char *Txt_Project_X_is_now_hidden = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==1
|
#if L==1
|
||||||
"El projecte <strong>%s</strong> ara està ocult.";
|
"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"
|
"prywatne"
|
||||||
#elif L==9
|
#elif L==9
|
||||||
"privados"
|
"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
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -83,6 +83,7 @@ const Act_Action_t ZIP_ActZIPFolder[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||||
ActZIPShaIns, // Brw_ADMI_SHARE_INS
|
ActZIPShaIns, // Brw_ADMI_SHARE_INS
|
||||||
ActZIPTchCrs, // Brw_ADMI_TEACH_CRS
|
ActZIPTchCrs, // Brw_ADMI_TEACH_CRS
|
||||||
ActZIPTchGrp, // Brw_ADMI_TEACH_GRP
|
ActZIPTchGrp, // Brw_ADMI_TEACH_GRP
|
||||||
|
ActZIPDocPrj, // Brw_ADMI_DOCUM_PRJ
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
Loading…
Reference in New Issue