From a44db953e3127a167d9c6cdfa8c49504ad93d66d Mon Sep 17 00:00:00 2001 From: acanas Date: Wed, 24 Mar 2021 10:22:08 +0100 Subject: [PATCH] Version 20.51.37: Mar 24, 2021 Settings for IPs database table renamed. --- sql/swad.sql | 32 ++++++++++++------------ swad_changelog.h | 8 ++++-- swad_database.c | 64 ++++++++++++++++++++++++------------------------ swad_setting.c | 24 ++++++++++++------ 4 files changed, 71 insertions(+), 57 deletions(-) diff --git a/sql/swad.sql b/sql/swad.sql index e9d896553..3fb2d4f32 100644 --- a/sql/swad.sql +++ b/sql/swad.sql @@ -13,22 +13,6 @@ CREATE TABLE IF NOT EXISTS API_keys ( INDEX(PlgCod), INDEX(LastTime)); -- --- Table IP_prefs: stores user's preferences for each IP address --- -CREATE TABLE IF NOT EXISTS IP_prefs ( - IP CHAR(15) NOT NULL, - UsrCod INT NOT NULL DEFAULT -1, - LastChange DATETIME NOT NULL, - FirstDayOfWeek TINYINT NOT NULL DEFAULT 0, - DateFormat TINYINT NOT NULL DEFAULT 0, - Theme CHAR(16) NOT NULL, - IconSet CHAR(16) NOT NULL, - Menu TINYINT NOT NULL DEFAULT 0, - SideCols TINYINT NOT NULL, - PRIMARY KEY(IP), - INDEX(UsrCod), - INDEX(LastChange)); --- -- Table act_MFU: stores the recent actions more frequently made by each user -- CREATE TABLE IF NOT EXISTS act_MFU ( @@ -1302,6 +1286,22 @@ CREATE TABLE IF NOT EXISTS ses_sessions ( UNIQUE INDEX(SessionId), INDEX(UsrCod)); -- +-- Table set_ip_settings: stores user's settings (preferences) for each IP address +-- +CREATE TABLE IF NOT EXISTS set_ip_settings ( + IP CHAR(15) NOT NULL, + UsrCod INT NOT NULL DEFAULT -1, + LastChange DATETIME NOT NULL, + FirstDayOfWeek TINYINT NOT NULL DEFAULT 0, + DateFormat TINYINT NOT NULL DEFAULT 0, + Theme CHAR(16) NOT NULL, + IconSet CHAR(16) NOT NULL, + Menu TINYINT NOT NULL DEFAULT 0, + SideCols TINYINT NOT NULL, + PRIMARY KEY(IP), + INDEX(UsrCod), + INDEX(LastChange)); +-- -- Table sta_degrees: stores statistics about degrees -- CREATE TABLE IF NOT EXISTS sta_degrees ( diff --git a/swad_changelog.h b/swad_changelog.h index 4a4f053a8..065c4b155 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -600,14 +600,18 @@ TODO: Salvador Romero Cort TODO: FIX BUG, URGENT! En las fechas como parámetro Dat_WriteParamsIniEndDates(), por ejemplo al cambiar el color de la gráfica de accesos por día y hora, no se respeta la zona horaria. */ -#define Log_PLATFORM_VERSION "SWAD 20.51.35 (2021-03-24)" +#define Log_PLATFORM_VERSION "SWAD 20.51.37 (2021-03-24)" #define CSS_FILE "swad20.45.css" #define JS_FILE "swad20.6.2.js" /* TODO: Rename CENTRE to CENTER in help wiki. TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams - Version 20.51.35: Mar 24, 2021 Files database tables renamed. (308634 lines) + Version 20.51.37: Mar 24, 2021 Settings for IPs database table renamed. (308647 lines) + 1 change necessary in database: +RENAME TABLE IP_prefs TO set_ip_settings; + + Version 20.51.36: Mar 24, 2021 Files database tables renamed. (308634 lines) 2 changes necessary in database: RENAME TABLE brw_file_caches TO brw_caches; RENAME TABLE brw_file_views TO brw_views; diff --git a/swad_database.c b/swad_database.c index 7798acea7..22a03b8e5 100644 --- a/swad_database.c +++ b/swad_database.c @@ -92,38 +92,6 @@ void DB_CreateTablesIfNotExist (void) Ale_ShowAlert (Ale_INFO,Txt_Creating_database_tables_if_they_do_not_exist); HTM_OL_Begin (); - /***** Table IP_prefs *****/ -/* -mysql> DESCRIBE IP_prefs; -+----------------+------------+------+-----+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+----------------+------------+------+-----+---------+-------+ -| IP | char(15) | NO | PRI | NULL | | -| UsrCod | int(11) | NO | MUL | -1 | | -| LastChange | datetime | NO | MUL | NULL | | -| FirstDayOfWeek | tinyint(4) | NO | | 0 | | -| DateFormat | tinyint(4) | NO | | 0 | | -| Theme | char(16) | NO | | NULL | | -| IconSet | char(16) | NO | | NULL | | -| Menu | tinyint(4) | NO | | 0 | | -| SideCols | tinyint(4) | NO | | NULL | | -+----------------+------------+------+-----+---------+-------+ -9 rows in set (0,00 sec) -*/ - DB_CreateTable ("CREATE TABLE IF NOT EXISTS IP_prefs (" - "IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP - "UsrCod INT NOT NULL DEFAULT -1," - "LastChange DATETIME NOT NULL," - "FirstDayOfWeek TINYINT NOT NULL DEFAULT 0," - "DateFormat TINYINT NOT NULL DEFAULT 0," - "Theme CHAR(16) NOT NULL," // The_MAX_BYTES_THEME_ID - "IconSet CHAR(16) NOT NULL," // Ico_MAX_BYTES_ICON_SET_ID - "Menu TINYINT NOT NULL DEFAULT 0," - "SideCols TINYINT NOT NULL," - "PRIMARY KEY (IP)," - "INDEX(UsrCod)," - "INDEX(LastChange))"); - /***** Table act_MFU *****/ /* mysql> DESCRIBE act_MFU; @@ -2713,6 +2681,38 @@ mysql> DESCRIBE ses_sessions; "UNIQUE INDEX(SessionId)," "INDEX(UsrCod))"); + /***** Table set_ip_settings *****/ +/* +mysql> DESCRIBE set_ip_settings; ++----------------+------------+------+-----+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++----------------+------------+------+-----+---------+-------+ +| IP | char(15) | NO | PRI | NULL | | +| UsrCod | int(11) | NO | MUL | -1 | | +| LastChange | datetime | NO | MUL | NULL | | +| FirstDayOfWeek | tinyint(4) | NO | | 0 | | +| DateFormat | tinyint(4) | NO | | 0 | | +| Theme | char(16) | NO | | NULL | | +| IconSet | char(16) | NO | | NULL | | +| Menu | tinyint(4) | NO | | 0 | | +| SideCols | tinyint(4) | NO | | NULL | | ++----------------+------------+------+-----+---------+-------+ +9 rows in set (0,00 sec) +*/ + DB_CreateTable ("CREATE TABLE IF NOT EXISTS set_ip_settings (" + "IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP + "UsrCod INT NOT NULL DEFAULT -1," + "LastChange DATETIME NOT NULL," + "FirstDayOfWeek TINYINT NOT NULL DEFAULT 0," + "DateFormat TINYINT NOT NULL DEFAULT 0," + "Theme CHAR(16) NOT NULL," // The_MAX_BYTES_THEME_ID + "IconSet CHAR(16) NOT NULL," // Ico_MAX_BYTES_ICON_SET_ID + "Menu TINYINT NOT NULL DEFAULT 0," + "SideCols TINYINT NOT NULL," + "PRIMARY KEY (IP)," + "INDEX(UsrCod)," + "INDEX(LastChange))"); + /***** Table sta_degrees *****/ /* mysql> DESCRIBE sta_degrees; diff --git a/swad_setting.c b/swad_setting.c index 640028b2c..c0067365a 100644 --- a/swad_setting.c +++ b/swad_setting.c @@ -145,8 +145,14 @@ void Set_GetSettingsFromIP (void) { /***** Get settings from database *****/ NumRows = DB_QuerySELECT (&mysql_res,"can not get settings", - "SELECT FirstDayOfWeek,DateFormat,Theme,IconSet,Menu,SideCols" - " FROM IP_prefs WHERE IP='%s'", + "SELECT FirstDayOfWeek," // row[0] + "DateFormat," // row[1] + "Theme," // row[2] + "IconSet," // row[3] + "Menu," // row[4] + "SideCols" // row[5] + " FROM set_ip_settings" + " WHERE IP='%s'", Gbl.IP); if (NumRows) { @@ -194,7 +200,7 @@ void Set_SetSettingsFromIP (void) /***** Update settings from current IP in database *****/ DB_QueryREPLACE ("can not store settings from current IP address", - "REPLACE INTO IP_prefs" + "REPLACE INTO set_ip_settings" " (IP,UsrCod,LastChange," "FirstDayOfWeek,DateFormat,Theme,IconSet,Menu,SideCols)" " VALUES" @@ -211,9 +217,13 @@ void Set_SetSettingsFromIP (void) /***** If a user is logged, update its settings in database for all its IP's *****/ if (Gbl.Usrs.Me.Logged) DB_QueryUPDATE ("can not update your settings", - "UPDATE IP_prefs" - " SET FirstDayOfWeek=%u,DateFormat=%u," - "Theme='%s',IconSet='%s',Menu=%u,SideCols=%u" + "UPDATE set_ip_settings" + " SET FirstDayOfWeek=%u," + "DateFormat=%u," + "Theme='%s'," + "IconSet='%s'," + "Menu=%u," + "SideCols=%u" " WHERE UsrCod=%ld", Gbl.Prefs.FirstDayOfWeek, (unsigned) Gbl.Prefs.DateFormat, @@ -232,7 +242,7 @@ void Set_RemoveOldSettingsFromIP (void) { /***** Remove old settings *****/ DB_QueryDELETE ("can not remove old settings", - "DELETE LOW_PRIORITY FROM IP_prefs" + "DELETE LOW_PRIORITY FROM set_ip_settings" " WHERE LastChange