diff --git a/swad_changelog.h b/swad_changelog.h index 0017c7ce3..93f2b11b1 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -39,11 +39,12 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 14.59.1 (2015/01/19)" +#define Log_PLATFORM_VERSION "SWAD 14.59.2 (2015/01/19)" // 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 | tail -1 /* + Version 14.59.2: Jan 19, 2015 See/admin documents of degree, centre and institution (not finished). (174864 lines) Version 14.59.1: Jan 19, 2015 See/admin documents of degree, centre and institution (not finished). (174711 lines) Version 14.59: Jan 19, 2015 See/admin documents of degree, centre and institution (not finished). (174559 lines) Version 14.58.1: Jan 18, 2015 Fixed minor bugs in layout. (174178 lines) diff --git a/swad_file_browser.c b/swad_file_browser.c index 48278af7e..2e490687b 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -3087,6 +3087,12 @@ static void Brw_UpdateGrpLastAccZone (const char *FieldNameDB,long GrpCod) static void Brw_WriteSubtitleOfFileBrowser (void) { + extern const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_institution; + extern const char *Txt_accessible_for_reading_and_writing_by_administrators_of_the_institution; + extern const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_centre; + extern const char *Txt_accessible_for_reading_and_writing_by_administrators_of_the_centre; + extern const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_degree; + extern const char *Txt_accessible_for_reading_and_writing_by_administrators_of_the_degree; extern const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_course; extern const char *Txt_accessible_only_for_reading_by_students_of_the_group_and_teachers_of_the_course; extern const char *Txt_accessible_for_reading_and_writing_by_teachers_of_the_course; @@ -3120,14 +3126,29 @@ static void Brw_WriteSubtitleOfFileBrowser (void) /***** Write subtitle *****/ switch (Gbl.FileBrowser.Type) { - case Brw_FILE_BRW_SEE_DOCUMENTS_DEG: - case Brw_FILE_BRW_ADMIN_DOCUMENTS_DEG: - case Brw_FILE_BRW_SEE_DOCUMENTS_CTR: - case Brw_FILE_BRW_ADMIN_DOCUMENTS_CTR: case Brw_FILE_BRW_SEE_DOCUMENTS_INS: + sprintf (Subtitle,"(%s)", + Txt_accessible_only_for_reading_by_students_and_teachers_of_the_institution); + break; case Brw_FILE_BRW_ADMIN_DOCUMENTS_INS: sprintf (Subtitle,"(%s)", - "option in development"); + Txt_accessible_for_reading_and_writing_by_administrators_of_the_institution); + break; + case Brw_FILE_BRW_SEE_DOCUMENTS_CTR: + sprintf (Subtitle,"(%s)", + Txt_accessible_only_for_reading_by_students_and_teachers_of_the_centre); + break; + case Brw_FILE_BRW_ADMIN_DOCUMENTS_CTR: + sprintf (Subtitle,"(%s)", + Txt_accessible_for_reading_and_writing_by_administrators_of_the_centre); + break; + case Brw_FILE_BRW_SEE_DOCUMENTS_DEG: + sprintf (Subtitle,"(%s)", + Txt_accessible_only_for_reading_by_students_and_teachers_of_the_degree); + break; + case Brw_FILE_BRW_ADMIN_DOCUMENTS_DEG: + sprintf (Subtitle,"(%s)", + Txt_accessible_for_reading_and_writing_by_administrators_of_the_degree); break; case Brw_FILE_BRW_SEE_DOCUMENTS_CRS: sprintf (Subtitle,"(%s)", diff --git a/swad_layout.c b/swad_layout.c index c9ea3fa91..abcd54d88 100644 --- a/swad_layout.c +++ b/swad_layout.c @@ -185,7 +185,10 @@ void Lay_WriteStartOfPage (void) // css/dropzone.css // images/spritemap@2x.png // images/spritemap.png - if (Gbl.CurrentAct == ActFrmCreDocCrs || // Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS + if (Gbl.CurrentAct == ActFrmCreDocIns || // Brw_FILE_BRW_ADMIN_DOCUMENTS_INS + Gbl.CurrentAct == ActFrmCreDocCtr || // Brw_FILE_BRW_ADMIN_DOCUMENTS_CTR + Gbl.CurrentAct == ActFrmCreDocDeg || // Brw_FILE_BRW_ADMIN_DOCUMENTS_DEG + Gbl.CurrentAct == ActFrmCreDocCrs || // Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS Gbl.CurrentAct == ActFrmCreDocGrp || // Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP Gbl.CurrentAct == ActFrmCreComCrs || // Brw_FILE_BRW_COMMON_CRS Gbl.CurrentAct == ActFrmCreComGrp || // Brw_FILE_BRW_COMMON_GRP @@ -196,7 +199,9 @@ void Lay_WriteStartOfPage (void) Gbl.CurrentAct == ActFrmCreMrkCrs || // Brw_FILE_BRW_ADMIN_MARKS_CRS Gbl.CurrentAct == ActFrmCreMrkGrp || // Brw_FILE_BRW_ADMIN_MARKS_GRP Gbl.CurrentAct == ActFrmCreBrf) // Brw_FILE_BRW_BRIEFCASE_USR - fprintf (Gbl.F.Out,"\n", + fprintf (Gbl.F.Out,"\n", Cfg_HTTPS_URL_SWAD_PUBLIC); /* Redirect to correct language */ @@ -429,7 +434,10 @@ static void Lay_WriteScripts (void) // css/dropzone.css // images/spritemap@2x.png // images/spritemap.png - if (Gbl.CurrentAct == ActFrmCreDocCrs || // Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS + if (Gbl.CurrentAct == ActFrmCreDocIns || // Brw_FILE_BRW_ADMIN_DOCUMENTS_INS + Gbl.CurrentAct == ActFrmCreDocCtr || // Brw_FILE_BRW_ADMIN_DOCUMENTS_CTR + Gbl.CurrentAct == ActFrmCreDocDeg || // Brw_FILE_BRW_ADMIN_DOCUMENTS_DEG + Gbl.CurrentAct == ActFrmCreDocCrs || // Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS Gbl.CurrentAct == ActFrmCreDocGrp || // Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP Gbl.CurrentAct == ActFrmCreComCrs || // Brw_FILE_BRW_COMMON_CRS Gbl.CurrentAct == ActFrmCreComGrp || // Brw_FILE_BRW_COMMON_GRP @@ -442,7 +450,8 @@ static void Lay_WriteScripts (void) Gbl.CurrentAct == ActFrmCreBrf) // Brw_FILE_BRW_BRIEFCASE_USR { // Use charset="windows-1252" to force error messages in windows-1252 (default is UTF-8) - fprintf (Gbl.F.Out,"\n", Cfg_HTTPS_URL_SWAD_PUBLIC); diff --git a/swad_statistic.c b/swad_statistic.c index ab93b06d0..054aeeab8 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -186,7 +186,7 @@ void Sta_GetRemoteAddr (void) /*****************************************************************************/ /********* If this click is made from the same IP too fast, abort ************/ /*****************************************************************************/ - +/* void Sta_ExitIfTooFast (void) { extern const char *Txt_STR_LANG_ID[Txt_NUM_LANGUAGES]; @@ -195,35 +195,35 @@ void Sta_ExitIfTooFast (void) char Query[512]; unsigned NumClicks; // Very recent clicks from this IP (0 or 1) - /***** Some actions can be made fast *****/ + ***** Some actions can be made fast ***** if (Gbl.CurrentAct == ActRefCon || // Refresh connected Gbl.CurrentAct == ActRefLstClk || // Refresh last clicks Gbl.CurrentAct == ActAutUsrChgLan) // Change my language automatically just after log in return; - /***** Get if a click/refresh is made from the same IP very recently *****/ + ***** Get if a click/refresh is made from the same IP very recently ***** sprintf (Query,"SELECT COUNT(*) FROM IP_last" " WHERE IP='%s' AND UNIX_TIMESTAMP(LastClick)>UNIX_TIMESTAMP()-%u", Gbl.IP,Cfg_MIN_TIME_BETWEEN_2_CLICKS_FROM_THE_SAME_IP); NumClicks = (unsigned) DB_QueryCOUNT (Query,"can not get the number of very recent clicks"); - /***** Remove old clicks/refreshes *****/ + ***** Remove old clicks/refreshes ***** sprintf (Query,"DELETE FROM IP_last" " WHERE UNIX_TIMESTAMP(LastClick)<=UNIX_TIMESTAMP()-%u", Cfg_MIN_TIME_BETWEEN_2_CLICKS_FROM_THE_SAME_IP); DB_QueryDELETE (Query,"can not remove old last IP"); - /***** Replace last click/refresh from this IP *****/ + ***** Replace last click/refresh from this IP ***** sprintf (Query,"REPLACE INTO IP_last" " (IP,LastClick)" " VALUES ('%s',NOW())", Gbl.IP); DB_QueryREPLACE (Query,"can not update last IP"); - /***** If too fast, write warning and exit *****/ + ***** If too fast, write warning and exit ***** if (NumClicks) // Too fast { - /***** Write header to standard output to avoid timeout *****/ + ***** Write header to standard output to avoid timeout ***** // Two \r\n are necessary fprintf (stdout,"Content-type: text/html; charset=windows-1252\r\n\r\n" "\n" @@ -246,7 +246,7 @@ void Sta_ExitIfTooFast (void) // sleep (Cfg_MIN_TIME_BETWEEN_2_CLICKS_FROM_THE_SAME_IP); // Sleep those seconds } } - +*/ /*****************************************************************************/ /**************************** Log access in database *************************/ /*****************************************************************************/ diff --git a/swad_text.c b/swad_text.c index 8ea756bae..bf81de414 100644 --- a/swad_text.c +++ b/swad_text.c @@ -1474,6 +1474,69 @@ const char *Txt_Absents = "Assentes"; #endif +const char *Txt_accessible_for_reading_and_writing_by_administrators_of_the_centre = +#if L==0 + "accessible per a lectura i escriptura per administradors del centre"; +#elif L==1 + "zum Schreiben zugänglich für Administratoren der Lehrinstitut"; +#elif L==2 + "accessible for reading and writing by administrators of the centre"; +#elif L==3 + "accesible para lectura y escritura por administradores del centro"; +#elif L==4 + "accessible en lecture et en écriture par les administrateurs du centre"; +#elif L==5 + "accesible para lectura y escritura por administradores del centro"; // Okoteve traducción +#elif L==6 + "accessibile per la lettura e la scrittura da parte dei amministratori del centro"; +#elif L==7 + "dostep do odczytu i zapisu przez administratorzy centrum"; +#elif L==8 + "acessível para leitura e escrita pelos administradores do centro"; +#endif + +const char *Txt_accessible_for_reading_and_writing_by_administrators_of_the_degree = +#if L==0 + "accessible per a lectura i escriptura per administradors de la titulació"; +#elif L==1 + "zum Schreiben zugänglich für Administratoren der Studiengang"; +#elif L==2 + "accessible for reading and writing by administrators of the degree"; +#elif L==3 + "accesible para lectura y escritura por administradores de la titulación"; +#elif L==4 + "accessible en lecture et en écriture par les administrateurs de l'étude"; +#elif L==5 + "accesible para lectura y escritura por administradores de la titulación"; // Okoteve traducción +#elif L==6 + "accessibile per la lettura e la scrittura da parte dei amministratori della laurea"; +#elif L==7 + "dostep do odczytu i zapisu przez administratorzy stopnia"; +#elif L==8 + "acessível para leitura e escrita pelos administradores da titulação"; +#endif + +const char *Txt_accessible_for_reading_and_writing_by_administrators_of_the_institution = +#if L==0 + "accessible per a lectura i escriptura per administradors de l'institució"; +#elif L==1 + "zum Schreiben zugänglich für Administratoren der Hochschule"; +#elif L==2 + "accessible for reading and writing by administrators of the institution"; +#elif L==3 + "accesible para lectura y escritura por administradores de la institución"; +#elif L==4 + "accessible en lecture et en écriture par les administrateurs de l'établissement"; +#elif L==5 + "accesible para lectura y escritura por administradores de la institución"; // Okoteve traducción +#elif L==6 + "accessibile per la lettura e la scrittura da parte dei amministratori della istituzione"; +#elif L==7 + "dostep do odczytu i zapisu przez administratorzy instytucji"; +#elif L==8 + "acessível para leitura e escrita pelos administradores da instituição"; +#endif + const char *Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_course = #if L==0 "accessible per a lectura i escriptura per estudiants i professors de l'assignatura"; @@ -1574,11 +1637,32 @@ const char *Txt_accessible_only_for_reading_by_you_and_the_teachers_of_the_cours #elif L==6 "accessibile solo per la lettura per te e i professori del corso"; #elif L==7 - "dostepne tylko do czytania przez Ciebie i nauczycieli prowadzacych ten kurs"; + "dostępne tylko do czytania przez Ciebie i nauczycieli prowadzacych ten kurs"; #elif L==8 "acessível apenas para leitura por você e os professores da disciplina"; #endif +const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_centre = +#if L==0 + "accessible només per a lectura per estudiants i professors del centre"; +#elif L==1 + "zum Lesen zugänglich für Studenten und Lehrkräfte der Lehrinstitut"; +#elif L==2 + "accessible only for reading by students and teachers of the centre"; +#elif L==3 + "accesible sólo para lectura por estudiantes y profesores del centro"; +#elif L==4 + "accessible uniquement pour la lecture par les étudiants et les enseignants du centre"; +#elif L==5 + "accesible sólo para lectura por estudiantes y profesores del centro"; // Okoteve traducción +#elif L==6 + "accessibile solo per la lettura da parte degli studenti e dei professori del centro"; +#elif L==7 + "dostępne tylko do czytania przez uczniów i nauczycieli centrum"; +#elif L==8 + "acessível apenas para leitura pelos alunos e professores do centro"; +#endif + const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_course = #if L==0 "accessible només per a lectura per estudiants i professors de l'assignatura"; @@ -1595,11 +1679,53 @@ const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_cour #elif L==6 "accessibile solo per la lettura da parte degli studenti e dei professori del corso"; #elif L==7 - "dostepne tylko do czytania przez uczniów i nauczycieli zajec"; + "dostępne tylko do czytania przez uczniów i nauczycieli zajec"; #elif L==8 "acessível apenas para leitura pelos alunos e professores da disciplina"; #endif +const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_degree = +#if L==0 + "accessible només per a lectura per estudiants i professors de la titulació"; +#elif L==1 + "zum Lesen zugänglich für Studenten und Lehrkräfte der Studiengang"; +#elif L==2 + "accessible only for reading by students and teachers of the degree"; +#elif L==3 + "accesible sólo para lectura por estudiantes y profesores de la titulación"; +#elif L==4 + "accessible uniquement pour la lecture par les étudiants et les enseignants de l'étude"; +#elif L==5 + "accesible sólo para lectura por estudiantes y profesores de la titulación"; // Okoteve traducción +#elif L==6 + "accessibile solo per la lettura da parte degli studenti e dei professori della laurea"; +#elif L==7 + "dostępne tylko do czytania przez uczniów i nauczycieli stopnia"; +#elif L==8 + "acessível apenas para leitura pelos alunos e professores da titulação"; +#endif + +const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_institution = +#if L==0 + "accessible només per a lectura per estudiants i professors de l'institució"; +#elif L==1 + "zum Lesen zugänglich für Studenten und Lehrkräfte der Hochschule"; +#elif L==2 + "accessible only for reading by students and teachers of the institution"; +#elif L==3 + "accesible sólo para lectura por estudiantes y profesores de la institución"; +#elif L==4 + "accessible uniquement pour la lecture par les étudiants et les enseignants de l'établissement"; +#elif L==5 + "accesible sólo para lectura por estudiantes y profesores de la institución"; // Okoteve traducción +#elif L==6 + "accessibile solo per la lettura da parte degli studenti e dei professori della istituzione"; +#elif L==7 + "dostępne tylko do czytania przez uczniów i nauczycieli instytucji"; +#elif L==8 + "acessível apenas para leitura pelos alunos e professores da instituição"; +#endif + const char *Txt_accessible_only_for_reading_by_students_of_the_group_and_teachers_of_the_course = #if L==0 "accesible només per a lectura per estudiants del grup i professors de l'assignatura"; @@ -1616,7 +1742,7 @@ const char *Txt_accessible_only_for_reading_by_students_of_the_group_and_teacher #elif L==6 "accessibile solo per la lettura da parte degli studenti del gruppo e dei professori del corso"; #elif L==7 - "dostepne tylko do czytania przez uczniów i nauczycieli grupy kursu"; + "dostępne tylko do czytania przez uczniów i nauczycieli grupy kursu"; #elif L==8 "acessível apenas para leitura pelos alunos do grupo e professores da disciplina"; #endif @@ -10893,7 +11019,7 @@ const char *Txt_File_zones_of_the_group_X_are_now_enabled = // Warning: it is ve #elif L==6 "Le aree file del gruppo %s sono ora abilitate."; #elif L==7 - "Plik strefy grupa %s sa obecnie dostepne."; + "Plik strefy grupa %s sa obecnie dostępne."; #elif L==8 "File zones of the group %s are now enabled."; // Necessita de tradução #endif @@ -18759,7 +18885,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = " a les quals podeu consultar" " per crear assignatures o altres gestions" #elif L==1 - "Liste der Verwalter" + "Liste der Administratoren" #elif L==2 "Administrators" #elif L==3