mirror of https://github.com/acanas/swad-core.git
Version 21.117.1: Sep 12, 2022 Copy link to file into resource clipboard.
This commit is contained in:
parent
dfed213480
commit
3986739834
|
@ -65,6 +65,7 @@
|
||||||
#include "swad_photo.h"
|
#include "swad_photo.h"
|
||||||
#include "swad_profile.h"
|
#include "swad_profile.h"
|
||||||
#include "swad_profile_database.h"
|
#include "swad_profile_database.h"
|
||||||
|
#include "swad_program_database.h"
|
||||||
#include "swad_project.h"
|
#include "swad_project.h"
|
||||||
#include "swad_project_database.h"
|
#include "swad_project_database.h"
|
||||||
#include "swad_role.h"
|
#include "swad_role.h"
|
||||||
|
@ -8325,7 +8326,7 @@ void Brw_GetLinkToFile (void)
|
||||||
if (Found)
|
if (Found)
|
||||||
{
|
{
|
||||||
/***** Copy link to file into resource clipboard *****/
|
/***** Copy link to file into resource clipboard *****/
|
||||||
// Prg_DB_CopyToClipboard (&FileMetadata);
|
Prg_DB_CopyToClipboard (PrgRsc_DOCUMENT,FileMetadata.FilCod);
|
||||||
|
|
||||||
/***** Write sucess message *****/
|
/***** Write sucess message *****/
|
||||||
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,
|
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,
|
||||||
|
|
|
@ -606,15 +606,16 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
|
||||||
|
|
||||||
TODO: Attach pdf files in multimedia.
|
TODO: Attach pdf files in multimedia.
|
||||||
*/
|
*/
|
||||||
#define Log_PLATFORM_VERSION "SWAD 21.117 (2022-09-12)"
|
#define Log_PLATFORM_VERSION "SWAD 21.117.1 (2022-09-12)"
|
||||||
#define CSS_FILE "swad21.107.1.css"
|
#define CSS_FILE "swad21.107.1.css"
|
||||||
#define JS_FILE "swad21.100.js"
|
#define JS_FILE "swad21.100.js"
|
||||||
/*
|
/*
|
||||||
|
Version 21.117.1: Sep 12, 2022 Copy link to file into resource clipboard. (329561 lines)
|
||||||
Version 21.117: Sep 12, 2022 New database table with clipboards for program resources.
|
Version 21.117: Sep 12, 2022 New database table with clipboards for program resources.
|
||||||
New actions to get link to file in course document area. (329514 lines)
|
New actions to get link to file in course document area. (329514 lines)
|
||||||
1 change necessary in database:
|
1 change necessary in database:
|
||||||
ALTER TABLE prg_resources ADD COLUMN Type ENUM('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') NOT NULL DEFAULT 'none' AFTER Hidden;
|
ALTER TABLE prg_resources ADD COLUMN Type ENUM('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') NOT NULL DEFAULT 'none' AFTER Hidden;
|
||||||
CREATE TABLE IF NOT EXISTS prg_clipboards (UsrCod INT NOT NULL,CrsCod INT NOT NULL,Type ENUM('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') NOT NULL DEFAULT 'none',Cod INT NOT NULL DEFAULT -1,CopyTime TIMESTAMP,INDEX(UsrCod,CrsCod,CopyTime),INDEX(CrsCod,Type,Cod),INDEX(CopyTime));
|
CREATE TABLE IF NOT EXISTS prg_clipboards (UsrCod INT NOT NULL,CrsCod INT NOT NULL,Type ENUM('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') NOT NULL DEFAULT 'none',Cod INT NOT NULL DEFAULT -1,CopyTime TIMESTAMP,UNIQUE INDEX(UsrCod,CrsCod,Type,Cod),INDEX(CrsCod,Type,Cod),INDEX(CopyTime));
|
||||||
If you want to use MyISAM:
|
If you want to use MyISAM:
|
||||||
ALTER TABLE prg_clipboards ENGINE=MyISAM;
|
ALTER TABLE prg_clipboards ENGINE=MyISAM;
|
||||||
|
|
||||||
|
|
|
@ -2456,10 +2456,10 @@ mysql> DESCRIBE prg_clipboards;
|
||||||
+----------+--------------------------------------------------------------------+------+-----+---------+-------+
|
+----------+--------------------------------------------------------------------+------+-----+---------+-------+
|
||||||
| Field | Type | Null | Key | Default | Extra |
|
| Field | Type | Null | Key | Default | Extra |
|
||||||
+----------+--------------------------------------------------------------------+------+-----+---------+-------+
|
+----------+--------------------------------------------------------------------+------+-----+---------+-------+
|
||||||
| UsrCod | int | NO | MUL | NULL | |
|
| UsrCod | int | NO | PRI | NULL | |
|
||||||
| CrsCod | int | NO | MUL | NULL | |
|
| CrsCod | int | NO | PRI | NULL | |
|
||||||
| Type | enum('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') | NO | | none | |
|
| Type | enum('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') | NO | PRI | none | |
|
||||||
| Cod | int | NO | | -1 | |
|
| Cod | int | NO | PRI | -1 | |
|
||||||
| CopyTime | timestamp | YES | MUL | NULL | |
|
| CopyTime | timestamp | YES | MUL | NULL | |
|
||||||
+----------+--------------------------------------------------------------------+------+-----+---------+-------+
|
+----------+--------------------------------------------------------------------+------+-----+---------+-------+
|
||||||
5 rows in set (0,00 sec)
|
5 rows in set (0,00 sec)
|
||||||
|
@ -2480,7 +2480,7 @@ mysql> DESCRIBE prg_clipboards;
|
||||||
"'for') NOT NULL DEFAULT 'none',"
|
"'for') NOT NULL DEFAULT 'none',"
|
||||||
"Cod INT NOT NULL DEFAULT -1,"
|
"Cod INT NOT NULL DEFAULT -1,"
|
||||||
"CopyTime TIMESTAMP,"
|
"CopyTime TIMESTAMP,"
|
||||||
"INDEX(UsrCod,CrsCod,CopyTime),"
|
"UNIQUE INDEX(UsrCod,CrsCod,Type,Cod),"
|
||||||
"INDEX(CrsCod,Type,Cod),"
|
"INDEX(CrsCod,Type,Cod),"
|
||||||
"INDEX(CopyTime))");
|
"INDEX(CopyTime))");
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,32 @@
|
||||||
#include "swad_program.h"
|
#include "swad_program.h"
|
||||||
#include "swad_program_resource.h"
|
#include "swad_program_resource.h"
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/**************************** Private constants ******************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
const char *Prg_ResourceTypesDB[PrgRsc_NUM_TYPES] =
|
||||||
|
{
|
||||||
|
[PrgRsc_NONE ] = "non",
|
||||||
|
// gui TEACHING_GUIDE // Link to teaching guide
|
||||||
|
// bib BIBLIOGRAPHY // Link to bibliography
|
||||||
|
// faq FAQ // Link to FAQ
|
||||||
|
// lnk LINKS // Link to links
|
||||||
|
// tmt TIMETABLE // Link to timetable
|
||||||
|
[PrgRsc_ASSIGNMENT ] = "asg",
|
||||||
|
// prj PROJECT // A project is only for some students
|
||||||
|
[PrgRsc_CALL_FOR_EXAM ] = "cfe",
|
||||||
|
// tst TEST // User selects tags, teacher should select
|
||||||
|
[PrgRsc_EXAM ] = "exa",
|
||||||
|
[PrgRsc_GAME ] = "gam",
|
||||||
|
[PrgRsc_SURVEY ] = "svy",
|
||||||
|
[PrgRsc_DOCUMENT ] = "doc",
|
||||||
|
[PrgRsc_MARKS ] = "mrk",
|
||||||
|
// grp GROUPS // ??? User select groups
|
||||||
|
[PrgRsc_ATTENDANCE_EVENT] = "att",
|
||||||
|
[PrgRsc_FORUM_THREAD ] = "for",
|
||||||
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************** External global variables from others modules ****************/
|
/************** External global variables from others modules ****************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -645,3 +671,45 @@ void Prg_DB_UpdateRscInd (long RscCod,int RscInd)
|
||||||
RscInd,
|
RscInd,
|
||||||
RscCod);
|
RscCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/**************** Get resources in the current course clipboard **************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
/*
|
||||||
|
mysql> SELECT * FROM prg_clipboards;
|
||||||
|
+--------+--------+------+-----+---------------------+
|
||||||
|
| UsrCod | CrsCod | Type | Cod | CopyTime |
|
||||||
|
+--------+--------+------+-----+---------------------+
|
||||||
|
| 1 | 1 | doc | 33 | 2022-09-12 12:08:25 |
|
||||||
|
| 1 | 1 | doc | 28 | 2022-09-12 12:08:31 |
|
||||||
|
+--------+--------+------+-----+---------------------+
|
||||||
|
2 rows in set (0,00 sec)
|
||||||
|
*/
|
||||||
|
/*****************************************************************************/
|
||||||
|
/********************** Copy link to resource into clipboard *****************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
/*
|
||||||
|
mysql> DESCRIBE prg_clipboards;
|
||||||
|
+----------+--------------------------------------------------------------------+------+-----+---------+-------+
|
||||||
|
| Field | Type | Null | Key | Default | Extra |
|
||||||
|
+----------+--------------------------------------------------------------------+------+-----+---------+-------+
|
||||||
|
| UsrCod | int | NO | PRI | NULL | |
|
||||||
|
| CrsCod | int | NO | PRI | NULL | |
|
||||||
|
| Type | enum('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') | NO | PRI | none | |
|
||||||
|
| Cod | int | NO | PRI | -1 | |
|
||||||
|
| CopyTime | timestamp | YES | MUL | NULL | |
|
||||||
|
+----------+--------------------------------------------------------------------+------+-----+---------+-------+
|
||||||
|
5 rows in set (0,00 sec)
|
||||||
|
*/
|
||||||
|
void Prg_DB_CopyToClipboard (PrgRsc_Type_t Type,long Cod)
|
||||||
|
{
|
||||||
|
DB_QueryREPLACE ("can not copy link to resource clipboard",
|
||||||
|
"REPLACE INTO prg_clipboards"
|
||||||
|
" (UsrCod,CrsCod,Type,Cod,CopyTime)"
|
||||||
|
" VALUES"
|
||||||
|
" (%ld,%ld,'%s',%ld,NOW())",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
|
Prg_ResourceTypesDB[Type],
|
||||||
|
Cod);
|
||||||
|
}
|
||||||
|
|
|
@ -77,4 +77,6 @@ void Prg_DB_HideOrUnhideResource (long RscCod,bool Hide);
|
||||||
void Prg_DB_LockTableResources (void);
|
void Prg_DB_LockTableResources (void);
|
||||||
void Prg_DB_UpdateRscInd (long RscCod,int RscInd);
|
void Prg_DB_UpdateRscInd (long RscCod,int RscInd);
|
||||||
|
|
||||||
|
void Prg_DB_CopyToClipboard (PrgRsc_Type_t Type,long Cod);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -49,51 +49,6 @@ typedef enum
|
||||||
PrgRsc_MOVE_DOWN,
|
PrgRsc_MOVE_DOWN,
|
||||||
} PrgRsc_MoveUpDown_t;
|
} PrgRsc_MoveUpDown_t;
|
||||||
|
|
||||||
#define PrgRsc_NUM_TYPES 10
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PrgRsc_NONE,
|
|
||||||
// gui TEACHING_GUIDE // Link to teaching guide
|
|
||||||
// bib BIBLIOGRAPHY // Link to bibliography
|
|
||||||
// faq FAQ // Link to FAQ
|
|
||||||
// lnk LINKS // Link to links
|
|
||||||
// tmt TIMETABLE // Link to timetable
|
|
||||||
PrgRsc_ASSIGNMENT,
|
|
||||||
// prj PROJECT // A project is only for some students
|
|
||||||
PrgRsc_CALL_FOR_EXAM,
|
|
||||||
// tst TEST // User selects tags, teacher should select
|
|
||||||
PrgRsc_EXAM,
|
|
||||||
PrgRsc_GAME,
|
|
||||||
PrgRsc_SURVEY,
|
|
||||||
PrgRsc_DOCUMENT,
|
|
||||||
PrgRsc_MARKS,
|
|
||||||
// grp GROUPS // ??? User select groups
|
|
||||||
PrgRsc_ATTENDANCE_EVENT,
|
|
||||||
PrgRsc_FORUM_THREAD,
|
|
||||||
} PrgRsc_Type_t;
|
|
||||||
|
|
||||||
const char *PrgRsc_TypesDB[PrgRsc_NUM_TYPES] =
|
|
||||||
{
|
|
||||||
[PrgRsc_NONE ] = "non",
|
|
||||||
// gui TEACHING_GUIDE // Link to teaching guide
|
|
||||||
// bib BIBLIOGRAPHY // Link to bibliography
|
|
||||||
// faq FAQ // Link to FAQ
|
|
||||||
// lnk LINKS // Link to links
|
|
||||||
// tmt TIMETABLE // Link to timetable
|
|
||||||
[PrgRsc_ASSIGNMENT ] = "asg",
|
|
||||||
// prj PROJECT // A project is only for some students
|
|
||||||
[PrgRsc_CALL_FOR_EXAM ] = "cfe",
|
|
||||||
// tst TEST // User selects tags, teacher should select
|
|
||||||
[PrgRsc_EXAM ] = "exa",
|
|
||||||
[PrgRsc_GAME ] = "gam",
|
|
||||||
[PrgRsc_SURVEY ] = "svy",
|
|
||||||
[PrgRsc_DOCUMENT ] = "doc",
|
|
||||||
[PrgRsc_MARKS ] = "mrk",
|
|
||||||
// grp GROUPS // ??? User select groups
|
|
||||||
[PrgRsc_ATTENDANCE_EVENT] = "att",
|
|
||||||
[PrgRsc_FORUM_THREAD ] = "for",
|
|
||||||
};
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************************** Private variables *****************************/
|
/***************************** Private variables *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -48,6 +48,29 @@ struct PrgRsc_Resource
|
||||||
char Title[PrgRsc_MAX_BYTES_PROGRAM_RESOURCE_TITLE + 1];
|
char Title[PrgRsc_MAX_BYTES_PROGRAM_RESOURCE_TITLE + 1];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define PrgRsc_NUM_TYPES 10
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
PrgRsc_NONE,
|
||||||
|
// gui TEACHING_GUIDE // Link to teaching guide
|
||||||
|
// bib BIBLIOGRAPHY // Link to bibliography
|
||||||
|
// faq FAQ // Link to FAQ
|
||||||
|
// lnk LINKS // Link to links
|
||||||
|
// tmt TIMETABLE // Link to timetable
|
||||||
|
PrgRsc_ASSIGNMENT,
|
||||||
|
// prj PROJECT // A project is only for some students
|
||||||
|
PrgRsc_CALL_FOR_EXAM,
|
||||||
|
// tst TEST // User selects tags, teacher should select
|
||||||
|
PrgRsc_EXAM,
|
||||||
|
PrgRsc_GAME,
|
||||||
|
PrgRsc_SURVEY,
|
||||||
|
PrgRsc_DOCUMENT,
|
||||||
|
PrgRsc_MARKS,
|
||||||
|
// grp GROUPS // ??? User select groups
|
||||||
|
PrgRsc_ATTENDANCE_EVENT,
|
||||||
|
PrgRsc_FORUM_THREAD,
|
||||||
|
} PrgRsc_Type_t;
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************************** Public prototypes *****************************/
|
/***************************** Public prototypes *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
Loading…
Reference in New Issue