Version 22.83: Mar 27, 2023 New module swad_resource_database.

This commit is contained in:
acanas 2023-03-27 12:18:14 +02:00
parent 3207740503
commit 9c436403ff
19 changed files with 192 additions and 115 deletions

View File

@ -83,9 +83,10 @@ OBJS = swad_account.o swad_account_database.o swad_action.o swad_action_list.o \
swad_question.o swad_question_database.o swad_question_import.o \
swad_QR.o \
swad_record.o swad_record_database.o swad_report.o \
swad_report_database.o swad_resource.o swad_role.o swad_role_database.o \
swad_room.o swad_room_database.o swad_RSS.o swad_rubric.o \
swad_rubric_criteria.o swad_rubric_database.o swad_rubric_resource.o \
swad_report_database.o swad_resource.o swad_resource_database.o \
swad_role.o swad_role_database.o swad_room.o swad_room_database.o \
swad_RSS.o swad_rubric.o swad_rubric_criteria.o swad_rubric_database.o \
swad_rubric_resource.o \
swad_scope.o swad_search.o swad_session.o swad_session_database.o \
swad_setting.o swad_setting_database.o swad_statistic.o \
swad_statistic_database.o swad_string.o swad_survey.o \

View File

@ -34,7 +34,7 @@
#include "swad_form.h"
#include "swad_pagination.h"
#include "swad_parameter_code.h"
#include "swad_program_database.h"
#include "swad_resource_database.h"
/*****************************************************************************/
/************************** Get link to assignment ***************************/
@ -61,7 +61,7 @@ void AsgRsc_GetLinkToAssignment (void)
AsgRsc_GetTitleFromAsgCod (Assignments.Asg.AsgCod,Title,sizeof (Title) - 1);
/***** Copy link to assignment into resource clipboard *****/
Prg_DB_CopyToClipboard (Rsc_ASSIGNMENT,Assignments.Asg.AsgCod);
Rsc_DB_CopyToClipboard (Rsc_ASSIGNMENT,Assignments.Asg.AsgCod);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,

View File

@ -32,7 +32,7 @@
#include "swad_error.h"
#include "swad_form.h"
#include "swad_parameter_code.h"
#include "swad_program_database.h"
#include "swad_resource_database.h"
/*****************************************************************************/
/************************ Get link to attendance event ***********************/
@ -51,7 +51,7 @@ void AttRsc_GetLinkToEvent (void)
AttRsc_GetTitleFromAttCod (AttCod,Title,sizeof (Title) - 1);
/***** Copy link to attendance event into resource clipboard *****/
Prg_DB_CopyToClipboard (Rsc_ATTENDANCE_EVENT,AttCod);
Rsc_DB_CopyToClipboard (Rsc_ATTENDANCE_EVENT,AttCod);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,

View File

@ -33,9 +33,7 @@
#include "swad_form.h"
#include "swad_global.h"
#include "swad_parameter_code.h"
#include "swad_program.h"
#include "swad_program_database.h"
#include "swad_program_resource.h"
#include "swad_resource_database.h"
/*****************************************************************************/
/******************** Global variables from other modules ********************/
@ -80,7 +78,7 @@ void BrwRsc_GetLinkToFile (void)
}
/***** Copy link to file into resource clipboard *****/
Prg_DB_CopyToClipboard (Type,FilCod);
Rsc_DB_CopyToClipboard (Type,FilCod);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,

View File

@ -32,7 +32,7 @@
#include "swad_error.h"
#include "swad_form.h"
#include "swad_parameter_code.h"
#include "swad_program_database.h"
#include "swad_resource_database.h"
/*****************************************************************************/
/************************ Get link to call for exam **************************/
@ -52,7 +52,7 @@ void Cfe_GetLinkToCallForExam (void)
CfeRsc_GetTitleFromExaCod (ExaCod,Title,sizeof (Title) - 1);
/***** Copy link to call for exam into resource clipboard *****/
Prg_DB_CopyToClipboard (Rsc_CALL_FOR_EXAM,ExaCod);
Rsc_DB_CopyToClipboard (Rsc_CALL_FOR_EXAM,ExaCod);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,

View File

@ -629,10 +629,14 @@ TODO: Emilce Barrera Mesa: Podr
TODO: Emilce Barrera Mesa: Mis estudiantes presentan muchas dificultades a la hora de poner la foto porque la plataforma es muy exigente respecto al fondo de la imagen.
*/
#define Log_PLATFORM_VERSION "SWAD 22.82 (2023-03-27)"
#define Log_PLATFORM_VERSION "SWAD 22.83 (2023-03-27)"
#define CSS_FILE "swad22.78.15.css"
#define JS_FILE "swad22.49.js"
/*
Version 22.83: Mar 27, 2023 New module swad_resource_database. (338208 lines)
1 change necessary in database:
RENAME TABLE prg_clipboards TO rsc_clipboards;
Version 22.82: Mar 27, 2023 New module swad_rubric_resource. (338149 lines)
Version 22.81.2: Mar 27, 2023 Changes in resources. (337974 lines)
Version 22.81.1: Mar 26, 2023 Changes in resources. (338012 lines)

View File

@ -2471,30 +2471,6 @@ 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 | NO | PRI | NULL | |
| CrsCod | int | NO | PRI | NULL | |
| Type | enum('non','asg','prj','cfe','exa','gam','rub','doc','mrk','att','for','svy') | NO | PRI | non | |
| Cod | int | NO | PRI | -1 | |
| CopyTime | timestamp | YES | MUL | NULL | |
+----------+-------------------------------------------------------------------------------+------+-----+---------+-------+
5 rows in set (0,00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS prg_clipboards ("
"UsrCod INT NOT NULL,"
"CrsCod INT NOT NULL,"
"Type ENUM('non','asg','prj','cfe','exa','gam','rub','doc','mrk','att','for','svy') NOT NULL DEFAULT 'non',"
"Cod INT NOT NULL DEFAULT -1,"
"CopyTime TIMESTAMP,"
"UNIQUE INDEX(UsrCod,CrsCod,Type,Cod),"
"INDEX(CrsCod,Type,Cod),"
"INDEX(CopyTime))");
/***** Table prg_expanded *****/
/*
mysql> DESCRIBE prg_expanded;
@ -2776,6 +2752,30 @@ mysql> DESCRIBE roo_check_in;
"INDEX(UsrCod,CheckInTime),"
"INDEX(CheckInTime))");
/***** Table rsc_clipboards *****/
/*
mysql> DESCRIBE rsc_clipboards;
+----------+-------------------------------------------------------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------------------------------------------------------------------------+------+-----+---------+-------+
| UsrCod | int | NO | PRI | NULL | |
| CrsCod | int | NO | PRI | NULL | |
| Type | enum('non','asg','prj','cfe','exa','gam','rub','doc','mrk','att','for','svy') | NO | PRI | non | |
| Cod | int | NO | PRI | -1 | |
| CopyTime | timestamp | YES | MUL | NULL | |
+----------+-------------------------------------------------------------------------------+------+-----+---------+-------+
5 rows in set (0,00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS rsc_clipboards ("
"UsrCod INT NOT NULL,"
"CrsCod INT NOT NULL,"
"Type ENUM('non','asg','prj','cfe','exa','gam','rub','doc','mrk','att','for','svy') NOT NULL DEFAULT 'non',"
"Cod INT NOT NULL DEFAULT -1,"
"CopyTime TIMESTAMP,"
"UNIQUE INDEX(UsrCod,CrsCod,Type,Cod),"
"INDEX(CrsCod,Type,Cod),"
"INDEX(CopyTime))");
/***** Table rub_criteria *****/
/*
mysql> DESCRIBE rub_criteria;

View File

@ -33,7 +33,7 @@
#include "swad_exam_resource.h"
#include "swad_form.h"
#include "swad_parameter_code.h"
#include "swad_program_database.h"
#include "swad_resource_database.h"
/*****************************************************************************/
/***************************** Get link to exam ******************************/
@ -55,7 +55,7 @@ void ExaRsc_GetLinkToExam (void)
ExaRsc_GetTitleFromExaCod (Exams.Exam.ExaCod,Title,sizeof (Title) - 1);
/***** Copy link to exam into resource clipboard *****/
Prg_DB_CopyToClipboard (Rsc_EXAM,Exams.Exam.ExaCod);
Rsc_DB_CopyToClipboard (Rsc_EXAM,Exams.Exam.ExaCod);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,

View File

@ -31,7 +31,7 @@
#include "swad_forum_database.h"
#include "swad_forum_resource.h"
#include "swad_global.h"
#include "swad_program_database.h"
#include "swad_resource_database.h"
/*****************************************************************************/
/************** External global variables from others modules ****************/
@ -59,7 +59,7 @@ void ForRsc_GetLinkToThread (void)
ForRsc_GetTitleFromThrCod (Forums.Thread.Current,Subject,sizeof (Subject) - 1);
/***** Copy link to thread into resource clipboard *****/
Prg_DB_CopyToClipboard (Rsc_FORUM_THREAD,Forums.Thread.Current);
Rsc_DB_CopyToClipboard (Rsc_FORUM_THREAD,Forums.Thread.Current);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,

View File

@ -33,7 +33,8 @@
#include "swad_game_database.h"
#include "swad_game_resource.h"
#include "swad_parameter_code.h"
#include "swad_program_database.h"
#include "swad_resource_database.h"
#include "swad_theme.h"
/*****************************************************************************/
/***************************** Get link to game ******************************/
@ -56,7 +57,7 @@ void GamRsc_GetLinkToGame (void)
GamRsc_GetTitleFromGamCod (GamCod,Title,sizeof (Title) - 1);
/***** Copy link to game into resource clipboard *****/
Prg_DB_CopyToClipboard (Rsc_GAME,GamCod);
Rsc_DB_CopyToClipboard (Rsc_GAME,GamCod);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,

View File

@ -644,63 +644,6 @@ void Prg_DB_UpdateRscLink (const struct Prg_Item *Item)
Item->Resource.Hierarchy.RscCod);
}
/*****************************************************************************/
/********************** Copy link to resource into clipboard *****************/
/*****************************************************************************/
void Prg_DB_CopyToClipboard (Rsc_Type_t Type,long Cod)
{
extern const char *Rsc_ResourceTypesDB[Rsc_NUM_TYPES];
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,
Rsc_ResourceTypesDB[Type],
Cod);
}
/*****************************************************************************/
/**************** Get resources in the current course clipboard **************/
/*****************************************************************************/
unsigned Prg_DB_GetClipboard (MYSQL_RES **mysql_res)
{
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get clipboard",
"SELECT Type," // row[0]
"Cod" // row[1]
" FROM prg_clipboards"
" WHERE UsrCod=%ld"
" AND CrsCod=%ld"
" ORDER BY CopyTime",
Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Hierarchy.Crs.CrsCod);
}
/*****************************************************************************/
/*************************** Remove link from clipboard **********************/
/*****************************************************************************/
void Prg_DB_RemoveLinkFromClipboard (struct Rsc_Link *Link)
{
extern const char *Rsc_ResourceTypesDB[Rsc_NUM_TYPES];
DB_QueryDELETE ("can not remove link from clipboard",
"DELETE FROM prg_clipboards"
" WHERE UsrCod=%ld"
" AND CrsCod=%ld"
" AND Type='%s'"
" AND Cod=%ld",
Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Hierarchy.Crs.CrsCod,
Rsc_ResourceTypesDB[Link->Type],
Link->Cod);
}
/*****************************************************************************/
/************************ Insert item in expanded items **********************/
/*****************************************************************************/

View File

@ -77,10 +77,6 @@ void Prg_DB_LockTableResources (void);
void Prg_DB_UpdateRscInd (long RscCod,int RscInd);
void Prg_DB_UpdateRscLink (const struct Prg_Item *Item);
void Prg_DB_CopyToClipboard (Rsc_Type_t Type,long Cod);
unsigned Prg_DB_GetClipboard (MYSQL_RES **mysql_res);
void Prg_DB_RemoveLinkFromClipboard (struct Rsc_Link *Link);
void Prg_DB_InsertItemInExpandedItems (long ItmCod);
bool Prg_DB_GetIfExpandedItem (long ItmCod);
void Prg_DB_RemoveItemFromExpandedItems (long ItmCod);

View File

@ -40,6 +40,7 @@
#include "swad_parameter_code.h"
#include "swad_program.h"
#include "swad_program_database.h"
#include "swad_resource_database.h"
/*****************************************************************************/
/************** External global variables from others modules ****************/
@ -890,7 +891,7 @@ static void PrgRsc_ShowClipboard (struct Prg_Item *Item)
Rsc_WriteRowClipboard (true,&EmptyLink);
/***** Get links in clipboard from database and write them *****/
NumLinks = Prg_DB_GetClipboard (&mysql_res);
NumLinks = Rsc_DB_GetClipboard (&mysql_res);
for (NumLink = 1;
NumLink <= NumLinks;
NumLink++)
@ -950,7 +951,7 @@ void PrgRsc_ChangeLink (void)
Prg_DB_UpdateRscLink (&Item);
/***** Remove link from clipboard *****/
Prg_DB_RemoveLinkFromClipboard (&Item.Resource.Link);
Rsc_DB_RemoveLinkFromClipboard (&Item.Resource.Link);
}
/***** Show current program items, if any *****/

View File

@ -34,6 +34,7 @@
#include "swad_project.h"
#include "swad_project_database.h"
#include "swad_project_resource.h"
#include "swad_resource_database.h"
/*****************************************************************************/
/***************************** Get link to game ******************************/
@ -56,7 +57,7 @@ void PrjRsc_GetLinkToProject (void)
PrjRsc_GetTitleFromPrjCod (Projects.Prj.PrjCod,Title,sizeof (Title) - 1);
/***** Copy link to PROJECT into resource clipboard *****/
Prg_DB_CopyToClipboard (Rsc_PROJECT,Projects.Prj.PrjCod);
Rsc_DB_CopyToClipboard (Rsc_PROJECT,Projects.Prj.PrjCod);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,

93
swad_resource_database.c Normal file
View File

@ -0,0 +1,93 @@
// swad_resource_database.c: resources, operations with database
/*
SWAD (Shared Workspace At a Distance),
is a web platform developed at the University of Granada (Spain),
and used to support university teaching.
This file is part of SWAD core.
Copyright (C) 1999-2023 Antonio Cañas Vargas
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*****************************************************************************/
/********************************* Headers ***********************************/
/*****************************************************************************/
#include "swad_database.h"
#include "swad_global.h"
#include "swad_resource.h"
/*****************************************************************************/
/************** External global variables from others modules ****************/
/*****************************************************************************/
extern struct Globals Gbl;
/*****************************************************************************/
/********************** Copy link to resource into clipboard *****************/
/*****************************************************************************/
void Rsc_DB_CopyToClipboard (Rsc_Type_t Type,long Cod)
{
extern const char *Rsc_ResourceTypesDB[Rsc_NUM_TYPES];
DB_QueryREPLACE ("can not copy link to resource clipboard",
"REPLACE INTO rsc_clipboards"
" (UsrCod,CrsCod,Type,Cod,CopyTime)"
" VALUES"
" (%ld,%ld,'%s',%ld,NOW())",
Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Hierarchy.Crs.CrsCod,
Rsc_ResourceTypesDB[Type],
Cod);
}
/*****************************************************************************/
/**************** Get resources in the current course clipboard **************/
/*****************************************************************************/
unsigned Rsc_DB_GetClipboard (MYSQL_RES **mysql_res)
{
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get clipboard",
"SELECT Type," // row[0]
"Cod" // row[1]
" FROM rsc_clipboards"
" WHERE UsrCod=%ld"
" AND CrsCod=%ld"
" ORDER BY CopyTime",
Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Hierarchy.Crs.CrsCod);
}
/*****************************************************************************/
/*************************** Remove link from clipboard **********************/
/*****************************************************************************/
void Rsc_DB_RemoveLinkFromClipboard (struct Rsc_Link *Link)
{
extern const char *Rsc_ResourceTypesDB[Rsc_NUM_TYPES];
DB_QueryDELETE ("can not remove link from clipboard",
"DELETE FROM rsc_clipboards"
" WHERE UsrCod=%ld"
" AND CrsCod=%ld"
" AND Type='%s'"
" AND Cod=%ld",
Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Hierarchy.Crs.CrsCod,
Rsc_ResourceTypesDB[Link->Type],
Link->Cod);
}

40
swad_resource_database.h Normal file
View File

@ -0,0 +1,40 @@
// swad_resource_database.h: resources, operations with database
#ifndef _SWAD_RSC_DB
#define _SWAD_RSC_DB
/*
SWAD (Shared Workspace At a Distance),
is a web platform developed at the University of Granada (Spain),
and used to support university teaching.
This file is part of SWAD core.
Copyright (C) 1999-2023 Antonio Cañas Vargas
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*****************************************************************************/
/********************************* Headers ***********************************/
/*****************************************************************************/
#include "swad_resource.h"
/*****************************************************************************/
/***************************** Public prototypes *****************************/
/*****************************************************************************/
void Rsc_DB_CopyToClipboard (Rsc_Type_t Type,long Cod);
unsigned Rsc_DB_GetClipboard (MYSQL_RES **mysql_res);
void Rsc_DB_RemoveLinkFromClipboard (struct Rsc_Link *Link);
#endif

View File

@ -40,8 +40,7 @@
#include "swad_global.h"
#include "swad_parameter.h"
#include "swad_parameter_code.h"
#include "swad_program_database.h"
#include "swad_program_resource.h"
#include "swad_resource_database.h"
#include "swad_rubric.h"
#include "swad_rubric_criteria.h"
#include "swad_rubric_database.h"
@ -1213,7 +1212,7 @@ static void RubCri_ShowClipboard (const struct RubCri_Criterion *Criterion,const
RubCri_WriteRowClipboard (true,&EmptyLink); */
/***** Get links in clipboard from database and write them *****/
NumLinks = Prg_DB_GetClipboard (&mysql_res);
NumLinks = Rsc_DB_GetClipboard (&mysql_res);
for (NumLink = 1;
NumLink <= NumLinks;
NumLink++)

View File

@ -30,7 +30,7 @@
#include "swad_error.h"
#include "swad_form.h"
#include "swad_parameter_code.h"
#include "swad_program_database.h"
#include "swad_resource_database.h"
#include "swad_rubric.h"
#include "swad_rubric_database.h"
#include "swad_rubric_resource.h"
@ -55,7 +55,7 @@ void RubRsc_GetLinkToRubric (void)
RubRsc_GetTitleFromRubCod (Rubrics.Rubric.RubCod,Title,sizeof (Title) - 1);
/***** Copy link to rubric into resource clipboard *****/
Prg_DB_CopyToClipboard (Rsc_RUBRIC,Rubrics.Rubric.RubCod);
Rsc_DB_CopyToClipboard (Rsc_RUBRIC,Rubrics.Rubric.RubCod);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,

View File

@ -30,7 +30,7 @@
#include "swad_error.h"
#include "swad_form.h"
#include "swad_parameter_code.h"
#include "swad_program_database.h"
#include "swad_resource_database.h"
#include "swad_survey.h"
#include "swad_survey_database.h"
#include "swad_survey_resource.h"
@ -55,7 +55,7 @@ void SvyRsc_GetLinkToSurvey (void)
SvyRsc_GetTitleFromSvyCod (Surveys.Svy.SvyCod,Title,sizeof (Title) - 1);
/***** Copy link to survey into resource clipboard *****/
Prg_DB_CopyToClipboard (Rsc_SURVEY,Surveys.Svy.SvyCod);
Rsc_DB_CopyToClipboard (Rsc_SURVEY,Surveys.Svy.SvyCod);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,