diff --git a/icon/iconset/awesome/up-right-from-square.svg b/icon/iconset/awesome/up-right-from-square.svg
new file mode 100644
index 00000000..b6c8bf81
--- /dev/null
+++ b/icon/iconset/awesome/up-right-from-square.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icon/iconset/nuvola/globe-americas.svg b/icon/iconset/nuvola/globe-americas.svg
new file mode 100644
index 00000000..fd2ee444
--- /dev/null
+++ b/icon/iconset/nuvola/globe-americas.svg
@@ -0,0 +1,44 @@
+
+
diff --git a/icon/iconset/nuvola/up-right-from-square.svg b/icon/iconset/nuvola/up-right-from-square.svg
new file mode 100644
index 00000000..c75b0321
--- /dev/null
+++ b/icon/iconset/nuvola/up-right-from-square.svg
@@ -0,0 +1,986 @@
+
+
+
+
diff --git a/icon/up-right-from-square.svg b/icon/up-right-from-square.svg
new file mode 100644
index 00000000..b6c8bf81
--- /dev/null
+++ b/icon/up-right-from-square.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/swad_action.c b/swad_action.c
index 2995e50b..192ab23e 100644
--- a/swad_action.c
+++ b/swad_action.c
@@ -211,7 +211,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
[ActSeeSysInf ] = {1818, 0,TabSys,ActSeeSysInf , 0, 0, 0, 0, 0, 0,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,SysCfg_ShowConfiguration ,"info" },
[ActSeeCty ] = { 862, 1,TabSys,ActSeeCty , 0, 0, 0, 0, 0, 0,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Cty_ListCountries1 ,Cty_ListCountries2 ,"globe-americas" },
[ActSeePen ] = {1060, 2,TabSys,ActSeePen , 0, 0, 0, 0, 0, 0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Hie_SeePending ,"sitemap" },
- [ActSeeLnk ] = { 748, 3,TabSys,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Lnk_SeeLinks ,"link" },
+ [ActSeeLnk ] = { 748, 3,TabSys,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Lnk_SeeLinks ,"up-right-from-square" },
[ActLstPlg ] = { 777, 4,TabSys,ActLstPlg , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Plg_ListPlugins ,"puzzle-piece" },
[ActMtn ] = {1820, 5,TabSys,ActMtn , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Mtn_Maintenance ,"tools" },
@@ -417,7 +417,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
[ActSeeSyl ] = {1242, 3,TabCrs,ActSeeSyl ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_ShowInfo ,"list-ol" },
[ActSeeBib ] = { 32, 4,TabCrs,ActSeeBib ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_ShowInfo ,"book" },
[ActSeeFAQ ] = { 54, 5,TabCrs,ActSeeFAQ ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_ShowInfo ,"question" },
- [ActSeeCrsLnk ] = { 9, 6,TabCrs,ActSeeCrsLnk ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_ShowInfo ,"link" },
+ [ActSeeCrsLnk ] = { 9, 6,TabCrs,ActSeeCrsLnk ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_ShowInfo ,"up-right-from-square" },
[ActSeeCrsTT ] = { 25, 7,TabCrs,ActSeeCrsTT ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tmt_ShowClassTimeTable ,"clock" },
// Actions not in menu:
diff --git a/swad_browser.c b/swad_browser.c
index 237da64d..9c8d77a9 100644
--- a/swad_browser.c
+++ b/swad_browser.c
@@ -5106,7 +5106,7 @@ static void Brw_PutIconFileWithLinkToViewMetadata (const struct FileMetadata *Fi
"CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO16x16",
true); // Put link to view metadata
else
- HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"link.svg",Txt_Link,
+ HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"up-right-from-square.svg",Txt_Link,
"class=\"CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO16x16 ICO_%s_%s\"",
Ico_GetPreffix (Ico_BLACK),The_GetSuffix ());
@@ -8485,7 +8485,7 @@ static void Brw_WriteBigLinkToDownloadFile (const char *URL,
"ICO40x40",
false); // Don't put link to view metadata
else
- Ico_PutIcon ("link.svg",Ico_BLACK,Txt_Link,"ICO40x40");
+ Ico_PutIcon ("up-right-from-square.svg",Ico_BLACK,Txt_Link,"ICO40x40");
/* Name of the file of marks, link end and form end */
HTM_TxtF (" %s ",FileNameToShow);
@@ -8510,7 +8510,7 @@ static void Brw_WriteBigLinkToDownloadFile (const char *URL,
"ICO40x40",
false); // Don't put link to view metadata
else
- Ico_PutIcon ("link.svg",Ico_BLACK,Txt_Link,"ICO40x40");
+ Ico_PutIcon ("up-right-from-square.svg",Ico_BLACK,Txt_Link,"ICO40x40");
HTM_TxtF (" %s ",FileNameToShow);
Ico_PutIcon ("download.svg",Ico_BLACK,Title,"ICO40x40");
HTM_A_End ();
@@ -10105,7 +10105,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
Txt_Folder,"CONTEXT_ICO16x16");
break;
case Brw_IS_LINK:
- Ico_PutIcon ("link.svg",Ico_BLACK,
+ Ico_PutIcon ("up-right-from-square.svg",Ico_BLACK,
Txt_Link,"CONTEXT_ICO16x16");
break;
default:
diff --git a/swad_changelog.h b/swad_changelog.h
index 55d03be7..29525607 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -606,11 +606,24 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
TODO: Attach pdf files in multimedia.
*/
-#define Log_PLATFORM_VERSION "SWAD 21.116.2 (2022-09-08)"
+#define Log_PLATFORM_VERSION "SWAD 21.116.3 (2022-09-10)"
#define CSS_FILE "swad21.107.1.css"
#define JS_FILE "swad21.100.js"
/*
- Version 21.116.2: Sep 08, 2022 Fixed bug in timetable. Reported by Javier Fernández Baldomero and José Luis Bernier Villamor. (329208 lines)
+ Version 21.117: Sep 10, 2022 New database table with clipboards for program resources. (? lines)
+ 1 change necessary in database:
+CREATE TABLE IF NOT EXISTS prg_clipboards...
+ If you want to use MyISAM:
+ALTER TABLE prg_clipboards ENGINE=MyISAM;
+
+ Version 21.116.3: Sep 10, 2022 Changed icon for external link. (329241 lines)
+Copy the following icons to icon public directory:
+sudo cp icon/up-right-from-square.svg /var/www/html/swad/icon/
+sudo cp icon/iconset/awesome/up-right-from-square.svg /var/www/html/swad/icon/iconset/awesome/
+sudo cp icon/iconset/nuvola/up-right-from-square.svg /var/www/html/swad/icon/iconset/nuvola/
+sudo cp icon/iconset/nuvola/globe-americas.svg /var/www/html/swad/icon/iconset/nuvola/
+
+ Version 21.116.2: Sep 09, 2022 Fixed bug in timetable. Reported by Javier Fernández Baldomero and José Luis Bernier Villamor. (329208 lines)
If you want to use MyISAM:
ALTER TABLE prg_resources ENGINE=MyISAM;
diff --git a/swad_database.c b/swad_database.c
index be819195..0a6362bc 100644
--- a/swad_database.c
+++ b/swad_database.c
@@ -2418,6 +2418,30 @@ mysql> DESCRIBE plg_plugins;
"IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
"UNIQUE INDEX(PlgCod))");
+ /***** Table prg_clipboards *****/
+/*
+mysql> DESCRIBE prg_clipboards;
++-------------+------------+------+-----+-------------------+-----------------------------+
+| Field | Type | Null | Key | Default | Extra |
++-------------+------------+------+-----+-------------------+-----------------------------+
+| UsrCod | int(11) | NO | PRI | NULL | |
+| FileBrowser | tinyint(4) | NO | MUL | NULL | |
+| Cod | int(11) | NO | | -1 | |
+| WorksUsrCod | int(11) | NO | MUL | NULL | |
+| FileType | tinyint(4) | NO | | 0 | |
+| Path | text | NO | | NULL | |
+| CopyTime | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
++-------------+------------+------+-----+-------------------+-----------------------------+
+7 rows in set (0.00 sec)
+*/
+ DB_CreateTable ("CREATE TABLE IF NOT EXISTS prg_clipboards ("
+ "UsrCod INT NOT NULL,"
+ "RscType TINYINT NOT NULL DEFAULT 0,"
+ "Cod INT NOT NULL DEFAULT -1,"
+ "CopyTime TIMESTAMP,"
+ "INDEX(UsrCod),"
+ "INDEX(RscType,Cod)))");
+
/***** Table prg_items *****/
/*
mysql> DESCRIBE prg_items;
diff --git a/swad_link.c b/swad_link.c
index bed9fa9b..173009fe 100644
--- a/swad_link.c
+++ b/swad_link.c
@@ -270,7 +270,7 @@ void Lnk_PutIconToViewLinks (void)
{
Lay_PutContextualLinkOnlyIcon (ActSeeLnk,NULL,
NULL,NULL,
- "link.svg",Ico_BLACK);
+ "up-right-from-square.svg",Ico_BLACK);
}
/*****************************************************************************/
diff --git a/swad_text.c b/swad_text.c
index 0041831f..6c30de82 100644
--- a/swad_text.c
+++ b/swad_text.c
@@ -19726,7 +19726,7 @@ const char *Txt_Link =
#elif L==9 // pt
"Ligação.";
#elif L==10 // tr
- "Link"; // Çeviri lazim!
+ "Bağlantı";
#endif
const char *Txt_link =
@@ -19749,7 +19749,7 @@ const char *Txt_link =
#elif L==9 // pt
"ligação.";
#elif L==10 // tr
- "link" ; // Çeviri lazim!
+ "bağlantı";
#endif
const char *Txt_Link_X_removed = // Warning: it is very important to include %s in the following sentences
diff --git a/swad_timetable.c b/swad_timetable.c
index 417bd518..3e89eb6a 100644
--- a/swad_timetable.c
+++ b/swad_timetable.c
@@ -1317,7 +1317,6 @@ static void Tmt_TimeTableDrawCell (const struct Tmt_Timetable *Timetable,
[Tmt_PRACTICAL] = "Tmt_PRAC", // practical class
[Tmt_TUTORING ] = "Tmt_TUTO", // tutoring/office hour
};
- struct GroupData GrpDat;
unsigned RowSpan = 0;
char *RowSpanStr;
char *ColSpanStr;