mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-02 06:45:30 +02:00
Version 17.16.2
This commit is contained in:
parent
49f3c6e51b
commit
f2f5ed1e06
|
@ -248,17 +248,22 @@
|
||||||
|
|
||||||
// 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
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 17.16 (2017-10-02)"
|
#define Log_PLATFORM_VERSION "SWAD 17.16.2 (2017-10-03)"
|
||||||
#define CSS_FILE "swad17.0.css"
|
#define CSS_FILE "swad17.0.css"
|
||||||
#define JS_FILE "swad17.15.js"
|
#define JS_FILE "swad17.15.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.16.2: Oct 03, 2017 Fixed bug in pagination of projects. (232061 lines)
|
||||||
|
Version 17.16.1: Oct 03, 2017 Changing expansion of file subtrees. Not finished.
|
||||||
|
Fixed bug in notifications about new private files. (232060 lines)
|
||||||
Version 17.16: Oct 02, 2017 Briefcase moved from profile tab to files tab. (232028 lines)
|
Version 17.16: Oct 02, 2017 Briefcase moved from profile tab to files tab. (232028 lines)
|
||||||
Version 17.15: Oct 02, 2017 Status in projects changed for proposal. (231985 lines)
|
Version 17.15: Oct 02, 2017 Status in projects changed for proposal. (231985 lines)
|
||||||
4 changes necessary in database:
|
4 changes necessary in database:
|
||||||
|
|
|
@ -65,10 +65,10 @@ extern struct Globals Gbl;
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
Brw_EXPAND_TREE_NOTHING,
|
Brw_ICON_TREE_NOTHING, // No icon to expand/contract a subtree
|
||||||
Brw_EXPAND_TREE_PLUS,
|
Brw_ICON_TREE_EXPAND, // Icon to expand a contracted subtree
|
||||||
Brw_EXPAND_TREE_MINUS,
|
Brw_ICON_TREE_CONTRACT, // Icon to contract a expanded subtree
|
||||||
} Brw_ExpandTree_t;
|
} Brw_IconTree_t;
|
||||||
|
|
||||||
struct Brw_NumObjects
|
struct Brw_NumObjects
|
||||||
{
|
{
|
||||||
|
@ -1489,9 +1489,12 @@ static long Brw_GetGrpLastAccZone (const char *FieldNameDB);
|
||||||
static void Brw_ResetFileBrowserSize (void);
|
static void Brw_ResetFileBrowserSize (void);
|
||||||
static void Brw_CalcSizeOfDirRecursive (unsigned Level,char *Path);
|
static void Brw_CalcSizeOfDirRecursive (unsigned Level,char *Path);
|
||||||
static void Brw_ListDir (unsigned Level,
|
static void Brw_ListDir (unsigned Level,
|
||||||
|
bool TreeContracted,
|
||||||
const char Path[PATH_MAX + 1],
|
const char Path[PATH_MAX + 1],
|
||||||
const char PathInTree[PATH_MAX + 1]);
|
const char PathInTree[PATH_MAX + 1]);
|
||||||
static bool Brw_WriteRowFileBrowser (unsigned Level,Brw_ExpandTree_t ExpandTree,
|
static bool Brw_WriteRowFileBrowser (unsigned Level,
|
||||||
|
bool TreeContracted,
|
||||||
|
Brw_IconTree_t IconThisRow,
|
||||||
const char PathInTree[PATH_MAX + 1],
|
const char PathInTree[PATH_MAX + 1],
|
||||||
const char *FileName);
|
const char *FileName);
|
||||||
static void Brw_PutIconsRemoveCopyPaste (unsigned Level,
|
static void Brw_PutIconsRemoveCopyPaste (unsigned Level,
|
||||||
|
@ -1507,14 +1510,15 @@ static void Brw_PutIconCopy (const char PathInTree[PATH_MAX + 1],
|
||||||
static void Brw_PutIconPasteOn (const char PathInTree[PATH_MAX + 1],
|
static void Brw_PutIconPasteOn (const char PathInTree[PATH_MAX + 1],
|
||||||
const char *FileName,const char *FileNameToShow);
|
const char *FileName,const char *FileNameToShow);
|
||||||
static void Brw_PutIconPasteOff (void);
|
static void Brw_PutIconPasteOff (void);
|
||||||
static void Brw_IndentAndWriteIconExpandContract (unsigned Level,Brw_ExpandTree_t ExpandTree,
|
static void Brw_IndentAndWriteIconExpandContract (unsigned Level,Brw_IconTree_t IconThisRow,
|
||||||
const char PathInTree[PATH_MAX + 1],
|
const char PathInTree[PATH_MAX + 1],
|
||||||
const char *FileName,const char *FileNameToShow);
|
const char *FileName,
|
||||||
|
const char *FileNameToShow);
|
||||||
static void Brw_IndentDependingOnLevel (unsigned Level);
|
static void Brw_IndentDependingOnLevel (unsigned Level);
|
||||||
static void Brw_PutIconShow (unsigned Level,const char *PathInTree,const char *FileName,const char *FileNameToShow);
|
static void Brw_PutIconShow (unsigned Level,const char *PathInTree,const char *FileName,const char *FileNameToShow);
|
||||||
static void Brw_PutIconHide (unsigned Level,const char *PathInTree,const char *FileName,const char *FileNameToShow);
|
static void Brw_PutIconHide (unsigned Level,const char *PathInTree,const char *FileName,const char *FileNameToShow);
|
||||||
static bool Brw_CheckIfAnyUpperLevelIsHidden (unsigned CurrentLevel);
|
static bool Brw_CheckIfAnyUpperLevelIsHidden (unsigned CurrentLevel);
|
||||||
static void Brw_PutIconFolder (unsigned Level,Brw_ExpandTree_t ExpandTree,
|
static void Brw_PutIconFolder (unsigned Level,Brw_IconTree_t IconSubtree,
|
||||||
const char *PathInTree,const char *FileName,const char *FileNameToShow);
|
const char *PathInTree,const char *FileName,const char *FileNameToShow);
|
||||||
static void Brw_PutIconNewFileOrFolder (void);
|
static void Brw_PutIconNewFileOrFolder (void);
|
||||||
static void Brw_PutIconFileWithLinkToViewMetadata (unsigned Size,
|
static void Brw_PutIconFileWithLinkToViewMetadata (unsigned Size,
|
||||||
|
@ -3697,8 +3701,15 @@ static void Brw_ShowFileBrowser (void)
|
||||||
fprintf (Gbl.F.Out,"<table class=\"BROWSER_TABLE\">");
|
fprintf (Gbl.F.Out,"<table class=\"BROWSER_TABLE\">");
|
||||||
Brw_SetFullPathInTree (Brw_RootFolderInternalNames[Gbl.FileBrowser.Type],".");
|
Brw_SetFullPathInTree (Brw_RootFolderInternalNames[Gbl.FileBrowser.Type],".");
|
||||||
Gbl.FileBrowser.FileType = Brw_IS_FOLDER;
|
Gbl.FileBrowser.FileType = Brw_IS_FOLDER;
|
||||||
if (Brw_WriteRowFileBrowser (0,Brw_EXPAND_TREE_NOTHING,Brw_RootFolderInternalNames[Gbl.FileBrowser.Type],"."))
|
if (Brw_WriteRowFileBrowser (0,
|
||||||
Brw_ListDir (1,Gbl.FileBrowser.Priv.PathRootFolder,Brw_RootFolderInternalNames[Gbl.FileBrowser.Type]);
|
false, // Tree not contracted
|
||||||
|
Brw_ICON_TREE_NOTHING,
|
||||||
|
Brw_RootFolderInternalNames[Gbl.FileBrowser.Type],
|
||||||
|
"."))
|
||||||
|
Brw_ListDir (1,
|
||||||
|
false, // Tree not contracted
|
||||||
|
Gbl.FileBrowser.Priv.PathRootFolder,
|
||||||
|
Brw_RootFolderInternalNames[Gbl.FileBrowser.Type]);
|
||||||
fprintf (Gbl.F.Out,"</table>");
|
fprintf (Gbl.F.Out,"</table>");
|
||||||
|
|
||||||
/***** Show and store number of documents found *****/
|
/***** Show and store number of documents found *****/
|
||||||
|
@ -5076,6 +5087,7 @@ static void Brw_CalcSizeOfDirRecursive (unsigned Level,char *Path)
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Brw_ListDir (unsigned Level,
|
static void Brw_ListDir (unsigned Level,
|
||||||
|
bool TreeContracted,
|
||||||
const char Path[PATH_MAX + 1],
|
const char Path[PATH_MAX + 1],
|
||||||
const char PathInTree[PATH_MAX + 1])
|
const char PathInTree[PATH_MAX + 1])
|
||||||
{
|
{
|
||||||
|
@ -5088,7 +5100,7 @@ static void Brw_ListDir (unsigned Level,
|
||||||
char PathFileRel[PATH_MAX + 1];
|
char PathFileRel[PATH_MAX + 1];
|
||||||
char PathFileInExplTree[PATH_MAX + 1];
|
char PathFileInExplTree[PATH_MAX + 1];
|
||||||
struct stat FileStatus;
|
struct stat FileStatus;
|
||||||
Brw_ExpandTree_t ExpandTree = Brw_EXPAND_TREE_NOTHING; // Initialized to avoid warning
|
Brw_IconTree_t IconSubtree = Brw_ICON_TREE_NOTHING; // Initialized to avoid warning
|
||||||
|
|
||||||
/***** Scan directory *****/
|
/***** Scan directory *****/
|
||||||
if ((NumFiles = scandir (Path,&FileList,NULL,alphasort)) >= 0) // No error
|
if ((NumFiles = scandir (Path,&FileList,NULL,alphasort)) >= 0) // No error
|
||||||
|
@ -5112,18 +5124,18 @@ static void Brw_ListDir (unsigned Level,
|
||||||
else if (S_ISDIR (FileStatus.st_mode)) // It's a directory
|
else if (S_ISDIR (FileStatus.st_mode)) // It's a directory
|
||||||
{
|
{
|
||||||
if (Gbl.FileBrowser.FullTree)
|
if (Gbl.FileBrowser.FullTree)
|
||||||
ExpandTree = Brw_EXPAND_TREE_NOTHING;
|
IconSubtree = Brw_ICON_TREE_NOTHING;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/***** Check if this subdirectory has files or folders in it *****/
|
/***** Check if this subdirectory has files or folders in it *****/
|
||||||
if ((NumFilesInSubdir = scandir (PathFileRel,&SubdirFileList,NULL,NULL)) >= 0) // No error
|
if ((NumFilesInSubdir = scandir (PathFileRel,&SubdirFileList,NULL,NULL)) >= 0) // No error
|
||||||
{
|
{
|
||||||
if (NumFilesInSubdir <= 2)
|
if (NumFilesInSubdir <= 2)
|
||||||
ExpandTree = Brw_EXPAND_TREE_NOTHING;
|
IconSubtree = Brw_ICON_TREE_NOTHING;
|
||||||
else
|
else
|
||||||
/***** Check if the tree starting at this subdirectory must be expanded *****/
|
/***** Check if the tree starting at this subdirectory must be expanded *****/
|
||||||
ExpandTree = Brw_GetIfExpandedTree (Gbl.FileBrowser.Priv.FullPathInTree) ? Brw_EXPAND_TREE_MINUS :
|
IconSubtree = Brw_GetIfExpandedTree (Gbl.FileBrowser.Priv.FullPathInTree) ? Brw_ICON_TREE_CONTRACT :
|
||||||
Brw_EXPAND_TREE_PLUS;
|
Brw_ICON_TREE_EXPAND;
|
||||||
for (NumFileInSubdir = 0;
|
for (NumFileInSubdir = 0;
|
||||||
NumFileInSubdir < NumFilesInSubdir;
|
NumFileInSubdir < NumFilesInSubdir;
|
||||||
NumFileInSubdir++)
|
NumFileInSubdir++)
|
||||||
|
@ -5136,18 +5148,26 @@ static void Brw_ListDir (unsigned Level,
|
||||||
|
|
||||||
/***** Write a row for the subdirectory *****/
|
/***** Write a row for the subdirectory *****/
|
||||||
Gbl.FileBrowser.FileType = Brw_IS_FOLDER;
|
Gbl.FileBrowser.FileType = Brw_IS_FOLDER;
|
||||||
if (Brw_WriteRowFileBrowser (Level,ExpandTree,PathInTree,FileList[NumFile]->d_name))
|
if (Brw_WriteRowFileBrowser (Level,
|
||||||
if (ExpandTree == Brw_EXPAND_TREE_MINUS ||
|
TreeContracted,
|
||||||
ExpandTree == Brw_EXPAND_TREE_NOTHING)
|
IconSubtree,
|
||||||
if (Level < Brw_MAX_DIR_LEVELS)
|
PathInTree,
|
||||||
/* List subtree starting at this this directory */
|
FileList[NumFile]->d_name))
|
||||||
Brw_ListDir (Level + 1,PathFileRel,PathFileInExplTree);
|
if (Level < Brw_MAX_DIR_LEVELS)
|
||||||
|
/* List subtree starting at this this directory */
|
||||||
|
Brw_ListDir (Level + 1,
|
||||||
|
TreeContracted || IconSubtree == Brw_ICON_TREE_EXPAND,
|
||||||
|
PathFileRel,PathFileInExplTree);
|
||||||
}
|
}
|
||||||
else if (S_ISREG (FileStatus.st_mode)) // It's a regular file
|
else if (S_ISREG (FileStatus.st_mode)) // It's a regular file
|
||||||
{
|
{
|
||||||
Gbl.FileBrowser.FileType = Str_FileIs (FileList[NumFile]->d_name,"url") ? Brw_IS_LINK :
|
Gbl.FileBrowser.FileType = Str_FileIs (FileList[NumFile]->d_name,"url") ? Brw_IS_LINK :
|
||||||
Brw_IS_FILE;
|
Brw_IS_FILE;
|
||||||
Brw_WriteRowFileBrowser (Level,Brw_EXPAND_TREE_NOTHING,PathInTree,FileList[NumFile]->d_name);
|
Brw_WriteRowFileBrowser (Level,
|
||||||
|
TreeContracted,
|
||||||
|
Brw_ICON_TREE_NOTHING,
|
||||||
|
PathInTree,
|
||||||
|
FileList[NumFile]->d_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free ((void *) FileList[NumFile]);
|
free ((void *) FileList[NumFile]);
|
||||||
|
@ -5165,7 +5185,9 @@ static void Brw_ListDir (unsigned Level,
|
||||||
// If it is not the first row, it is shown or not depending on whether it is hidden or not
|
// If it is not the first row, it is shown or not depending on whether it is hidden or not
|
||||||
// If the row is visible, return true. If it is hidden, return false
|
// If the row is visible, return true. If it is hidden, return false
|
||||||
|
|
||||||
static bool Brw_WriteRowFileBrowser (unsigned Level,Brw_ExpandTree_t ExpandTree,
|
static bool Brw_WriteRowFileBrowser (unsigned Level,
|
||||||
|
bool TreeContracted,
|
||||||
|
Brw_IconTree_t IconThisRow,
|
||||||
const char PathInTree[PATH_MAX + 1],
|
const char PathInTree[PATH_MAX + 1],
|
||||||
const char *FileName)
|
const char *FileName)
|
||||||
{
|
{
|
||||||
|
@ -5278,7 +5300,10 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,Brw_ExpandTree_t ExpandTree,
|
||||||
FileName,FileNameToShow);
|
FileName,FileNameToShow);
|
||||||
|
|
||||||
/***** Start this row *****/
|
/***** Start this row *****/
|
||||||
fprintf (Gbl.F.Out,"<tr>");
|
fprintf (Gbl.F.Out,"<tr");
|
||||||
|
if (TreeContracted) // This row is inside a contracted subtree
|
||||||
|
fprintf (Gbl.F.Out," style=\"display:none;\"");
|
||||||
|
fprintf (Gbl.F.Out,">");
|
||||||
|
|
||||||
/****** If current action allows file administration... ******/
|
/****** If current action allows file administration... ******/
|
||||||
Gbl.FileBrowser.ICanEditFileOrFolder = false;
|
Gbl.FileBrowser.ICanEditFileOrFolder = false;
|
||||||
|
@ -5309,8 +5334,10 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,Brw_ExpandTree_t ExpandTree,
|
||||||
|
|
||||||
/* Indent depending on level */
|
/* Indent depending on level */
|
||||||
if (Level)
|
if (Level)
|
||||||
Brw_IndentAndWriteIconExpandContract (Level,ExpandTree,
|
Brw_IndentAndWriteIconExpandContract (Level,IconThisRow,
|
||||||
PathInTree,FileName,FileNameToShow);
|
PathInTree,
|
||||||
|
FileName,
|
||||||
|
FileNameToShow);
|
||||||
|
|
||||||
/* Put icon to show/hide file or folder */
|
/* Put icon to show/hide file or folder */
|
||||||
if (AdminDocsZone || AdminMarks)
|
if (AdminDocsZone || AdminMarks)
|
||||||
|
@ -5324,7 +5351,7 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,Brw_ExpandTree_t ExpandTree,
|
||||||
/***** File or folder icon *****/
|
/***** File or folder icon *****/
|
||||||
if (Gbl.FileBrowser.FileType == Brw_IS_FOLDER)
|
if (Gbl.FileBrowser.FileType == Brw_IS_FOLDER)
|
||||||
/* Icon with folder */
|
/* Icon with folder */
|
||||||
Brw_PutIconFolder (Level,ExpandTree,
|
Brw_PutIconFolder (Level,IconThisRow,
|
||||||
PathInTree,FileName,FileNameToShow);
|
PathInTree,FileName,FileNameToShow);
|
||||||
else // File or link
|
else // File or link
|
||||||
{
|
{
|
||||||
|
@ -5633,9 +5660,10 @@ static void Brw_PutIconPasteOff (void)
|
||||||
/*************** Indent and write icon to expand/contract folder *************/
|
/*************** Indent and write icon to expand/contract folder *************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Brw_IndentAndWriteIconExpandContract (unsigned Level,Brw_ExpandTree_t ExpandTree,
|
static void Brw_IndentAndWriteIconExpandContract (unsigned Level,Brw_IconTree_t IconThisRow,
|
||||||
const char PathInTree[PATH_MAX + 1],
|
const char PathInTree[PATH_MAX + 1],
|
||||||
const char *FileName,const char *FileNameToShow)
|
const char *FileName,
|
||||||
|
const char *FileNameToShow)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Expand;
|
extern const char *Txt_Expand;
|
||||||
extern const char *Txt_Contract;
|
extern const char *Txt_Contract;
|
||||||
|
@ -5647,15 +5675,15 @@ static void Brw_IndentAndWriteIconExpandContract (unsigned Level,Brw_ExpandTree_
|
||||||
Brw_IndentDependingOnLevel (Level);
|
Brw_IndentDependingOnLevel (Level);
|
||||||
fprintf (Gbl.F.Out,"<td class=\"BM%u\">",Gbl.RowEvenOdd);
|
fprintf (Gbl.F.Out,"<td class=\"BM%u\">",Gbl.RowEvenOdd);
|
||||||
|
|
||||||
switch (ExpandTree)
|
switch (IconThisRow)
|
||||||
{
|
{
|
||||||
case Brw_EXPAND_TREE_NOTHING:
|
case Brw_ICON_TREE_NOTHING:
|
||||||
fprintf (Gbl.F.Out,"<img src=\"%s/tr16x16.gif\""
|
fprintf (Gbl.F.Out,"<img src=\"%s/tr16x16.gif\""
|
||||||
" alt=\"\" title=\"\""
|
" alt=\"\" title=\"\""
|
||||||
" class=\"ICO20x20\" />",
|
" class=\"ICO20x20\" />",
|
||||||
Gbl.Prefs.IconsURL);
|
Gbl.Prefs.IconsURL);
|
||||||
break;
|
break;
|
||||||
case Brw_EXPAND_TREE_PLUS:
|
case Brw_ICON_TREE_EXPAND:
|
||||||
/***** Form to expand folder *****/
|
/***** Form to expand folder *****/
|
||||||
sprintf (FileBrowserId,"file_browser_%u",Gbl.FileBrowser.Id);
|
sprintf (FileBrowserId,"file_browser_%u",Gbl.FileBrowser.Id);
|
||||||
Act_FormStartAnchor (Brw_ActExpandFolder[Gbl.FileBrowser.Type],FileBrowserId);
|
Act_FormStartAnchor (Brw_ActExpandFolder[Gbl.FileBrowser.Type],FileBrowserId);
|
||||||
|
@ -5672,7 +5700,7 @@ static void Brw_IndentAndWriteIconExpandContract (unsigned Level,Brw_ExpandTree_
|
||||||
Act_FormEnd ();
|
Act_FormEnd ();
|
||||||
Lay_EndSection ();
|
Lay_EndSection ();
|
||||||
break;
|
break;
|
||||||
case Brw_EXPAND_TREE_MINUS:
|
case Brw_ICON_TREE_CONTRACT:
|
||||||
/***** Form to contract folder *****/
|
/***** Form to contract folder *****/
|
||||||
sprintf (FileBrowserId,"file_browser_%u",Gbl.FileBrowser.Id);
|
sprintf (FileBrowserId,"file_browser_%u",Gbl.FileBrowser.Id);
|
||||||
Act_FormStartAnchor (Brw_ActContractFolder[Gbl.FileBrowser.Type],FileBrowserId);
|
Act_FormStartAnchor (Brw_ActContractFolder[Gbl.FileBrowser.Type],FileBrowserId);
|
||||||
|
@ -5789,7 +5817,7 @@ static bool Brw_CheckIfAnyUpperLevelIsHidden (unsigned CurrentLevel)
|
||||||
/** Write link e icon to upload or paste files, or to create folder or link **/
|
/** Write link e icon to upload or paste files, or to create folder or link **/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Brw_PutIconFolder (unsigned Level,Brw_ExpandTree_t ExpandTree,
|
static void Brw_PutIconFolder (unsigned Level,Brw_IconTree_t IconSubtree,
|
||||||
const char *PathInTree,const char *FileName,const char *FileNameToShow)
|
const char *PathInTree,const char *FileName,const char *FileNameToShow)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Upload_file_or_create_folder_in_FOLDER;
|
extern const char *Txt_Upload_file_or_create_folder_in_FOLDER;
|
||||||
|
@ -5814,7 +5842,7 @@ static void Brw_PutIconFolder (unsigned Level,Brw_ExpandTree_t ExpandTree,
|
||||||
" alt=\"%s\" title=\"%s\""
|
" alt=\"%s\" title=\"%s\""
|
||||||
" class=\"ICO20x20\" />",
|
" class=\"ICO20x20\" />",
|
||||||
Gbl.Prefs.IconsURL,
|
Gbl.Prefs.IconsURL,
|
||||||
(ExpandTree == Brw_EXPAND_TREE_PLUS) ? "closed" :
|
(IconSubtree == Brw_ICON_TREE_EXPAND) ? "closed" :
|
||||||
"open",
|
"open",
|
||||||
Gbl.Title,
|
Gbl.Title,
|
||||||
Gbl.Title);
|
Gbl.Title);
|
||||||
|
@ -5825,7 +5853,7 @@ static void Brw_PutIconFolder (unsigned Level,Brw_ExpandTree_t ExpandTree,
|
||||||
" alt=\"%s\" title=\"%s\""
|
" alt=\"%s\" title=\"%s\""
|
||||||
" class=\"ICO20x20\" />",
|
" class=\"ICO20x20\" />",
|
||||||
Gbl.Prefs.IconsURL,
|
Gbl.Prefs.IconsURL,
|
||||||
(ExpandTree == Brw_EXPAND_TREE_PLUS) ? "closed" :
|
(IconSubtree == Brw_ICON_TREE_EXPAND) ? "closed" :
|
||||||
"open",
|
"open",
|
||||||
Txt_Folder,
|
Txt_Folder,
|
||||||
Txt_Folder);
|
Txt_Folder);
|
||||||
|
|
|
@ -1236,11 +1236,12 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_TEACH_GRP: // Notify all teachers in group except me
|
case Brw_ADMI_TEACH_GRP: // Notify all teachers in group except me
|
||||||
sprintf (Query,"SELECT crs_grp_usr.UsrCod"
|
sprintf (Query,"SELECT crs_grp_usr.UsrCod"
|
||||||
" FROM crs_grp_usr,crs_grp,crs_usr"
|
" FROM crs_grp_usr,crs_grp,crs_grp_types,crs_usr"
|
||||||
" WHERE crs_grp_usr.GrpCod=%ld"
|
" WHERE crs_grp_usr.GrpCod=%ld"
|
||||||
" AND crs_grp_usr.UsrCod<>%ld"
|
" AND crs_grp_usr.UsrCod<>%ld"
|
||||||
" AND crs_grp_usr.GrpCod=crs_grp.GrpCod"
|
" AND crs_grp_usr.GrpCod=crs_grp.GrpCod"
|
||||||
" AND crs_grp.CrsCod=crs_usr.CrsCod"
|
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
|
||||||
|
" AND crs_grp_types.CrsCod=crs_usr.CrsCod"
|
||||||
" AND crs_usr.Role=%u", // Notify teachers only
|
" AND crs_usr.Role=%u", // Notify teachers only
|
||||||
Gbl.CurrentCrs.Grps.GrpCod,
|
Gbl.CurrentCrs.Grps.GrpCod,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
|
|
@ -166,7 +166,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
||||||
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
||||||
Pag_PutHiddenParamPagNum (WhatPaginate,1);
|
Pag_PutHiddenParamPagNum (WhatPaginate,1);
|
||||||
Prj_PutHiddenParamPrjOrder ();
|
Prj_PutHiddenParamPrjOrder ();
|
||||||
Grp_PutParamWhichGrps ();
|
Prj_PutParamWhichPrjs ();
|
||||||
break;
|
break;
|
||||||
case Pag_GAMES:
|
case Pag_GAMES:
|
||||||
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
||||||
|
@ -273,7 +273,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
||||||
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
||||||
Pag_PutHiddenParamPagNum (WhatPaginate,1);
|
Pag_PutHiddenParamPagNum (WhatPaginate,1);
|
||||||
Prj_PutHiddenParamPrjOrder ();
|
Prj_PutHiddenParamPrjOrder ();
|
||||||
Grp_PutParamWhichGrps ();
|
Prj_PutParamWhichPrjs ();
|
||||||
break;
|
break;
|
||||||
case Pag_GAMES:
|
case Pag_GAMES:
|
||||||
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
||||||
|
@ -366,7 +366,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
||||||
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
||||||
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
|
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
|
||||||
Prj_PutHiddenParamPrjOrder ();
|
Prj_PutHiddenParamPrjOrder ();
|
||||||
Grp_PutParamWhichGrps ();
|
Prj_PutParamWhichPrjs ();
|
||||||
break;
|
break;
|
||||||
case Pag_GAMES:
|
case Pag_GAMES:
|
||||||
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
||||||
|
@ -470,7 +470,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
||||||
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
||||||
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
|
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
|
||||||
Prj_PutHiddenParamPrjOrder ();
|
Prj_PutHiddenParamPrjOrder ();
|
||||||
Grp_PutParamWhichGrps ();
|
Prj_PutParamWhichPrjs ();
|
||||||
break;
|
break;
|
||||||
case Pag_GAMES:
|
case Pag_GAMES:
|
||||||
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
||||||
|
@ -562,7 +562,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
||||||
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
||||||
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
|
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
|
||||||
Prj_PutHiddenParamPrjOrder ();
|
Prj_PutHiddenParamPrjOrder ();
|
||||||
Grp_PutParamWhichGrps ();
|
Prj_PutParamWhichPrjs ();
|
||||||
break;
|
break;
|
||||||
case Pag_GAMES:
|
case Pag_GAMES:
|
||||||
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
||||||
|
@ -653,7 +653,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
||||||
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
||||||
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
|
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
|
||||||
Prj_PutHiddenParamPrjOrder ();
|
Prj_PutHiddenParamPrjOrder ();
|
||||||
Grp_PutParamWhichGrps ();
|
Prj_PutParamWhichPrjs ();
|
||||||
break;
|
break;
|
||||||
case Pag_GAMES:
|
case Pag_GAMES:
|
||||||
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
||||||
|
|
|
@ -88,7 +88,6 @@ static void Prj_ShowProjectsInCurrentPage (void);
|
||||||
|
|
||||||
static void Prj_PutFormToSelectWhichProjecsToShow (void);
|
static void Prj_PutFormToSelectWhichProjecsToShow (void);
|
||||||
static void Prj_ShowFormToSelWhichPrjs (Act_Action_t Action,void (*FuncParams) ());
|
static void Prj_ShowFormToSelWhichPrjs (Act_Action_t Action,void (*FuncParams) ());
|
||||||
static void Prj_PutParamWhichPrjs (void);
|
|
||||||
static void Prj_GetParamWhichPrjs (void);
|
static void Prj_GetParamWhichPrjs (void);
|
||||||
|
|
||||||
static void Prj_ShowProjectsHead (bool PrintView);
|
static void Prj_ShowProjectsHead (bool PrintView);
|
||||||
|
@ -347,7 +346,7 @@ static void Prj_ShowFormToSelWhichPrjs (Act_Action_t Action,void (*FuncParams) (
|
||||||
/************* Parameter to show only my projects or all projects ************/
|
/************* Parameter to show only my projects or all projects ************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Prj_PutParamWhichPrjs (void)
|
void Prj_PutParamWhichPrjs (void)
|
||||||
{
|
{
|
||||||
Prj_GetParamWhichPrjs ();
|
Prj_GetParamWhichPrjs ();
|
||||||
|
|
||||||
|
|
|
@ -108,6 +108,7 @@ typedef enum
|
||||||
|
|
||||||
void Prj_SeeProjects (void);
|
void Prj_SeeProjects (void);
|
||||||
void Prj_ShowTableAllProjects (void);
|
void Prj_ShowTableAllProjects (void);
|
||||||
|
void Prj_PutParamWhichPrjs (void);
|
||||||
void Prj_PrintOneProject (void);
|
void Prj_PrintOneProject (void);
|
||||||
|
|
||||||
void Prj_ReqAddStd (void);
|
void Prj_ReqAddStd (void);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user