mirror of https://github.com/acanas/swad-core.git
Version 22.110: May 12, 2023 Code refactoring confirming removal.
This commit is contained in:
parent
6a187daa6f
commit
a395f2014a
|
@ -1142,7 +1142,6 @@ static void Agd_FreeListEvents (struct Agd_Agenda *Agenda)
|
|||
void Agd_AskRemEvent (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_event_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Agd_Agenda Agenda;
|
||||
struct Agd_Event AgdEvent;
|
||||
|
||||
|
@ -1161,11 +1160,10 @@ void Agd_AskRemEvent (void)
|
|||
|
||||
/***** Show question and button to remove event *****/
|
||||
Agenda.AgdCodToEdit = AgdEvent.AgdCod;
|
||||
Ale_ShowAlertAndButton (ActRemEvtMyAgd,NULL,NULL,
|
||||
Agd_PutCurrentParsMyAgenda,&Agenda,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_event_X,
|
||||
AgdEvent.Title);
|
||||
Ale_ShowAlertRemove (ActRemEvtMyAgd,NULL,
|
||||
Agd_PutCurrentParsMyAgenda,&Agenda,
|
||||
Txt_Do_you_really_want_to_remove_the_event_X,
|
||||
AgdEvent.Title);
|
||||
|
||||
/***** Show events again *****/
|
||||
Agd_ShowMyAgenda (&Agenda);
|
||||
|
|
17
swad_alert.c
17
swad_alert.c
|
@ -318,6 +318,23 @@ void Ale_ShowLastAlertAndButton1 (void)
|
|||
Ale_ResetLastAlert ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** Show an alert with a button to confirm removal ***************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Ale_ShowAlertRemove (Act_Action_t NextAction,const char *Anchor,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
const char *Txt,const char *Title)
|
||||
{
|
||||
extern const char *Txt_Remove;
|
||||
|
||||
Ale_ShowAlertAndButton (NextAction,Anchor,NULL,
|
||||
FuncPars,Args,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt,
|
||||
Title);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*********************** Show an alert with a button *************************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -73,6 +73,9 @@ void Ale_ShowLastAlertAndButton (Act_Action_t NextAction,const char *Anchor,cons
|
|||
void (*FuncPars) (void *Args),void *Args,
|
||||
Btn_Button_t Button,const char *TxtButton);
|
||||
void Ale_ShowLastAlertAndButton1 (void);
|
||||
void Ale_ShowAlertRemove (Act_Action_t NextAction,const char *Anchor,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
const char *Txt,const char *Title);
|
||||
void Ale_ShowAlertAndButton (Act_Action_t NextAction,const char *Anchor,const char *OnSubmit,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
Btn_Button_t Button,const char *TxtButton,
|
||||
|
|
|
@ -988,7 +988,6 @@ void Asg_GetNotifAssignment (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
|||
void Asg_ReqRemAssignment (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_assignment_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Asg_Assignments Assignments;
|
||||
|
||||
/***** Reset assignments *****/
|
||||
|
@ -1006,11 +1005,10 @@ void Asg_ReqRemAssignment (void)
|
|||
Asg_GetAssignmentDataByCod (&Assignments.Asg);
|
||||
|
||||
/***** Show question and button to remove the assignment *****/
|
||||
Ale_ShowAlertAndButton (ActRemAsg,NULL,NULL,
|
||||
Asg_PutPars,&Assignments,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_assignment_X,
|
||||
Assignments.Asg.Title);
|
||||
Ale_ShowAlertRemove (ActRemAsg,NULL,
|
||||
Asg_PutPars,&Assignments,
|
||||
Txt_Do_you_really_want_to_remove_the_assignment_X,
|
||||
Assignments.Asg.Title);
|
||||
|
||||
/***** Show all assignments again *****/
|
||||
Asg_ShowAllAssignments (&Assignments);
|
||||
|
|
|
@ -805,7 +805,6 @@ static void Att_FreeListEvents (struct Att_Events *Events)
|
|||
void Att_AskRemEvent (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_event_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Att_Events Events;
|
||||
|
||||
/***** Reset attendance events *****/
|
||||
|
@ -823,11 +822,10 @@ void Att_AskRemEvent (void)
|
|||
Att_GetEventDataByCodAndCheckCrs (&Events.Event);
|
||||
|
||||
/***** Show question and button to remove event *****/
|
||||
Ale_ShowAlertAndButton (ActRemAtt,NULL,NULL,
|
||||
Att_PutPars,&Events,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_event_X,
|
||||
Events.Event.Title);
|
||||
Ale_ShowAlertRemove (ActRemAtt,NULL,
|
||||
Att_PutPars,&Events,
|
||||
Txt_Do_you_really_want_to_remove_the_event_X,
|
||||
Events.Event.Title);
|
||||
|
||||
/***** Show attendance events again *****/
|
||||
Att_SeeEvents ();
|
||||
|
|
|
@ -5115,7 +5115,6 @@ static void Brw_WriteFileOrFolderPublisher (unsigned Level,long UsrCod)
|
|||
void Brw_AskRemFileFromTree (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_FILE_OR_LINK_X;
|
||||
extern const char *Txt_Remove;
|
||||
extern const char *Txt_You_can_not_remove_this_file_or_link;
|
||||
char FileNameToShow[NAME_MAX + 1];
|
||||
|
||||
|
@ -5131,11 +5130,10 @@ void Brw_AskRemFileFromTree (void)
|
|||
Gbl.FileBrowser.FilFolLnk.Type,
|
||||
Gbl.FileBrowser.FilFolLnk.Name,
|
||||
FileNameToShow);
|
||||
Ale_ShowAlertAndButton (Brw_ActRemoveFile[Gbl.FileBrowser.Type],NULL,NULL,
|
||||
Brw_PutImplicitParsFileBrowser,&Gbl.FileBrowser.FilFolLnk,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_FILE_OR_LINK_X,
|
||||
FileNameToShow);
|
||||
Ale_ShowAlertRemove (Brw_ActRemoveFile[Gbl.FileBrowser.Type],NULL,
|
||||
Brw_PutImplicitParsFileBrowser,&Gbl.FileBrowser.FilFolLnk,
|
||||
Txt_Do_you_really_want_to_remove_FILE_OR_LINK_X,
|
||||
FileNameToShow);
|
||||
}
|
||||
else
|
||||
Err_ShowErrorAndExit (Txt_You_can_not_remove_this_file_or_link);
|
||||
|
@ -5258,14 +5256,12 @@ void Brw_RemFolderFromTree (void)
|
|||
static void Brw_AskConfirmRemoveFolderNotEmpty (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_folder_X;
|
||||
extern const char *Txt_Remove;
|
||||
|
||||
/***** Show question and button to remove not empty folder *****/
|
||||
Ale_ShowAlertAndButton (Brw_ActRemoveFolderNotEmpty[Gbl.FileBrowser.Type],NULL,NULL,
|
||||
Brw_PutImplicitParsFileBrowser,&Gbl.FileBrowser.FilFolLnk,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_folder_X,
|
||||
Gbl.FileBrowser.FilFolLnk.Name);
|
||||
Ale_ShowAlertRemove (Brw_ActRemoveFolderNotEmpty[Gbl.FileBrowser.Type],NULL,
|
||||
Brw_PutImplicitParsFileBrowser,&Gbl.FileBrowser.FilFolLnk,
|
||||
Txt_Do_you_really_want_to_remove_the_folder_X,
|
||||
Gbl.FileBrowser.FilFolLnk.Name);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -629,10 +629,11 @@ 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.109 (2023-05-11)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 22.110 (2023-05-12)"
|
||||
#define CSS_FILE "swad22.107.36.css"
|
||||
#define JS_FILE "swad22.49.js"
|
||||
/*
|
||||
Version 22.110: May 12, 2023 Code refactoring confirming removal. (336445 lines)
|
||||
Version 22.109: May 11, 2023 Code refactoring confirming removal. (336647 lines)
|
||||
Version 22.108: May 11, 2023 Code refactoring in forms. (337145 lines)
|
||||
Version 22.107.40:May 10, 2023 Changes in creation of test questions and survey questions. (337447 lines)
|
||||
|
|
10
swad_exam.c
10
swad_exam.c
|
@ -973,7 +973,6 @@ void Exa_FreeListExams (struct Exa_Exams *Exams)
|
|||
void Exa_AskRemExam (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_exam_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Exa_Exams Exams;
|
||||
|
||||
/***** Check if I can edit exams *****/
|
||||
|
@ -991,11 +990,10 @@ void Exa_AskRemExam (void)
|
|||
Exa_GetExamDataByCod (&Exams.Exam);
|
||||
|
||||
/***** Show question and button to remove exam *****/
|
||||
Ale_ShowAlertAndButton (ActRemExa,NULL,NULL,
|
||||
Exa_PutPars,&Exams,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_exam_X,
|
||||
Exams.Exam.Title);
|
||||
Ale_ShowAlertRemove (ActRemExa,NULL,
|
||||
Exa_PutPars,&Exams,
|
||||
Txt_Do_you_really_want_to_remove_the_exam_X,
|
||||
Exams.Exam.Title);
|
||||
|
||||
/***** Show exams again *****/
|
||||
Exa_ListAllExams (&Exams);
|
||||
|
|
|
@ -788,7 +788,6 @@ static void ExaSes_GetSessionDataFromRow (MYSQL_RES *mysql_res,
|
|||
void ExaSes_ReqRemSession (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_session_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Exa_Exams Exams;
|
||||
struct ExaSes_Session Session;
|
||||
|
||||
|
@ -803,11 +802,10 @@ void ExaSes_ReqRemSession (void)
|
|||
/***** Show question and button to remove question *****/
|
||||
Exams.Exam.ExaCod = Session.ExaCod;
|
||||
Exams.SesCod = Session.SesCod;
|
||||
Ale_ShowAlertAndButton (ActRemExaSes,NULL,NULL,
|
||||
ExaSes_PutParsEdit,&Exams,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_session_X,
|
||||
Session.Title);
|
||||
Ale_ShowAlertRemove (ActRemExaSes,NULL,
|
||||
ExaSes_PutParsEdit,&Exams,
|
||||
Txt_Do_you_really_want_to_remove_the_session_X,
|
||||
Session.Title);
|
||||
|
||||
/***** Show current exam *****/
|
||||
Exa_ShowOnlyOneExam (&Exams,&Session,
|
||||
|
|
|
@ -1234,7 +1234,6 @@ static void ExaSet_CopyQstFromBankToExamSet (const struct ExaSet_Set *Set,long Q
|
|||
void ExaSet_ReqRemSet (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_set_of_questions_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Exa_Exams Exams;
|
||||
struct ExaSet_Set Set;
|
||||
|
||||
|
@ -1251,11 +1250,10 @@ void ExaSet_ReqRemSet (void)
|
|||
Err_NoPermissionExit ();
|
||||
|
||||
/***** Show question and button to remove question *****/
|
||||
Ale_ShowAlertAndButton (ActRemExaSet,NULL,NULL,
|
||||
ExaSet_PutParsOneSet,&Exams,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_set_of_questions_X,
|
||||
Set.Title);
|
||||
Ale_ShowAlertRemove (ActRemExaSet,NULL,
|
||||
ExaSet_PutParsOneSet,&Exams,
|
||||
Txt_Do_you_really_want_to_remove_the_set_of_questions_X,
|
||||
Set.Title);
|
||||
|
||||
/***** Show current exam and its sets *****/
|
||||
Exa_PutFormsOneExam (&Exams,&Set,Exa_EXISTING_EXAM);
|
||||
|
@ -1401,10 +1399,10 @@ void ExaSet_MoveDownSet (void)
|
|||
void ExaSet_ReqRemQstFromSet (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_question_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Exa_Exams Exams;
|
||||
struct ExaSet_Set Set;
|
||||
char *Anchor;
|
||||
char StrQstCod[Cns_MAX_DECIMAL_DIGITS_LONG + 1];
|
||||
|
||||
/***** Reset exams context *****/
|
||||
Exa_ResetExams (&Exams);
|
||||
|
@ -1417,17 +1415,13 @@ void ExaSet_ReqRemQstFromSet (void)
|
|||
/***** Get question code *****/
|
||||
Exams.QstCod = ParCod_GetAndCheckPar (ParCod_Qst);
|
||||
|
||||
/***** Build anchor string *****/
|
||||
Frm_SetAnchorStr (Set.SetCod,&Anchor);
|
||||
|
||||
/***** Show question and button to remove question *****/
|
||||
Ale_ShowAlertAndButton (ActRemExaQst,Anchor,NULL,
|
||||
ExaSet_PutParsOneQst,&Exams,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_question_X,
|
||||
Exams.QstCod);
|
||||
|
||||
/***** Free anchor string *****/
|
||||
Frm_SetAnchorStr (Set.SetCod,&Anchor);
|
||||
sprintf (StrQstCod,"%ld",Exams.QstCod);
|
||||
Ale_ShowAlertRemove (ActRemExaQst,Anchor,
|
||||
ExaSet_PutParsOneQst,&Exams,
|
||||
Txt_Do_you_really_want_to_remove_the_question_X,
|
||||
StrQstCod);
|
||||
Frm_FreeAnchorStr (&Anchor);
|
||||
|
||||
/***** Show current exam and its sets *****/
|
||||
|
|
20
swad_forum.c
20
swad_forum.c
|
@ -3016,8 +3016,6 @@ void For_RemovePost (void)
|
|||
void For_ReqRemThread (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_entire_thread_X;
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_entire_thread;
|
||||
extern const char *Txt_Remove;
|
||||
struct For_Forums Forums;
|
||||
char Subject[Cns_MAX_BYTES_SUBJECT + 1];
|
||||
|
||||
|
@ -3035,19 +3033,11 @@ void For_ReqRemThread (void)
|
|||
|
||||
/***** Show question and button to remove the thread *****/
|
||||
HTM_SECTION_Begin (For_REMOVE_THREAD_SECTION_ID);
|
||||
if (Subject[0])
|
||||
Ale_ShowAlertAndButton (For_ActionsDelThrFor[Forums.Forum.Type],
|
||||
For_FORUM_THREADS_SECTION_ID,NULL,
|
||||
For_PutParsRemThread,&Forums,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_entire_thread_X,
|
||||
Subject);
|
||||
else
|
||||
Ale_ShowAlertAndButton (For_ActionsDelThrFor[Forums.Forum.Type],
|
||||
For_FORUM_THREADS_SECTION_ID,NULL,
|
||||
For_PutParsRemThread,&Forums,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_entire_thread);
|
||||
Ale_ShowAlertRemove (For_ActionsDelThrFor[Forums.Forum.Type],
|
||||
For_FORUM_THREADS_SECTION_ID,
|
||||
For_PutParsRemThread,&Forums,
|
||||
Txt_Do_you_really_want_to_remove_the_entire_thread_X,
|
||||
Subject);
|
||||
HTM_SECTION_End ();
|
||||
|
||||
/***** Show the threads again *****/
|
||||
|
|
22
swad_game.c
22
swad_game.c
|
@ -1029,7 +1029,6 @@ void Gam_FreeListGames (struct Gam_Games *Games)
|
|||
void Gam_AskRemGame (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_game_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Gam_Games Games;
|
||||
|
||||
/***** Reset games context *****/
|
||||
|
@ -1048,11 +1047,10 @@ void Gam_AskRemGame (void)
|
|||
Err_NoPermissionExit ();
|
||||
|
||||
/***** Show question and button to remove game *****/
|
||||
Ale_ShowAlertAndButton (ActRemGam,NULL,NULL,
|
||||
Gam_PutPars,&Games,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_game_X,
|
||||
Games.Game.Title);
|
||||
Ale_ShowAlertRemove (ActRemGam,NULL,
|
||||
Gam_PutPars,&Games,
|
||||
Txt_Do_you_really_want_to_remove_the_game_X,
|
||||
Games.Game.Title);
|
||||
|
||||
/***** Show games again *****/
|
||||
Gam_ListAllGames (&Games);
|
||||
|
@ -1927,9 +1925,9 @@ static void Gam_FreeListsSelectedQuestions (struct Gam_Games *Games)
|
|||
void Gam_ReqRemQstFromGame (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_question_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Gam_Games Games;
|
||||
unsigned QstInd;
|
||||
char StrQstInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
|
||||
|
||||
/***** Reset games context *****/
|
||||
Gam_ResetGames (&Games);
|
||||
|
@ -1951,11 +1949,11 @@ void Gam_ReqRemQstFromGame (void)
|
|||
|
||||
/***** Show question and button to remove question *****/
|
||||
Games.QstInd = QstInd;
|
||||
Ale_ShowAlertAndButton (ActRemGamQst,NULL,NULL,
|
||||
Gam_PutParsOneQst,&Games,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_question_X,
|
||||
QstInd);
|
||||
sprintf (StrQstInd,"%u",QstInd);
|
||||
Ale_ShowAlertRemove (ActRemGamQst,NULL,
|
||||
Gam_PutParsOneQst,&Games,
|
||||
Txt_Do_you_really_want_to_remove_the_question_X,
|
||||
StrQstInd);
|
||||
|
||||
/***** Show current game *****/
|
||||
Gam_ShowOnlyOneGame (&Games,
|
||||
|
|
61
swad_group.c
61
swad_group.c
|
@ -135,7 +135,7 @@ static void Grp_GetLstCodGrpsUsrBelongs (long UsrCod,long GrpTypCod,
|
|||
static bool Grp_CheckIfGrpIsInList (long GrpCod,struct ListCodGrps *LstGrps);
|
||||
static bool Grp_CheckIfOpenTimeInTheFuture (time_t OpenTimeUTC);
|
||||
|
||||
static void Grp_AskConfirmRemGrpTypWithGrps (unsigned NumGrps);
|
||||
static void Grp_AskConfirmRemGrpTypWithGrps (void);
|
||||
static void Grp_AskConfirmRemGrp (void);
|
||||
static void Grp_RemoveGroupTypeCompletely (void);
|
||||
static void Grp_RemoveGroupCompletely (void);
|
||||
|
@ -2801,7 +2801,7 @@ void Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_WhichGroupTypes_t WhichGroupTypes)
|
|||
Grp->Room.ShrtName[0] = '\0';
|
||||
|
||||
/* Get number of current users in group */
|
||||
for (Role = Rol_TCH;
|
||||
for (Role = Rol_TCH;
|
||||
Role >= Rol_STD;
|
||||
Role--)
|
||||
Grp->NumUsrs[Role] = Grp_DB_CountNumUsrsInGrp (Role,Grp->GrpCod);
|
||||
|
@ -3331,14 +3331,12 @@ void Grp_ReceiveFormNewGrp (void)
|
|||
|
||||
void Grp_ReqRemGroupType (void)
|
||||
{
|
||||
unsigned NumGrps;
|
||||
|
||||
/***** Get the code of the group type *****/
|
||||
Gbl.Crs.Grps.GrpTyp.GrpTypCod = ParCod_GetAndCheckPar (ParCod_GrpTyp);
|
||||
|
||||
/***** Check if this group type has groups *****/
|
||||
if ((NumGrps = Grp_DB_CountNumGrpsInThisCrsOfType (Gbl.Crs.Grps.GrpTyp.GrpTypCod))) // Group type has groups ==> Ask for confirmation
|
||||
Grp_AskConfirmRemGrpTypWithGrps (NumGrps);
|
||||
if (Grp_DB_CountNumGrpsInThisCrsOfType (Gbl.Crs.Grps.GrpTyp.GrpTypCod)) // Group type has groups ==> Ask for confirmation
|
||||
Grp_AskConfirmRemGrpTypWithGrps ();
|
||||
else // Group type has no groups ==> remove directly
|
||||
Grp_RemoveGroupTypeCompletely ();
|
||||
}
|
||||
|
@ -3360,11 +3358,9 @@ void Grp_ReqRemGroup (void)
|
|||
/********** Ask for confirmation to remove a group type with groups **********/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Grp_AskConfirmRemGrpTypWithGrps (unsigned NumGrps)
|
||||
static void Grp_AskConfirmRemGrpTypWithGrps (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_type_of_group_X_1_group_;
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_type_of_group_X_Y_groups_;
|
||||
extern const char *Txt_Remove;
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_type_of_group_X;
|
||||
|
||||
/***** Get data of the group type from database *****/
|
||||
Grp_GetGroupTypeDataByCod (&Gbl.Crs.Grps.GrpTyp);
|
||||
|
@ -3373,18 +3369,10 @@ static void Grp_AskConfirmRemGrpTypWithGrps (unsigned NumGrps)
|
|||
Grp_ReqEditGroupsInternal0 ();
|
||||
|
||||
/***** Show question and button to remove type of group *****/
|
||||
if (NumGrps == 1)
|
||||
Ale_ShowAlertAndButton (ActRemGrpTyp,Grp_GROUP_TYPES_SECTION_ID,NULL,
|
||||
Grp_PutParGrpTypCod,&Gbl.Crs.Grps.GrpTyp.GrpTypCod,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_type_of_group_X_1_group_,
|
||||
Gbl.Crs.Grps.GrpTyp.GrpTypName);
|
||||
else
|
||||
Ale_ShowAlertAndButton (ActRemGrpTyp,Grp_GROUP_TYPES_SECTION_ID,NULL,
|
||||
Grp_PutParGrpTypCod,&Gbl.Crs.Grps.GrpTyp.GrpTypCod,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_type_of_group_X_Y_groups_,
|
||||
Gbl.Crs.Grps.GrpTyp.GrpTypName,NumGrps);
|
||||
Ale_ShowAlertRemove (ActRemGrpTyp,Grp_GROUP_TYPES_SECTION_ID,
|
||||
Grp_PutParGrpTypCod,&Gbl.Crs.Grps.GrpTyp.GrpTypCod,
|
||||
Txt_Do_you_really_want_to_remove_the_type_of_group_X,
|
||||
Gbl.Crs.Grps.GrpTyp.GrpTypName);
|
||||
|
||||
/***** Show the form to edit group types and groups again *****/
|
||||
Grp_ReqEditGroupsInternal1 (Ale_INFO,NULL);
|
||||
|
@ -3398,42 +3386,21 @@ static void Grp_AskConfirmRemGrpTypWithGrps (unsigned NumGrps)
|
|||
static void Grp_AskConfirmRemGrp (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_group_X;
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_group_X_1_student_;
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_group_X_Y_students_;
|
||||
extern const char *Txt_Remove;
|
||||
struct GroupData GrpDat;
|
||||
unsigned NumStds;
|
||||
|
||||
/***** Get name of the group from database *****/
|
||||
GrpDat.GrpCod = Gbl.Crs.Grps.GrpCod;
|
||||
Grp_GetGroupDataByCod (&GrpDat);
|
||||
|
||||
/***** Count number of students in group *****/
|
||||
NumStds = Grp_DB_CountNumUsrsInGrp (Rol_STD,Gbl.Crs.Grps.GrpCod);
|
||||
|
||||
/***** Show the form to edit group types again *****/
|
||||
Grp_ReqEditGroupsInternal0 ();
|
||||
Grp_ReqEditGroupsInternal1 (Ale_INFO,NULL);
|
||||
|
||||
/***** Show question and button to remove group *****/
|
||||
if (NumStds == 0)
|
||||
Ale_ShowAlertAndButton (ActRemGrp,Grp_GROUPS_SECTION_ID,NULL,
|
||||
Grp_PutParGrpCod,&Gbl.Crs.Grps.GrpCod,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_group_X,
|
||||
GrpDat.GrpName);
|
||||
else if (NumStds == 1)
|
||||
Ale_ShowAlertAndButton (ActRemGrp,Grp_GROUPS_SECTION_ID,NULL,
|
||||
Grp_PutParGrpCod,&Gbl.Crs.Grps.GrpCod,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_group_X_1_student_,
|
||||
GrpDat.GrpName);
|
||||
else
|
||||
Ale_ShowAlertAndButton (ActRemGrp,Grp_GROUPS_SECTION_ID,NULL,
|
||||
Grp_PutParGrpCod,&Gbl.Crs.Grps.GrpCod,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_group_X_Y_students_,
|
||||
GrpDat.GrpName,NumStds);
|
||||
Ale_ShowAlertRemove (ActRemGrp,Grp_GROUPS_SECTION_ID,
|
||||
Grp_PutParGrpCod,&Gbl.Crs.Grps.GrpCod,
|
||||
Txt_Do_you_really_want_to_remove_the_group_X,
|
||||
GrpDat.GrpName);
|
||||
|
||||
/***** Show the form to edit groups again *****/
|
||||
Grp_ReqEditGroupsInternal2 (Ale_INFO,NULL);
|
||||
|
|
10
swad_match.c
10
swad_match.c
|
@ -962,7 +962,6 @@ static void Mch_GetMatchDataFromRow (MYSQL_RES *mysql_res,
|
|||
void Mch_ReqRemMatch (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_match_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Gam_Games Games;
|
||||
struct Mch_Match Match;
|
||||
|
||||
|
@ -975,11 +974,10 @@ void Mch_ReqRemMatch (void)
|
|||
Mch_GetAndCheckPars (&Games,&Match);
|
||||
|
||||
/***** Show question and button to remove question *****/
|
||||
Ale_ShowAlertAndButton (ActRemMch,NULL,NULL,
|
||||
Mch_PutParsEdit,&Games,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_match_X,
|
||||
Match.Title);
|
||||
Ale_ShowAlertRemove (ActRemMch,NULL,
|
||||
Mch_PutParsEdit,&Games,
|
||||
Txt_Do_you_really_want_to_remove_the_match_X,
|
||||
Match.Title);
|
||||
|
||||
/***** Show current game *****/
|
||||
Gam_ShowOnlyOneGame (&Games,
|
||||
|
|
|
@ -1377,7 +1377,6 @@ inline unsigned Prg_GetLevelFromNumItem (unsigned NumItem)
|
|||
void Prg_ReqRemItem (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_item_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Prg_Item Item;
|
||||
|
||||
/***** Get list of program items *****/
|
||||
|
@ -1389,11 +1388,10 @@ void Prg_ReqRemItem (void)
|
|||
Err_WrongItemExit ();
|
||||
|
||||
/***** Show question and button to remove the program item *****/
|
||||
Ale_ShowAlertAndButton (ActRemPrgItm,NULL,NULL,
|
||||
Prg_PutParItmCod,&Item.Hierarchy.ItmCod,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_item_X,
|
||||
Item.Title);
|
||||
Ale_ShowAlertRemove (ActRemPrgItm,NULL,
|
||||
Prg_PutParItmCod,&Item.Hierarchy.ItmCod,
|
||||
Txt_Do_you_really_want_to_remove_the_item_X,
|
||||
Item.Title);
|
||||
|
||||
/***** Show program items highlighting subtree *****/
|
||||
Prg_ShowAllItems (Prg_EDIT_ITEMS,Item.Hierarchy.ItmCod,-1L);
|
||||
|
|
|
@ -3470,7 +3470,6 @@ void Prj_FreeListProjects (struct Prj_Projects *Projects)
|
|||
void Prj_ReqRemProject (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_project_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Prj_Projects Projects;
|
||||
|
||||
/***** Reset projects *****/
|
||||
|
@ -3491,11 +3490,10 @@ void Prj_ReqRemProject (void)
|
|||
Err_NoPermissionExit ();
|
||||
|
||||
/***** Show question and button to remove the project *****/
|
||||
Ale_ShowAlertAndButton (ActRemPrj,NULL,NULL,
|
||||
Prj_PutCurrentPars,&Projects,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_project_X,
|
||||
Projects.Prj.Title);
|
||||
Ale_ShowAlertRemove (ActRemPrj,NULL,
|
||||
Prj_PutCurrentPars,&Projects,
|
||||
Txt_Do_you_really_want_to_remove_the_project_X,
|
||||
Projects.Prj.Title);
|
||||
|
||||
/***** Free memory of the project *****/
|
||||
Prj_FreeMemProject (&Projects.Prj);
|
||||
|
|
|
@ -3185,7 +3185,6 @@ long Qst_GetIntAnsFromStr (char *Str)
|
|||
void Qst_ReqRemSelectedQsts (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_selected_questions;
|
||||
extern const char *Txt_Remove;
|
||||
struct Qst_Questions Questions;
|
||||
|
||||
/***** Create test *****/
|
||||
|
@ -3195,10 +3194,10 @@ void Qst_ReqRemSelectedQsts (void)
|
|||
if (Tst_GetParsTst (&Questions,Tst_EDIT_QUESTIONS)) // Get parameters from the form
|
||||
{
|
||||
/***** Show question and button to remove question *****/
|
||||
Ale_ShowAlertAndButton (ActRemSevTstQst,NULL,NULL,
|
||||
Qst_PutParsEditQst,&Questions,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_selected_questions);
|
||||
Ale_ShowAlertRemove (ActRemSevTstQst,NULL,
|
||||
Qst_PutParsEditQst,&Questions,
|
||||
Txt_Do_you_really_want_to_remove_the_selected_questions,
|
||||
NULL);
|
||||
}
|
||||
else
|
||||
Ale_ShowAlert (Ale_ERROR,"Wrong parameters.");
|
||||
|
@ -3274,9 +3273,9 @@ void Qst_PutIconToRemoveOneQst (void *QstCod)
|
|||
void Qst_ReqRemOneQst (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_question_X;
|
||||
extern const char *Txt_Remove;
|
||||
bool EditingOnlyThisQst;
|
||||
struct Qst_Questions Questions;
|
||||
char StrQstCod[Cns_MAX_DECIMAL_DIGITS_LONG + 1];
|
||||
|
||||
/***** Create test *****/
|
||||
Qst_Constructor (&Questions);
|
||||
|
@ -3295,28 +3294,14 @@ void Qst_ReqRemOneQst (void)
|
|||
Err_ShowErrorAndExit ("Wrong test parameters.");
|
||||
|
||||
/***** Show question and button to remove question *****/
|
||||
/*
|
||||
if (EditingOnlyThisQst)
|
||||
Ale_ShowAlertAndButton (ActRemOneTstQst,NULL,NULL,
|
||||
Qst_PutParsRemoveOnlyThisQst,&Questions.Question.QstCod,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_question_X,
|
||||
Questions.Question.QstCod);
|
||||
else
|
||||
Ale_ShowAlertAndButton (ActRemOneTstQst,NULL,NULL,
|
||||
Qst_PutParsEditQst,&Questions,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_question_X,
|
||||
Questions.Question.QstCod);
|
||||
*/
|
||||
Ale_ShowAlertAndButton (ActRemOneTstQst,NULL,NULL,
|
||||
EditingOnlyThisQst ? Qst_PutParsRemoveOnlyThisQst :
|
||||
Qst_PutParsEditQst,
|
||||
EditingOnlyThisQst ? (void *) &Questions.Question.QstCod :
|
||||
(void *) &Questions,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_question_X,
|
||||
Questions.Question.QstCod);
|
||||
sprintf (StrQstCod,"%ld",Questions.Question.QstCod);
|
||||
Ale_ShowAlertRemove (ActRemOneTstQst,NULL,
|
||||
EditingOnlyThisQst ? Qst_PutParsRemoveOnlyThisQst :
|
||||
Qst_PutParsEditQst,
|
||||
EditingOnlyThisQst ? (void *) &Questions.Question.QstCod :
|
||||
(void *) &Questions,
|
||||
Txt_Do_you_really_want_to_remove_the_question_X,
|
||||
StrQstCod);
|
||||
|
||||
/***** Continue editing questions *****/
|
||||
if (EditingOnlyThisQst)
|
||||
|
|
|
@ -103,6 +103,8 @@ static struct
|
|||
static void Rec_ListFieldsRecordsForEdition (void);
|
||||
static void Rec_WriteHeadingRecordFields (void);
|
||||
|
||||
static void Rec_AskConfirmRemFieldWithRecords (void);
|
||||
|
||||
static void Rec_PutParFldCod (void *FldCod);
|
||||
static void Rec_GetFieldByCod (long FldCod,char Name[Rec_MAX_BYTES_NAME_FIELD + 1],
|
||||
unsigned *NumLines,Rec_VisibilityRecordFields_t *Visibility);
|
||||
|
@ -549,14 +551,12 @@ void Rec_CreateRecordField (void)
|
|||
|
||||
void Rec_ReqRemField (void)
|
||||
{
|
||||
unsigned NumRecords;
|
||||
|
||||
/***** Get the code of field *****/
|
||||
Gbl.Crs.Records.Field.FieldCod = ParCod_GetAndCheckPar (ParCod_Fld);
|
||||
|
||||
/***** Check if exists any record with that field filled *****/
|
||||
if ((NumRecords = Rec_DB_CountNumRecordsWithFieldContent (Gbl.Crs.Records.Field.FieldCod))) // There are records with that field filled
|
||||
Rec_AskConfirmRemFieldWithRecords (NumRecords);
|
||||
if (Rec_DB_CountNumRecordsWithFieldContent (Gbl.Crs.Records.Field.FieldCod)) // There are records with that field filled
|
||||
Rec_AskConfirmRemFieldWithRecords ();
|
||||
else // There are no records with that field filled
|
||||
Rec_RemoveFieldFromDB ();
|
||||
}
|
||||
|
@ -565,10 +565,9 @@ void Rec_ReqRemField (void)
|
|||
/******* Request confirmation for the removing of a field with records *******/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Rec_AskConfirmRemFieldWithRecords (unsigned NumRecords)
|
||||
static void Rec_AskConfirmRemFieldWithRecords (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_field_X_from_the_records_of_Y_Z_;
|
||||
extern const char *Txt_Remove;
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_field_X;
|
||||
|
||||
/***** Get from the database the name of the field *****/
|
||||
Rec_GetFieldByCod (Gbl.Crs.Records.Field.FieldCod,
|
||||
|
@ -577,12 +576,10 @@ void Rec_AskConfirmRemFieldWithRecords (unsigned NumRecords)
|
|||
&Gbl.Crs.Records.Field.Visibility);
|
||||
|
||||
/***** Show question and button to remove my photo *****/
|
||||
Ale_ShowAlertAndButton (ActRemFie,NULL,NULL,
|
||||
Rec_PutParFldCod,&Gbl.Crs.Records.Field.FieldCod,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_field_X_from_the_records_of_Y_Z_,
|
||||
Gbl.Crs.Records.Field.Name,Gbl.Hierarchy.Crs.FullName,
|
||||
NumRecords);
|
||||
Ale_ShowAlertRemove (ActRemFie,NULL,
|
||||
Rec_PutParFldCod,&Gbl.Crs.Records.Field.FieldCod,
|
||||
Txt_Do_you_really_want_to_remove_the_field_X,
|
||||
Gbl.Crs.Records.Field.Name);
|
||||
|
||||
/***** List record fields again *****/
|
||||
Rec_ReqEditRecordFields ();
|
||||
|
|
|
@ -124,7 +124,6 @@ unsigned Rec_ConvertToNumLinesField (const char *StrNumLines);
|
|||
bool Rec_CheckIfRecordFieldIsRepeated (const char *FldName);
|
||||
void Rec_CreateRecordField (void);
|
||||
void Rec_ReqRemField (void);
|
||||
void Rec_AskConfirmRemFieldWithRecords (unsigned NumRecords);
|
||||
void Rec_RemoveFieldFromDB (void);
|
||||
void Rec_RemoveField (void);
|
||||
void Rec_RenameField (void);
|
||||
|
|
|
@ -683,7 +683,6 @@ void Rub_FreeListRubrics (struct Rub_Rubrics *Rubrics)
|
|||
void Rub_AskRemRubric (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_rubric_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Rub_Rubrics Rubrics;
|
||||
|
||||
/***** Reset rubrics context *****/
|
||||
|
@ -699,11 +698,10 @@ void Rub_AskRemRubric (void)
|
|||
Err_NoPermissionExit ();
|
||||
|
||||
/***** Show criterion and button to remove rubric *****/
|
||||
Ale_ShowAlertAndButton (ActRemRub,NULL,NULL,
|
||||
Rub_PutPars,&Rubrics,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_rubric_X,
|
||||
Rubrics.Rubric.Title);
|
||||
Ale_ShowAlertRemove (ActRemRub,NULL,
|
||||
Rub_PutPars,&Rubrics,
|
||||
Txt_Do_you_really_want_to_remove_the_rubric_X,
|
||||
Rubrics.Rubric.Title);
|
||||
|
||||
/***** Show rubrics again *****/
|
||||
Rub_ListAllRubrics (&Rubrics);
|
||||
|
|
|
@ -1061,7 +1061,6 @@ void RubCri_ResetCriterion (struct RubCri_Criterion *Criterion)
|
|||
void RubCri_ReqRemCriterion (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_criterion_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Rub_Rubrics Rubrics;
|
||||
|
||||
/***** Reset rubrics context *****/
|
||||
|
@ -1077,11 +1076,10 @@ void RubCri_ReqRemCriterion (void)
|
|||
Err_NoPermissionExit ();
|
||||
|
||||
/***** Show question and button to remove question *****/
|
||||
Ale_ShowAlertAndButton (ActRemRubCri,NULL,NULL,
|
||||
RubCri_PutParsOneCriterion,&Rubrics,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_criterion_X,
|
||||
Rubrics.Criterion.Title);
|
||||
Ale_ShowAlertRemove (ActRemRubCri,NULL,
|
||||
RubCri_PutParsOneCriterion,&Rubrics,
|
||||
Txt_Do_you_really_want_to_remove_the_criterion_X,
|
||||
Rubrics.Criterion.Title);
|
||||
|
||||
/***** Show current rubric and its criteria *****/
|
||||
Rub_PutFormsOneRubric (&Rubrics,Rub_EXISTING_RUBRIC);
|
||||
|
|
|
@ -1391,7 +1391,6 @@ void Svy_GetNotifSurvey (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
|||
void Svy_AskRemSurvey (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_survey_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Svy_Surveys Surveys;
|
||||
|
||||
/***** Reset surveys *****/
|
||||
|
@ -1411,11 +1410,10 @@ void Svy_AskRemSurvey (void)
|
|||
Err_NoPermissionExit ();
|
||||
|
||||
/***** Show question and button to remove survey *****/
|
||||
Ale_ShowAlertAndButton (ActRemSvy,NULL,NULL,
|
||||
Svy_PutPars,&Surveys,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_survey_X,
|
||||
Surveys.Svy.Title);
|
||||
Ale_ShowAlertRemove (ActRemSvy,NULL,
|
||||
Svy_PutPars,&Surveys,
|
||||
Txt_Do_you_really_want_to_remove_the_survey_X,
|
||||
Surveys.Svy.Title);
|
||||
|
||||
/***** Show surveys again *****/
|
||||
Svy_ListAllSurveys (&Surveys);
|
||||
|
@ -3060,9 +3058,9 @@ static void Svy_PutParsRemoveOneQst (void *Surveys)
|
|||
void Svy_ReqRemQst (void)
|
||||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_question_X;
|
||||
extern const char *Txt_Remove;
|
||||
struct Svy_Surveys Surveys;
|
||||
struct Svy_Question SvyQst;
|
||||
char StrQstInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
|
||||
|
||||
/***** Reset surveys *****/
|
||||
Svy_ResetSurveys (&Surveys);
|
||||
|
@ -3082,11 +3080,11 @@ void Svy_ReqRemQst (void)
|
|||
|
||||
/***** Show question and button to remove question *****/
|
||||
Surveys.QstCod = SvyQst.QstCod;
|
||||
Ale_ShowAlertAndButton (ActRemSvyQst,NULL,NULL,
|
||||
Svy_PutParsRemoveOneQst,&Surveys,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_question_X,
|
||||
(long) SvyQst.QstInd + 1);
|
||||
sprintf (StrQstInd,"%u",SvyQst.QstInd + 1);
|
||||
Ale_ShowAlertRemove (ActRemSvyQst,NULL,
|
||||
Svy_PutParsRemoveOneQst,&Surveys,
|
||||
Txt_Do_you_really_want_to_remove_the_question_X,
|
||||
StrQstInd);
|
||||
|
||||
/***** Show current survey *****/
|
||||
Svy_ShowOneSurvey (&Surveys,true);
|
||||
|
|
238
swad_text.c
238
swad_text.c
|
@ -9561,29 +9561,6 @@ const char *Txt_Do_you_really_want_to_remove_the_criterion_X = // Warning: it is
|
|||
"<strong>%s</strong> kriterini gerçekten kaldırmak istiyor musunuz?";
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_the_entire_thread =
|
||||
#if L==1 // ca
|
||||
"De veres voleu eliminar tota la discusió?";
|
||||
#elif L==2 // de
|
||||
"Wollen Sie die gesamten Thread wirklich entfernen?";
|
||||
#elif L==3 // en
|
||||
"Do you really want to remove the entire thread?";
|
||||
#elif L==4 // es
|
||||
"¿Realmente desea eliminar toda la discusión?";
|
||||
#elif L==5 // fr
|
||||
"Voulez-vous vraiment supprimer tout le fil?";
|
||||
#elif L==6 // gn
|
||||
"¿Realmente desea eliminar toda la discusión?"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Vuoi realmente rimuovere l'intera discussione?";
|
||||
#elif L==8 // pl
|
||||
"Czy na pewno chcesz usunąć caly watek?";
|
||||
#elif L==9 // pt
|
||||
"Você realmente deseja remover toda a discussão?";
|
||||
#elif L==10 // tr
|
||||
"Do you really want to remove the entire thread?"; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_the_entire_thread_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"De veres voleu eliminar tota la discussió <strong>%s</strong>?";
|
||||
|
@ -9653,47 +9630,27 @@ const char *Txt_Do_you_really_want_to_remove_the_exam_X = // Warning: it is very
|
|||
"Do you really want to remove the exam <strong>%s</strong>?"; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_the_field_X_from_the_records_of_Y_Z_ = // Warning: it is very important to include two %s and one %u in the following sentences
|
||||
const char *Txt_Do_you_really_want_to_remove_the_field_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"Realment voleu eliminar el camp <strong>%s</strong>"
|
||||
" dels registres de <strong>%s</strong>"
|
||||
" (aquest camp s'omple amb els registres de %u estudiant(s))";
|
||||
"Realment voleu eliminar el camp <strong>%s</strong>?";
|
||||
#elif L==2 // de
|
||||
"Wollen Sie das Feld <strong>%s</strong>"
|
||||
" wirklich aus den Datensätzen von <strong>%s</strong> entfernen"
|
||||
" (dieses Feld ist in den Datensätzen von %u Studenten ausgef%uuml;llt)";
|
||||
"Wollen Sie das Feld <strong>%s</strong>?";
|
||||
#elif L==3 // en
|
||||
"Do you really want to remove the field <strong>%s</strong>"
|
||||
" from the records of <strong>%s</strong>"
|
||||
" (this field is filled in the records of %u student(s))?";
|
||||
"Do you really want to remove the field <strong>%s</strong>?";
|
||||
#elif L==4 // es
|
||||
"¿Realmente desea eliminar el campo <strong>%s</strong>"
|
||||
" de las fichas de <strong>%s</strong>"
|
||||
" (dicho campo está relleno en las fichas de %u estudiante(s))?";
|
||||
"¿Realmente desea eliminar el campo <strong>%s</strong>?";
|
||||
#elif L==5 // fr
|
||||
"Voulez-vous vraiment supprimer le champ <strong>%s</strong>"
|
||||
" des fiches de <strong>%s</strong>"
|
||||
" (ce champ est rempli dans les fiches de %u étudiant(s))";
|
||||
"Voulez-vous vraiment supprimer le champ <strong>%s</strong>?";
|
||||
#elif L==6 // gn
|
||||
"¿Realmente desea eliminar el campo <strong>%s</strong>"
|
||||
" de las fichas de <strong>%s</strong>"
|
||||
" (dicho campo está relleno en las fichas de %u estudiante(s))?"; // Okoteve traducción
|
||||
"¿Realmente desea eliminar el campo <strong>%s</strong>?"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Vuoi realmente rimuovere il campo <strong>%s</strong>"
|
||||
" dalle schede di <strong>%s</strong>"
|
||||
" (questo campo è inserito nella scheda di %u studenti)?";
|
||||
"Vuoi realmente rimuovere il campo <strong>%s</strong>?";
|
||||
#elif L==8 // pl
|
||||
"Czy na pewno chcesz usunąć pole <strong>%s</strong>"
|
||||
" z rekordów <strong>%s</strong>"
|
||||
" (to pole jest wypełniane w rekordach %u uczniów)";
|
||||
"Czy na pewno chcesz usunąć pole <strong>%s</strong>?";
|
||||
#elif L==9 // pt
|
||||
"Você realmente quer remover o campo <strong>%s</strong>"
|
||||
" dos cartões de <strong>%s</strong>"
|
||||
" (este campo é preenchido nos cartões de %u estudante(s))?";
|
||||
"Você realmente quer remover o campo <strong>%s</strong>?";
|
||||
#elif L==10 // tr
|
||||
"Do you really want to remove the field <strong>%s</strong>"
|
||||
" from the records of <strong>%s</strong>"
|
||||
" (this field is filled in the records of %u student(s))?"; // Çeviri lazim!
|
||||
"Do you really want to remove the field <strong>%s</strong>?"; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_FILE_OR_LINK_X = // Warning: it is very important to include %s in the following sentences
|
||||
|
@ -9968,91 +9925,35 @@ const char *Txt_Do_you_really_want_to_remove_the_game_X = // Warning: it is very
|
|||
|
||||
const char *Txt_Do_you_really_want_to_remove_the_group_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"De veres voleu eliminar el grup <strong>%s</strong>?";
|
||||
"Realment voleu suprimir el grup <strong>%s</strong>?<br />"
|
||||
"Si ho fa, els usuaris inscrits al grup deixaran de pertànyer-hi.";
|
||||
#elif L==2 // de
|
||||
"Möchten Sie die Gruppe <strong>%s</strong> wirklich entfernen?";
|
||||
"Möchten Sie Gruppe <strong>%s</strong> wirklich entfernen?<br />"
|
||||
"Wenn Sie dies tun, gehören die in der Gruppe registrierten Benutzer nicht mehr dazu.";
|
||||
#elif L==3 // en
|
||||
"Do you really want to remove the group <strong>%s</strong>?";
|
||||
#elif L==4 // es
|
||||
"¿Realmente desea eliminar el grupo <strong>%s</strong>?";
|
||||
#elif L==5 // fr
|
||||
"Voulez-vous vraiment supprimer le groupe <strong>%s</strong>?";
|
||||
#elif L==6 // gn
|
||||
"¿Realmente desea eliminar el grupo <strong>%s</strong>?"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Vuoi realmente rimuovere il gruppo <strong>%s</strong>?";
|
||||
#elif L==8 // pl
|
||||
"Czy na pewno chcesz usunąć grupe <strong>%s</strong>?";
|
||||
#elif L==9 // pt
|
||||
"Você realmente quer remover o grupo <strong>%s</strong>?";
|
||||
#elif L==10 // tr
|
||||
"<strong>%s</strong> grubunu gerçekten kaldırmak istiyor musunuz?";
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_the_group_X_1_student_ = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"De veres voleu eliminar el grup <strong>%s</strong>?<br />"
|
||||
"Si ho fa, un/a estudiant deixarà de pertànyer a aquest grup.";
|
||||
#elif L==2 // de
|
||||
"Möchten Sie die Gruppe <strong>%s</strong> wirklich entfernen?<br />"
|
||||
"Dadurch wird ein Schüler aus dieser Gruppe entfernt.";
|
||||
#elif L==3 // en
|
||||
"Do you really want to remove the group <strong>%s</strong>?<br />"
|
||||
"Doing so will remove one student from that group.";
|
||||
"Do you really want to remove group <strong>%s</strong>?<br />"
|
||||
"If you do, users enrolled in the group will no longer belong to it.";
|
||||
#elif L==4 // es
|
||||
"¿Realmente desea eliminar el grupo <strong>%s</strong>?<br />"
|
||||
"Si lo hace, un/a estudiante dejará de pertenecer a ese grupo.";
|
||||
"Si lo hace, los usuarios inscritos en el grupo dejarán de pertenecer a él.";
|
||||
#elif L==5 // fr
|
||||
"Voulez-vous vraiment supprimer le groupe <strong>%s</strong>?<br />"
|
||||
"Cela supprimera un étudiant de ce groupe.";
|
||||
"Si vous le faites, les utilisateurs inscrits au groupe n'en feront plus partie.";
|
||||
#elif L==6 // gn
|
||||
"¿Realmente desea eliminar el grupo <strong>%s</strong>?<br />"
|
||||
"Si lo hace, un/a estudiante dejará de pertenecer a ese grupo."; // Okoteve traducción
|
||||
"¿¿Añetehápe piko reipe'ase pe grupo <strong>%s</strong>?<br />"
|
||||
"Rejapóramo upéicha, umi puruhára oñeinskrivíva pe aty'ípe ndaha'emo'ãvéima ipypegua.";
|
||||
#elif L==7 // it
|
||||
"Vuoi realmente rimuovere il gruppo <strong>%s</strong>?<br />"
|
||||
"Facendo così rimuoverai uno studente da questo gruppo.";
|
||||
"Se lo fai, gli utenti iscritti al gruppo non ne faranno più parte.";
|
||||
#elif L==8 // pl
|
||||
"Do you really want to remove the group <strong>%s</strong>?<br />"
|
||||
"W ten sposób usunie jeden uczen z tej grupy.";
|
||||
"Czy na pewno chcesz usunąć grupę <strong>%s</strong>?<br />"
|
||||
"Jeśli to zrobisz, użytkownicy zarejestrowani w grupie przestaną do niej należeć.";
|
||||
#elif L==9 // pt
|
||||
"Você realmente quer remover o grupo <strong>%s</strong>?<br />"
|
||||
"Ao fazer isso, você removerá um estudante desse grupo.";
|
||||
"Você realmente deseja remover o grupo <strong>%s</strong>?<br />"
|
||||
"Se o fizer, os usuários inscritos no grupo não farão mais parte dele.";
|
||||
#elif L==10 // tr
|
||||
"Do you really want to remove the group <strong>%s</strong>?<br />"
|
||||
"Doing so will remove one student from that group."; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_the_group_X_Y_students_ = // Warning: it is very important to include %s and %u in the following sentences
|
||||
#if L==1 // ca
|
||||
"De veres voleu eliminar el grup <strong>%s</strong>?<br />"
|
||||
"Si ho fa, %u estudiants deixaran de pertànyer a aquest grup.";
|
||||
#elif L==2 // de
|
||||
"Möchten Sie die Gruppe <strong>%s</strong> wirklich entfernen?<br />"
|
||||
"Dadurch werden %u Schüler aus dieser Gruppe entfernt.";
|
||||
#elif L==3 // en
|
||||
"Do you really want to remove the group <strong>%s</strong>?<br />"
|
||||
"Doing so will remove %u students from that group.";
|
||||
#elif L==4 // es
|
||||
"¿Realmente desea eliminar el grupo <strong>%s</strong>?<br />"
|
||||
"Si lo hace, %u estudiantes dejarán de pertenecer a ese grupo.";
|
||||
#elif L==5 // fr
|
||||
"Voulez-vous vraiment supprimer le groupe <strong>%s</strong>?<br />"
|
||||
"Cela supprimera les %u étudiants de ce groupe.";
|
||||
#elif L==6 // gn
|
||||
"¿Realmente desea eliminar el grupo <strong>%s</strong>?<br />"
|
||||
"Si lo hace, %u estudiantes dejarán de pertenecer a ese grupo."; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Vuoi realmente rimuovere il gruppo <strong>%s</strong>?<br />"
|
||||
"Facendo così rimuoverai %u studenti da questo gruppo.";
|
||||
#elif L==8 // pl
|
||||
"Do you really want to remove the group <strong>%s</strong>?<br />"
|
||||
"W ten sposób usunie %u uczniów z tej grupy.";
|
||||
#elif L==9 // pt
|
||||
"Você realmente quer remover o grupo <strong>%s</strong>?<br />"
|
||||
"Ao fazer isso, você removerá %u estudantes desse grupo.";
|
||||
#elif L==10 // tr
|
||||
"Do you really want to remove the group <strong>%s</strong>?<br />"
|
||||
"Doing so will remove %u students from that group."; // Çeviri lazim!
|
||||
"<strong>%s</strong> grubunu gerçekten kaldırmak istiyor musunuz?<br />"
|
||||
"Bunu yaparsanız, gruba kayıtlı kullanıcılar artık gruba ait olmaz.";
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_the_item_X = // Warning: it is very important to include %s in the following sentences
|
||||
|
@ -10147,27 +10048,27 @@ const char *Txt_Do_you_really_want_to_remove_the_project_X = // Warning: it is v
|
|||
"<strong>%s</strong> projesini gerçekten kaldırmak istiyor musunuz?";
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_the_question_X = // Warning: it is very important to include %ld in the following sentences
|
||||
const char *Txt_Do_you_really_want_to_remove_the_question_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"De veres voleu eliminar la pregunta <strong>%ld</strong>?";
|
||||
"De veres voleu eliminar la pregunta <strong>%s</strong>?";
|
||||
#elif L==2 // de
|
||||
"Wollen Sie die Frage <strong>%ld</strong> wirklich entfernen?";
|
||||
"Wollen Sie die Frage <strong>%s</strong> wirklich entfernen?";
|
||||
#elif L==3 // en
|
||||
"Do you really want to remove the question <strong>%ld</strong>?";
|
||||
"Do you really want to remove the question <strong>%s</strong>?";
|
||||
#elif L==4 // es
|
||||
"¿Realmente desea eliminar la pregunta <strong>%ld</strong>?";
|
||||
"¿Realmente desea eliminar la pregunta <strong>%s</strong>?";
|
||||
#elif L==5 // fr
|
||||
"Voulez-vous vraiment supprimer la question <strong>%ld</strong>?";
|
||||
"Voulez-vous vraiment supprimer la question <strong>%s</strong>?";
|
||||
#elif L==6 // gn
|
||||
"¿Realmente desea eliminar la pregunta <strong>%ld</strong>?"; // Okoteve traducción
|
||||
"¿Realmente desea eliminar la pregunta <strong>%s</strong>?"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Vuoi realmente rimuovere la domanda <strong>%ld</strong>?";
|
||||
"Vuoi realmente rimuovere la domanda <strong>%s</strong>?";
|
||||
#elif L==8 // pl
|
||||
"Czy na pewno chcesz usunąć pytanie <strong>%ld</strong>?";
|
||||
"Czy na pewno chcesz usunąć pytanie <strong>%s</strong>?";
|
||||
#elif L==9 // pt
|
||||
"Você realmente deseja remover a pergunta <strong>%ld</strong>?";
|
||||
"Você realmente deseja remover a pergunta <strong>%s</strong>?";
|
||||
#elif L==10 // tr
|
||||
"<strong>%ld</strong> sorusunu gerçekten kaldırmak istiyor musunuz?";
|
||||
"<strong>%s</strong> sorusunu gerçekten kaldırmak istiyor musunuz?";
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_the_resource_X = // Warning: it is very important to include %s in the following sentences
|
||||
|
@ -10308,70 +10209,37 @@ const char *Txt_Do_you_really_want_to_remove_the_survey_X = // Warning: it is ve
|
|||
"<strong>%s</strong> anketini gerçekten kaldırmak istiyor musunuz?";
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_the_type_of_group_X_1_group_ = // Warning: it is very important to include %s in the following sentences
|
||||
const char *Txt_Do_you_really_want_to_remove_the_type_of_group_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"Realment voleu eliminar el tipus de grup <strong>%s</strong>?<br />"
|
||||
"Si ho feu, també s'eliminarà un grup d'aquest tipus.";
|
||||
"En fer-ho, també s'eliminaran els grups d'aquest tipus.";
|
||||
#elif L==2 // de
|
||||
"Möchten Sie den Typ der Gruppe <strong>%s</strong> wirklich entfernen?<br />"
|
||||
"Dadurch wird auch eine Gruppe dieses Typs entfernt.";
|
||||
"Dadurch werden auch die Gruppen dieses Typs entfernt.";
|
||||
#elif L==3 // en
|
||||
"Do you really want to remove the type of group <strong>%s</strong>?<br />"
|
||||
"Doing so will also remove one group of that type.";
|
||||
"Doing so will also remove the groups of that type.";
|
||||
#elif L==4 // es
|
||||
"¿Realmente desea eliminar el tipo de grupo <strong>%s</strong>?<br />"
|
||||
"Si lo hace, eliminará también un grupo de ese tipo.";
|
||||
"Si lo hace, eliminará también los grupos de ese tipo.";
|
||||
#elif L==5 // fr
|
||||
"Voulez-vous vraiment supprimer le type de groupe <strong>%s</strong>?<br />"
|
||||
"Cela supprimera également un groupe de ce type.";
|
||||
"Cela supprimera également les groupes de ce type.";
|
||||
#elif L==6 // gn
|
||||
"¿Realmente desea eliminar el tipo de grupo <strong>%s</strong>?<br />"
|
||||
"Si lo hace, eliminará también un grupo de ese tipo."; // Okoteve traducción
|
||||
"¿Añetehápe piko reipe'ase pe tipo de grupo <strong>%s</strong>?<br />"
|
||||
"Péicha jajapóramo ojeipe'áta avei umi aty upeichagua.";
|
||||
#elif L==7 // it
|
||||
"Vuoi realmente rimuovere il tipo di gruppo <strong>%s</strong>?<br />"
|
||||
"Facendo così rimuoverai anche un gruppo di questo tipo.";
|
||||
"Facendo così rimuoverai anche i gruppi di questo tipo.";
|
||||
#elif L==8 // pl
|
||||
"Do you really want to remove the type of group <strong>%s</strong>?<br />"
|
||||
"Spowoduje to takze usuniecie jednej grupie tego typu.";
|
||||
"Czy na pewno chcesz usunąć typ grupy <strong>%s</strong>?<br />"
|
||||
"Spowoduje to również usunięcie grup tego typu.";
|
||||
#elif L==9 // pt
|
||||
"Você realmente quer remover o tipo de grupo <strong>%s</strong>?<br />"
|
||||
"Isso também removerá um grupo desse tipo.";
|
||||
"Isso também removerá os grupos desse tipo.";
|
||||
#elif L==10 // tr
|
||||
"Do you really want to remove the type of group <strong>%s</strong>?<br />"
|
||||
"Doing so will also remove one group of that type."; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_the_type_of_group_X_Y_groups_ = // Warning: it is very important to include %s and %u in the following sentences
|
||||
#if L==1 // ca
|
||||
"Realment voleu eliminar el tipus de grup <strong>%s</strong>?<br />"
|
||||
"En fer-ho, també s'eliminaran %u grups d'aquest tipus.";
|
||||
#elif L==2 // de
|
||||
"Möchten Sie den Typ der Gruppe <strong>%s</strong> wirklich entfernen?<br />"
|
||||
"Dadurch werden auch %u Gruppen dieses Typs entfernt.";
|
||||
#elif L==3 // en
|
||||
"Do you really want to remove the type of group <strong>%s</strong>?<br />"
|
||||
"Doing so will also remove %u groups of that type.";
|
||||
#elif L==4 // es
|
||||
"¿Realmente desea eliminar el tipo de grupo <strong>%s</strong>?<br />"
|
||||
"Si lo hace, eliminará también %u grupos de ese tipo.";
|
||||
#elif L==5 // fr
|
||||
"Voulez-vous vraiment supprimer le type de groupe <strong>%s</strong>?<br />"
|
||||
"Cela supprimera également %u groupes de ce type.";
|
||||
#elif L==6 // gn
|
||||
"¿Realmente desea eliminar el tipo de grupo <strong>%s</strong>?<br />"
|
||||
"Si lo hace, eliminará también %u grupos de ese tipo."; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Vuoi realmente rimuovere il tipo di gruppo <strong>%s</strong>?<br />"
|
||||
"Facendo così rimuoverai anche %u gruppi di questo tipo.";
|
||||
#elif L==8 // pl
|
||||
"Do you really want to remove the type of group <strong>%s</strong>?<br />"
|
||||
"Spowoduje to równiez usuniecie grup %u tego typu.";
|
||||
#elif L==9 // pt
|
||||
"Você realmente quer remover o tipo de grupo <strong>%s</strong>?<br />"
|
||||
"Isso também removerá %u grupos desse tipo.";
|
||||
#elif L==10 // tr
|
||||
"Do you really want to remove the type of group <strong>%s</strong>?<br />"
|
||||
"Doing so will also remove %u groups of that type."; // Çeviri lazim!
|
||||
"<strong>%s</strong> grubunun türünü gerçekten kaldırmak istiyor musunuz?<br />"
|
||||
"Bunu yapmak, o türdeki grupları da kaldıracaktır.";
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_your_photo =
|
||||
|
|
Loading…
Reference in New Issue