mirror of https://github.com/acanas/swad-core.git
Version 15.70.2
This commit is contained in:
parent
e9a7b6b79d
commit
c5dddc2eb7
|
@ -2643,7 +2643,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
/* ActReqDatBrf */{1047,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileMetadata ,NULL},
|
/* ActReqDatBrf */{1047,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileMetadata ,NULL},
|
||||||
/* ActChgDatBrf */{1048,-1,TabPrf,ActAdmBrf ,0x1FC,0x1FC,0x1FC,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL},
|
/* ActChgDatBrf */{1048,-1,TabPrf,ActAdmBrf ,0x1FC,0x1FC,0x1FC,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL},
|
||||||
/* ActDowBrf */{1123,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL},
|
/* ActDowBrf */{1123,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL},
|
||||||
/* ActAskRemOldBrf */{1488,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ConfirmRemoveOldFiles ,NULL},
|
/* ActAskRemOldBrf */{1488,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_AskRemoveOldFiles ,NULL},
|
||||||
/* ActRemOldBrf */{1489,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemoveOldFiles ,NULL},
|
/* ActRemOldBrf */{1489,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemoveOldFiles ,NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -118,12 +118,13 @@
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 15.70.1 (2015/12/21)"
|
#define Log_PLATFORM_VERSION "SWAD 15.70.2 (2015/12/21)"
|
||||||
#define CSS_FILE "swad15.65.1.css"
|
#define CSS_FILE "swad15.65.1.css"
|
||||||
|
|
||||||
// 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 15.70.2: Dec 21, 2015 Users can selected number of months in form to remove old files in briefcase. Not finished. (187473 lines)
|
||||||
Version 15.70.1: Dec 21, 2015 Removing old files in briefcase. Not finished. (187408 lines)
|
Version 15.70.1: Dec 21, 2015 Removing old files in briefcase. Not finished. (187408 lines)
|
||||||
Version 15.70: Dec 21, 2015 New action to remove old files in briefcase. Not finished. (187352 lines)
|
Version 15.70: Dec 21, 2015 New action to remove old files in briefcase. Not finished. (187352 lines)
|
||||||
Version 15.69: Dec 20, 2015 New option in briefcase to ask for removing old files. (187270 lines)
|
Version 15.69: Dec 20, 2015 New option in briefcase to ask for removing old files. (187270 lines)
|
||||||
|
|
|
@ -507,8 +507,6 @@
|
||||||
#define Cfg_TIME_TO_DELETE_BROWSER_CLIPBOARD ((time_t)( 15UL*60UL)) // Paths older than these seconds are removed from clipboard
|
#define Cfg_TIME_TO_DELETE_BROWSER_CLIPBOARD ((time_t)( 15UL*60UL)) // Paths older than these seconds are removed from clipboard
|
||||||
#define Cfg_TIME_TO_DELETE_BROWSER_ZIP_FILES ((time_t)( 2UL*60UL*60UL)) // Temporary zip files are deleted after these seconds
|
#define Cfg_TIME_TO_DELETE_BROWSER_ZIP_FILES ((time_t)( 2UL*60UL*60UL)) // Temporary zip files are deleted after these seconds
|
||||||
|
|
||||||
#define Cfg_MONTHS_TO_DELETE_OLD_BRIEFCASE_FILES 24 // Months to remove old files in briefcase
|
|
||||||
|
|
||||||
#define Cfg_TIME_TO_DELETE_MARKS_TMP_FILES ((time_t)( 2UL*60UL*60UL)) // Temporary files with students' marks are deleted after these seconds
|
#define Cfg_TIME_TO_DELETE_MARKS_TMP_FILES ((time_t)( 2UL*60UL*60UL)) // Temporary files with students' marks are deleted after these seconds
|
||||||
|
|
||||||
#define Cfg_TIME_TO_DELETE_PARAMS_TO_COMMANDS ((time_t)( 15UL*60UL)) // Temporary files with params to commands are deleted after these seconds
|
#define Cfg_TIME_TO_DELETE_PARAMS_TO_COMMANDS ((time_t)( 15UL*60UL)) // Temporary files with params to commands are deleted after these seconds
|
||||||
|
|
|
@ -700,7 +700,6 @@ void Enr_AskRemoveOldUsrs (void)
|
||||||
extern const char *Txt_Eliminate_all_users_who_are_not_enrolled_on_any_courses_PART_1_OF_2;
|
extern const char *Txt_Eliminate_all_users_who_are_not_enrolled_on_any_courses_PART_1_OF_2;
|
||||||
extern const char *Txt_Eliminate_all_users_who_are_not_enrolled_on_any_courses_PART_2_OF_2;
|
extern const char *Txt_Eliminate_all_users_who_are_not_enrolled_on_any_courses_PART_2_OF_2;
|
||||||
extern const char *Txt_Eliminate;
|
extern const char *Txt_Eliminate;
|
||||||
unsigned MonthsWithoutAccess = Usr_DEF_MONTHS_WITHOUT_ACCESS_TO_REMOVE_OLD_USRS;
|
|
||||||
unsigned Months;
|
unsigned Months;
|
||||||
|
|
||||||
/***** Start form *****/
|
/***** Start form *****/
|
||||||
|
@ -719,7 +718,7 @@ void Enr_AskRemoveOldUsrs (void)
|
||||||
Months++)
|
Months++)
|
||||||
{
|
{
|
||||||
fprintf (Gbl.F.Out,"<option");
|
fprintf (Gbl.F.Out,"<option");
|
||||||
if (Months == MonthsWithoutAccess)
|
if (Months == Usr_DEF_MONTHS_WITHOUT_ACCESS_TO_REMOVE_OLD_USRS)
|
||||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||||
fprintf (Gbl.F.Out,">%u</option>",Months);
|
fprintf (Gbl.F.Out,">%u</option>",Months);
|
||||||
}
|
}
|
||||||
|
@ -747,7 +746,7 @@ void Enr_RemoveOldUsrs (void)
|
||||||
extern const char *Txt_X_users_have_been_eliminated;
|
extern const char *Txt_X_users_have_been_eliminated;
|
||||||
char UnsignedStr[10+1];
|
char UnsignedStr[10+1];
|
||||||
unsigned MonthsWithoutAccess;
|
unsigned MonthsWithoutAccess;
|
||||||
unsigned long SecondsWithoutAccess;
|
time_t SecondsWithoutAccess;
|
||||||
char Query[1024];
|
char Query[1024];
|
||||||
MYSQL_RES *mysql_res;
|
MYSQL_RES *mysql_res;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
|
@ -759,11 +758,11 @@ void Enr_RemoveOldUsrs (void)
|
||||||
/***** Get parameter with number of months without access *****/
|
/***** Get parameter with number of months without access *****/
|
||||||
Par_GetParToText ("Months",UnsignedStr,10);
|
Par_GetParToText ("Months",UnsignedStr,10);
|
||||||
if (sscanf (UnsignedStr,"%u",&MonthsWithoutAccess) != 1)
|
if (sscanf (UnsignedStr,"%u",&MonthsWithoutAccess) != 1)
|
||||||
Lay_ShowErrorAndExit ("Number of months without clicks is missing.");
|
Lay_ShowErrorAndExit ("Number of months is missing.");
|
||||||
if (MonthsWithoutAccess < Usr_MIN_MONTHS_WITHOUT_ACCESS_TO_REMOVE_OLD_USRS ||
|
if (MonthsWithoutAccess < Usr_MIN_MONTHS_WITHOUT_ACCESS_TO_REMOVE_OLD_USRS ||
|
||||||
MonthsWithoutAccess > Usr_MAX_MONTHS_WITHOUT_ACCESS_TO_REMOVE_OLD_USRS)
|
MonthsWithoutAccess > Usr_MAX_MONTHS_WITHOUT_ACCESS_TO_REMOVE_OLD_USRS)
|
||||||
Lay_ShowErrorAndExit ("Wrong number of months without clicks.");
|
Lay_ShowErrorAndExit ("Wrong number of months.");
|
||||||
SecondsWithoutAccess = (unsigned long) MonthsWithoutAccess * Dat_SECONDS_IN_ONE_MONTH;
|
SecondsWithoutAccess = (time_t) MonthsWithoutAccess * Dat_SECONDS_IN_ONE_MONTH;
|
||||||
|
|
||||||
/***** Get old users from database *****/
|
/***** Get old users from database *****/
|
||||||
sprintf (Query,"SELECT UsrCod FROM"
|
sprintf (Query,"SELECT UsrCod FROM"
|
||||||
|
@ -775,7 +774,7 @@ void Enr_RemoveOldUsrs (void)
|
||||||
" UsrCod NOT IN (SELECT UsrCod FROM usr_last)"
|
" UsrCod NOT IN (SELECT UsrCod FROM usr_last)"
|
||||||
") AS candidate_usrs"
|
") AS candidate_usrs"
|
||||||
" WHERE UsrCod NOT IN (SELECT DISTINCT UsrCod FROM crs_usr)",
|
" WHERE UsrCod NOT IN (SELECT DISTINCT UsrCod FROM crs_usr)",
|
||||||
SecondsWithoutAccess);
|
(unsigned long) SecondsWithoutAccess);
|
||||||
if ((NumUsrs = DB_QuerySELECT (Query,&mysql_res,"can not get old users")))
|
if ((NumUsrs = DB_QuerySELECT (Query,&mysql_res,"can not get old users")))
|
||||||
{
|
{
|
||||||
sprintf (Gbl.Message,Txt_Eliminating_X_users_who_were_not_enrolled_in_any_course_and_with_more_than_Y_months_without_access_to_Z,
|
sprintf (Gbl.Message,Txt_Eliminating_X_users_who_were_not_enrolled_in_any_course_and_with_more_than_Y_months_without_access_to_Z,
|
||||||
|
|
|
@ -1454,8 +1454,9 @@ static bool Brw_CheckIfIHavePermissionFileOrFolderCommon (void);
|
||||||
static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row);
|
static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row);
|
||||||
|
|
||||||
static void Brw_PutFormToAskRemOldFiles (void);
|
static void Brw_PutFormToAskRemOldFiles (void);
|
||||||
static void Brw_RemoveOldFilesInBrowser (void);
|
static void Brw_RemoveOldFilesInBrowser (time_t TimeRemoveFilesOlder);
|
||||||
static void Brw_ScanDirRemovingOlfFiles (unsigned Level,const char *Path);
|
static void Brw_ScanDirRemovingOlfFiles (unsigned Level,const char *Path,
|
||||||
|
time_t TimeRemoveFilesOlder);
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************** Get parameters related to file browser ********************/
|
/***************** Get parameters related to file browser ********************/
|
||||||
|
@ -11215,25 +11216,54 @@ static void Brw_PutFormToAskRemOldFiles (void)
|
||||||
/************** Write a form fo confirm removing of old files ****************/
|
/************** Write a form fo confirm removing of old files ****************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Brw_ConfirmRemoveOldFiles (void)
|
#define Brw_MIN_MONTHS_TO_REMOVE_OLD_FILES 2 // 2 months
|
||||||
|
#define Brw_DEF_MONTHS_TO_REMOVE_OLD_FILES 12 // 1 year
|
||||||
|
#define Brw_MAX_MONTHS_TO_REMOVE_OLD_FILES (10*12) // 10 years
|
||||||
|
|
||||||
|
void Brw_AskRemoveOldFiles (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Do_you_really_want_to_remove_files_older_than_X_months;
|
extern const char *The_ClassForm[The_NUM_THEMES];
|
||||||
|
extern const char *Txt_Remove_old_files;
|
||||||
|
extern const char *Txt_Remove_files_older_than_PART_1_OF_2;
|
||||||
|
extern const char *Txt_Remove_files_older_than_PART_2_OF_2;
|
||||||
extern const char *Txt_Remove;
|
extern const char *Txt_Remove;
|
||||||
|
unsigned Months;
|
||||||
|
|
||||||
/***** Get parameters related to file browser *****/
|
/***** Get parameters related to file browser *****/
|
||||||
Brw_GetParAndInitFileBrowser ();
|
Brw_GetParAndInitFileBrowser ();
|
||||||
|
|
||||||
/***** Form to ask for confirmation to remove old files *****/
|
/***** Start form *****/
|
||||||
Act_FormStart (ActRemOldBrf);
|
Act_FormStart (ActRemOldBrf);
|
||||||
Brw_PutParamsContextualLink ();
|
Brw_PutParamsContextualLink ();
|
||||||
|
|
||||||
/* Show question */
|
/***** Start frame *****/
|
||||||
sprintf (Gbl.Message,Txt_Do_you_really_want_to_remove_files_older_than_X_months,
|
Lay_StartRoundFrame (NULL,Txt_Remove_old_files);
|
||||||
Cfg_MONTHS_TO_DELETE_OLD_BRIEFCASE_FILES);
|
|
||||||
Lay_ShowAlert (Lay_WARNING,Gbl.Message);
|
|
||||||
|
|
||||||
Lay_PutRemoveButton (Txt_Remove);
|
/***** Form to request number of months (to remove files older) *****/
|
||||||
|
fprintf (Gbl.F.Out,"<span class=\"%s\">%s </span>",
|
||||||
|
The_ClassForm[Gbl.Prefs.Theme],
|
||||||
|
Txt_Remove_files_older_than_PART_1_OF_2);
|
||||||
|
fprintf (Gbl.F.Out,"<select name=\"Months\">");
|
||||||
|
for (Months = Brw_MIN_MONTHS_TO_REMOVE_OLD_FILES;
|
||||||
|
Months <= Brw_MAX_MONTHS_TO_REMOVE_OLD_FILES;
|
||||||
|
Months++)
|
||||||
|
{
|
||||||
|
fprintf (Gbl.F.Out,"<option");
|
||||||
|
if (Months == Brw_DEF_MONTHS_TO_REMOVE_OLD_FILES)
|
||||||
|
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||||
|
fprintf (Gbl.F.Out,">%u</option>",Months);
|
||||||
|
}
|
||||||
|
fprintf (Gbl.F.Out,"</select>"
|
||||||
|
"<span class=\"%s\"> ",
|
||||||
|
The_ClassForm[Gbl.Prefs.Theme]);
|
||||||
|
fprintf (Gbl.F.Out,Txt_Remove_files_older_than_PART_2_OF_2,
|
||||||
|
Cfg_PLATFORM_SHORT_NAME);
|
||||||
|
fprintf (Gbl.F.Out,"</span>");
|
||||||
|
|
||||||
|
/***** End frame *****/
|
||||||
|
Lay_EndRoundFrameWithButton (Lay_REMOVE_BUTTON,Txt_Remove);
|
||||||
|
|
||||||
|
/***** End form *****/
|
||||||
Act_FormEnd ();
|
Act_FormEnd ();
|
||||||
|
|
||||||
/***** Show again the file browser *****/
|
/***** Show again the file browser *****/
|
||||||
|
@ -11246,14 +11276,26 @@ void Brw_ConfirmRemoveOldFiles (void)
|
||||||
|
|
||||||
void Brw_RemoveOldFiles (void)
|
void Brw_RemoveOldFiles (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Remove;
|
char UnsignedStr[10+1];
|
||||||
|
unsigned Months;
|
||||||
|
time_t TimeRemoveFilesOlder;
|
||||||
|
|
||||||
/***** Get parameters related to file browser *****/
|
/***** Get parameters related to file browser *****/
|
||||||
Brw_GetParAndInitFileBrowser ();
|
Brw_GetParAndInitFileBrowser ();
|
||||||
|
|
||||||
|
/***** Get parameter with number of months without access *****/
|
||||||
|
Par_GetParToText ("Months",UnsignedStr,10);
|
||||||
|
if (sscanf (UnsignedStr,"%u",&Months) != 1)
|
||||||
|
Lay_ShowErrorAndExit ("Number of months is missing.");
|
||||||
|
if (Months < Brw_MIN_MONTHS_TO_REMOVE_OLD_FILES ||
|
||||||
|
Months > Brw_MAX_MONTHS_TO_REMOVE_OLD_FILES)
|
||||||
|
Lay_ShowErrorAndExit ("Wrong number of months.");
|
||||||
|
TimeRemoveFilesOlder = Gbl.StartExecutionTimeUTC -
|
||||||
|
(time_t) Months * Dat_SECONDS_IN_ONE_MONTH;
|
||||||
|
|
||||||
/***** Remove old files *****/
|
/***** Remove old files *****/
|
||||||
if (Gbl.FileBrowser.Type == Brw_ADMI_BRIEF_USR)
|
if (Gbl.FileBrowser.Type == Brw_ADMI_BRIEF_USR)
|
||||||
Brw_RemoveOldFilesInBrowser ();
|
Brw_RemoveOldFilesInBrowser (TimeRemoveFilesOlder);
|
||||||
|
|
||||||
/***** Show again the file browser *****/
|
/***** Show again the file browser *****/
|
||||||
Brw_ShowAgainFileBrowserOrWorks ();
|
Brw_ShowAgainFileBrowserOrWorks ();
|
||||||
|
@ -11263,7 +11305,7 @@ void Brw_RemoveOldFiles (void)
|
||||||
/******************************* Remove old files ****************************/
|
/******************************* Remove old files ****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Brw_RemoveOldFilesInBrowser (void)
|
static void Brw_RemoveOldFilesInBrowser (time_t TimeRemoveFilesOlder)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Folders_removed;
|
extern const char *Txt_Folders_removed;
|
||||||
extern const char *Txt_Files_removed;
|
extern const char *Txt_Files_removed;
|
||||||
|
@ -11271,7 +11313,7 @@ static void Brw_RemoveOldFilesInBrowser (void)
|
||||||
/***** Remove old files recursively *****/
|
/***** Remove old files recursively *****/
|
||||||
Gbl.FileBrowser.Removed.NumFiles =
|
Gbl.FileBrowser.Removed.NumFiles =
|
||||||
Gbl.FileBrowser.Removed.NumFolders = 0;
|
Gbl.FileBrowser.Removed.NumFolders = 0;
|
||||||
Brw_ScanDirRemovingOlfFiles (1,Gbl.FileBrowser.Priv.PathRootFolder);
|
Brw_ScanDirRemovingOlfFiles (1,Gbl.FileBrowser.Priv.PathRootFolder,TimeRemoveFilesOlder);
|
||||||
|
|
||||||
/***** Success message *****/
|
/***** Success message *****/
|
||||||
sprintf (Gbl.Message,"%s: %u. %s: %u.",
|
sprintf (Gbl.Message,"%s: %u. %s: %u.",
|
||||||
|
@ -11284,9 +11326,8 @@ static void Brw_RemoveOldFilesInBrowser (void)
|
||||||
/************* Scan a directory recursively removing old files ***************/
|
/************* Scan a directory recursively removing old files ***************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Brw_TIME_TO_DELETE_BROWSER_OLD_FILES ((time_t)(Cfg_MONTHS_TO_DELETE_OLD_BRIEFCASE_FILES*30UL*24UL*60UL*60UL))
|
static void Brw_ScanDirRemovingOlfFiles (unsigned Level,const char *Path,
|
||||||
|
time_t TimeRemoveFilesOlder)
|
||||||
static void Brw_ScanDirRemovingOlfFiles (unsigned Level,const char *Path)
|
|
||||||
{
|
{
|
||||||
struct dirent **DirFileList;
|
struct dirent **DirFileList;
|
||||||
struct dirent **SubdirFileList;
|
struct dirent **SubdirFileList;
|
||||||
|
@ -11295,8 +11336,6 @@ static void Brw_ScanDirRemovingOlfFiles (unsigned Level,const char *Path)
|
||||||
int NumFilesInThisSubdir;
|
int NumFilesInThisSubdir;
|
||||||
char PathFileRel[PATH_MAX+1];
|
char PathFileRel[PATH_MAX+1];
|
||||||
struct stat FileStatus;
|
struct stat FileStatus;
|
||||||
time_t TimeRemoveFilesOlder = Gbl.StartExecutionTimeUTC -
|
|
||||||
Brw_TIME_TO_DELETE_BROWSER_OLD_FILES;
|
|
||||||
|
|
||||||
/***** Scan directory *****/
|
/***** Scan directory *****/
|
||||||
NumFilesInThisDir = scandir (Path,&DirFileList,NULL,alphasort);
|
NumFilesInThisDir = scandir (Path,&DirFileList,NULL,alphasort);
|
||||||
|
@ -11322,7 +11361,7 @@ static void Brw_ScanDirRemovingOlfFiles (unsigned Level,const char *Path)
|
||||||
if (NumFilesInThisSubdir > 2) // Not empty directory
|
if (NumFilesInThisSubdir > 2) // Not empty directory
|
||||||
{
|
{
|
||||||
/* Scan subtree starting at this this directory recursively */
|
/* Scan subtree starting at this this directory recursively */
|
||||||
Brw_ScanDirRemovingOlfFiles (Level+1,PathFileRel);
|
Brw_ScanDirRemovingOlfFiles (Level+1,PathFileRel,TimeRemoveFilesOlder);
|
||||||
|
|
||||||
/* Check again number of files after deletion */
|
/* Check again number of files after deletion */
|
||||||
NumFilesInThisSubdir = scandir (PathFileRel,&SubdirFileList,NULL,NULL);
|
NumFilesInThisSubdir = scandir (PathFileRel,&SubdirFileList,NULL,NULL);
|
||||||
|
|
|
@ -218,7 +218,7 @@ void Brw_GetNotifDocOrSharedFile (char *SummaryStr,char **ContentStr,
|
||||||
|
|
||||||
unsigned Brw_ListDocsFound (const char *Query,const char *Title);
|
unsigned Brw_ListDocsFound (const char *Query,const char *Title);
|
||||||
|
|
||||||
void Brw_ConfirmRemoveOldFiles (void);
|
void Brw_AskRemoveOldFiles (void);
|
||||||
void Brw_RemoveOldFiles (void);
|
void Brw_RemoveOldFiles (void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
108
swad_text.c
108
swad_text.c
|
@ -8358,36 +8358,6 @@ const char *Txt_Do_you_really_want_to_reject_the_enrollment_request_ = // Warnin
|
||||||
" in the course <strong>%s</strong>?"; // Necessita de tradução
|
" in the course <strong>%s</strong>?"; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_remove_files_older_than_X_months = // Warning: it is very important to include %u in the following sentences
|
|
||||||
#if L==1
|
|
||||||
"De veres voleu eliminar els arxius"
|
|
||||||
" amb més de %u mesos d'antiguitat?";
|
|
||||||
#elif L==2
|
|
||||||
"Wollen Sie wirklich, um Dateien,"
|
|
||||||
" die älter als %u Monate löschen?";
|
|
||||||
#elif L==3
|
|
||||||
"Do you really want to remove files"
|
|
||||||
" older than %u months?";
|
|
||||||
#elif L==4
|
|
||||||
"¿Realmente desea eliminar los archivos"
|
|
||||||
" con más de %u meses de antigüedad?";
|
|
||||||
#elif L==5
|
|
||||||
"Voulez-vous vraiment supprimer les fichiers"
|
|
||||||
" de plus de %u mois?";
|
|
||||||
#elif L==6
|
|
||||||
"¿Realmente desea eliminar los archivos"
|
|
||||||
" con más de %u meses de antigüedad?"; // Okoteve traducción
|
|
||||||
#elif L==7
|
|
||||||
"Vuoi davvero rimuovere i file"
|
|
||||||
" più vecchi di %u mesi?";
|
|
||||||
#elif L==8
|
|
||||||
"Czy na pewno chcesz usunąć pliki"
|
|
||||||
" starsze niż %u miesięcy?";
|
|
||||||
#elif L==9
|
|
||||||
"Você realmente deseja remover arquivos"
|
|
||||||
" com mais de %u meses?";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_remove_the_X_students_from_the_course_Y_ = // Warning: it is very important to include %u and %s in the following sentences
|
const char *Txt_Do_you_really_want_to_remove_the_X_students_from_the_course_Y_ = // Warning: it is very important to include %u and %s in the following sentences
|
||||||
#if L==1
|
#if L==1
|
||||||
"¿Realmente desea eliminar los %u estudiantes de la asignatura <strong>%s</strong>?<br />"
|
"¿Realmente desea eliminar los %u estudiantes de la asignatura <strong>%s</strong>?<br />"
|
||||||
|
@ -9650,23 +9620,41 @@ const char *Txt_Eliminate_all_courses_whithout_users_PART_2_OF_2 =
|
||||||
|
|
||||||
const char *Txt_Eliminate_all_users_who_are_not_enrolled_on_any_courses_PART_1_OF_2 =
|
const char *Txt_Eliminate_all_users_who_are_not_enrolled_on_any_courses_PART_1_OF_2 =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Eliminar todos los usuarios que no estén inscritos en ninguna asignatura y que lleven más de"; // Necessita traduccio
|
"Eliminar todos los usuarios"
|
||||||
|
" que no estén inscritos en ninguna asignatura"
|
||||||
|
" y que lleven más de"; // Necessita traduccio
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Eliminate all users who are not enrolled on any courses and with more than"; // Need Übersetzung
|
"Eliminate all users"
|
||||||
|
" who are not enrolled on any courses"
|
||||||
|
" and with more than"; // Need Übersetzung
|
||||||
#elif L==3
|
#elif L==3
|
||||||
"Eliminate all users who are not enrolled on any courses and with more than";
|
"Eliminate all users"
|
||||||
|
" who are not enrolled on any courses"
|
||||||
|
" and with more than";
|
||||||
#elif L==4
|
#elif L==4
|
||||||
"Eliminar todos los usuarios que no estén inscritos en ninguna asignatura y que lleven más de";
|
"Eliminar todos los usuarios"
|
||||||
|
" que no estén inscritos en ninguna asignatura"
|
||||||
|
" y que lleven más de";
|
||||||
#elif L==5
|
#elif L==5
|
||||||
"Eliminate all users who are not enrolled on any courses and with more than"; // Besoin de traduction
|
"Eliminate all users"
|
||||||
|
" who are not enrolled on any courses"
|
||||||
|
" and with more than"; // Besoin de traduction
|
||||||
#elif L==6
|
#elif L==6
|
||||||
"Eliminar todos los usuarios que no estén inscritos en ninguna asignatura y que lleven más de"; // Okoteve traducción
|
"Eliminar todos los usuarios"
|
||||||
|
" que no estén inscritos en ninguna asignatura"
|
||||||
|
" y que lleven más de"; // Okoteve traducción
|
||||||
#elif L==7
|
#elif L==7
|
||||||
"Rimuovere tutti gli utenti che non sono registrati ad alcun corso e con più di";
|
"Rimuovere tutti gli utenti"
|
||||||
|
" che non sono registrati ad alcun corso"
|
||||||
|
" e con più di";
|
||||||
#elif L==8
|
#elif L==8
|
||||||
"Wyeliminuj wszystkich uzytkowników, którzy nie sa zarejestrowani na kazdym z kursów";
|
"Wyeliminuj wszystkich uzytkowników,"
|
||||||
|
" którzy nie sa zarejestrowani"
|
||||||
|
" na kazdym z kursów";
|
||||||
#elif L==9
|
#elif L==9
|
||||||
"Eliminate all users who are not enrolled on any courses and with more than"; // Necessita de tradução
|
"Eliminate all users"
|
||||||
|
" who are not enrolled on any courses"
|
||||||
|
" and with more than"; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Eliminate_all_users_who_are_not_enrolled_on_any_courses_PART_2_OF_2 = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Eliminate_all_users_who_are_not_enrolled_on_any_courses_PART_2_OF_2 = // Warning: it is very important to include %s in the following sentences
|
||||||
|
@ -28782,6 +28770,48 @@ const char *Txt_Remove_FILE_OR_LINK_X = // Warning: it is very important to incl
|
||||||
"Remover %s";
|
"Remover %s";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Remove_files_older_than_PART_1_OF_2 =
|
||||||
|
#if L==1
|
||||||
|
"Eliminar els arxius amb més de";
|
||||||
|
#elif L==2
|
||||||
|
"Dateien zu entfernen, die älter als";
|
||||||
|
#elif L==3
|
||||||
|
"Remove files older than";
|
||||||
|
#elif L==4
|
||||||
|
"Eliminar los archivos con más de";
|
||||||
|
#elif L==5
|
||||||
|
"Supprimer les fichiers de plus de";
|
||||||
|
#elif L==6
|
||||||
|
"Eliminar los archivos con más de"; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Rimuovere i file più vecchi di";
|
||||||
|
#elif L==8
|
||||||
|
"Remove files older than"; // Potrzebujesz tlumaczenie
|
||||||
|
#elif L==9
|
||||||
|
"Remover arquivos com mais de";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Remove_files_older_than_PART_2_OF_2 =
|
||||||
|
#if L==1
|
||||||
|
"mesos d'antiguitat.";
|
||||||
|
#elif L==2
|
||||||
|
"Monate.";
|
||||||
|
#elif L==3
|
||||||
|
"months.";
|
||||||
|
#elif L==4
|
||||||
|
"meses de antigüedad.";
|
||||||
|
#elif L==5
|
||||||
|
"mois.";
|
||||||
|
#elif L==6
|
||||||
|
"meses de antigüedad."; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"mesi.";
|
||||||
|
#elif L==8
|
||||||
|
"months."; // Potrzebujesz tlumaczenie
|
||||||
|
#elif L==9
|
||||||
|
"meses.";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Remove_folder =
|
const char *Txt_Remove_folder =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Eliminar carpeta";
|
"Eliminar carpeta";
|
||||||
|
|
Loading…
Reference in New Issue