Version 23.79.4: Apr 25, 2024 Code refactoring in HTML related to checked field in forms.

This commit is contained in:
acanas 2024-04-25 19:10:43 +02:00
parent 2b4c87e572
commit b261b60b2a
19 changed files with 192 additions and 226 deletions

View File

@ -39,7 +39,7 @@ OBJS = swad_account.o swad_account_database.o swad_action.o swad_action_list.o \
swad_call_for_exam_database.o swad_center.o swad_center_config.o \ swad_call_for_exam_database.o swad_center.o swad_center_config.o \
swad_center_database.o swad_chat.o swad_chat_database.o \ swad_center_database.o swad_chat.o swad_chat_database.o \
swad_closed_open.o swad_config.o swad_connected.o \ swad_closed_open.o swad_config.o swad_connected.o \
swad_connected_database.o swad_constant.o swad_cookie.o \ swad_connected_database.o swad_cookie.o \
swad_cookie_database.o swad_country.o swad_country_config.o \ swad_cookie_database.o swad_country.o swad_country_config.o \
swad_country_database.o swad_course.o swad_course_config.o \ swad_country_database.o swad_course.o swad_course_config.o \
swad_course_database.o swad_cryptography.o \ swad_course_database.o swad_cryptography.o \

View File

@ -35,6 +35,22 @@
#include "swad_global.h" #include "swad_global.h"
#include "swad_HTML.h" #include "swad_HTML.h"
/*****************************************************************************/
/***************************** Public constants ******************************/
/*****************************************************************************/
const char *HTM_DisabledTxt[Cns_NUM_DISABLED_ENABLED] =
{
[Cns_DISABLED] = " disabled=\"disabled\"",
[Cns_ENABLED ] = "",
};
const char *HTM_CheckedTxt[Cns_NUM_UNCHECKED_CHECKED] =
{
[Cns_UNCHECKED] = "",
[Cns_CHECKED ] = " checked=\"checked\"",
};
/*****************************************************************************/ /*****************************************************************************/
/**************************** Private constants ******************************/ /**************************** Private constants ******************************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -29,6 +29,8 @@
#include <stdbool.h> // For boolean type #include <stdbool.h> // For boolean type
#include "swad_constant.h"
/*****************************************************************************/ /*****************************************************************************/
/********************************* Public types ******************************/ /********************************* Public types ******************************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -1710,7 +1710,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
NumUsr,UsrDat->EnUsrCod, NumUsr,UsrDat->EnUsrCod,
Present ? " checked=\"checked\"" : "", Present ? " checked=\"checked\"" : "",
(ICanChangeStdAttendance == Usr_CAN) ? "" : (ICanChangeStdAttendance == Usr_CAN) ? "" :
" disabled=\"disabled\""); " disabled=\"disabled\"");
HTM_TD_End (); HTM_TD_End ();
/***** Write number of student in the list *****/ /***** Write number of student in the list *****/

View File

@ -633,10 +633,12 @@ Me sale este error, no s
"can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod') "can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod')
*/ */
#define Log_PLATFORM_VERSION "SWAD 23.79.2 (2024-04-24)" #define Log_PLATFORM_VERSION "SWAD 23.79.4 (2024-04-25)"
#define CSS_FILE "swad23.67.2.css" #define CSS_FILE "swad23.67.2.css"
#define JS_FILE "swad23.79.js" #define JS_FILE "swad23.79.js"
/* /*
Version 23.79.4: Apr 25, 2024 Code refactoring in HTML related to checked field in forms. (335739 lines)
Version 23.79.3: Apr 24, 2024 Code refactoring in HTML related to disabled field in forms. (335766 lines)
Version 23.79.2: Apr 24, 2024 Code refactoring in HTML related to disabled field in forms. (335766 lines) Version 23.79.2: Apr 24, 2024 Code refactoring in HTML related to disabled field in forms. (335766 lines)
Version 23.79.1: Apr 24, 2024 Code refactoring in HTML related to required field in forms. (335751 lines) Version 23.79.1: Apr 24, 2024 Code refactoring in HTML related to required field in forms. (335751 lines)
Version 23.79: Apr 24, 2024 Code refactoring writing dates. (335741 lines) Version 23.79: Apr 24, 2024 Code refactoring writing dates. (335741 lines)

View File

@ -1,62 +0,0 @@
// swad_constant.c: common constants used in several modules
/*
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-2024 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_constant.h"
/*****************************************************************************/
/***************************** Public constants ******************************/
/*****************************************************************************/
const char *Cns_DisabledTxt[Cns_NUM_DISABLED_ENABLED] =
{
[Cns_DISABLED] = " disabled=\"disabled\"",
[Cns_ENABLED ] = "",
};
/*****************************************************************************/
/**************************** Private constants ******************************/
/*****************************************************************************/
/*****************************************************************************/
/******************************* Private types *******************************/
/*****************************************************************************/
/*****************************************************************************/
/************** External global variables from others modules ****************/
/*****************************************************************************/
/*****************************************************************************/
/************************** Public global variables **************************/
/*****************************************************************************/
/*****************************************************************************/
/************************* Private global variables **************************/
/*****************************************************************************/
/*****************************************************************************/
/***************************** Private prototypes ****************************/
/*****************************************************************************/

View File

@ -102,6 +102,13 @@ typedef enum
Cns_VERBOSE, Cns_VERBOSE,
} Cns_QuietOrVerbose_t; } Cns_QuietOrVerbose_t;
#define Cns_NUM_UNCHECKED_CHECKED 2
typedef enum
{
Cns_UNCHECKED,
Cns_CHECKED,
} Cns_UncheckedOrChecked_t;
#define Cns_NUM_DISABLED_ENABLED 2 #define Cns_NUM_DISABLED_ENABLED 2
typedef enum typedef enum
{ {

View File

@ -94,8 +94,8 @@ void Coo_EditMyPrefsOnCookies (void)
HTM_LABEL_Begin (NULL); HTM_LABEL_Begin (NULL);
HTM_INPUT_CHECKBOX ("cookies",HTM_SUBMIT_ON_CHANGE, HTM_INPUT_CHECKBOX ("cookies",HTM_SUBMIT_ON_CHANGE,
"value=\"Y\"%s", "value=\"Y\"%s",
Gbl.Usrs.Me.UsrDat.Prefs.RefuseAcceptCookies == Coo_ACCEPT ? " checked=\"checked\"" : (Gbl.Usrs.Me.UsrDat.Prefs.RefuseAcceptCookies == Coo_ACCEPT) ? " checked=\"checked\"" :
""); "");
HTM_Txt (Txt_Accept_third_party_cookies_to_view_multimedia_content_from_other_websites); HTM_Txt (Txt_Accept_third_party_cookies_to_view_multimedia_content_from_other_websites);
HTM_LABEL_End (); HTM_LABEL_End ();

View File

@ -314,8 +314,8 @@ void Dat_PutBoxToSelectDateFormat (void)
HTM_INPUT_RADIO ("DateFormat",HTM_SUBMIT_ON_CLICK, HTM_INPUT_RADIO ("DateFormat",HTM_SUBMIT_ON_CLICK,
" value=\"%u\"%s", " value=\"%u\"%s",
(unsigned) Format, (unsigned) Format,
Format == Gbl.Prefs.DateFormat ? " checked=\"checked\"" : (Format == Gbl.Prefs.DateFormat) ? " checked=\"checked\"" :
""); "");
Dat_PutSpanDateFormat (Format); Dat_PutSpanDateFormat (Format);
Dat_PutScriptDateFormat (Format); Dat_PutScriptDateFormat (Format);
HTM_LABEL_End (); HTM_LABEL_End ();
@ -989,7 +989,7 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
HTM_SubmitOnChange_t SubmitOnChange, HTM_SubmitOnChange_t SubmitOnChange,
Cns_DisabledOrEnabled_t DisabledOrEnabled) Cns_DisabledOrEnabled_t DisabledOrEnabled)
{ {
extern const char *Cns_DisabledTxt[Cns_NUM_DISABLED_ENABLED]; extern const char *HTM_DisabledTxt[Cns_NUM_DISABLED_ENABLED];
extern const char *Txt_MONTHS_SMALL[12]; extern const char *Txt_MONTHS_SMALL[12];
char *FuncOnChange; char *FuncOnChange;
unsigned Year; unsigned Year;
@ -1001,75 +1001,69 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
/***** Year *****/ /***** Year *****/
// HTM_TD_Begin ("class=\"CM\""); HTM_SELECT_Begin (SubmitOnChange,FuncOnChange,
HTM_SELECT_Begin (SubmitOnChange,FuncOnChange, "id=\"%sYear\" name=\"%sYear\""
"id=\"%sYear\" name=\"%sYear\"" " class=\"INPUT_%s\"%s",
" class=\"INPUT_%s\"%s", Id,Id,The_GetSuffix (),
Id,Id,The_GetSuffix (), HTM_DisabledTxt[DisabledOrEnabled]);
Cns_DisabledTxt[DisabledOrEnabled]); HTM_OPTION (HTM_Type_STRING,"0",
HTM_OPTION (HTM_Type_STRING,"0", HTM_OPTION_UNSELECTED,
HTM_OPTION_UNSELECTED, HTM_OPTION_ENABLED,
"-");
for (Year = FirstYear;
Year <= LastYear;
Year++)
HTM_OPTION (HTM_Type_UNSIGNED,&Year,
(Year == DateSelected->Year) ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED, HTM_OPTION_ENABLED,
"-"); "%u",Year);
for (Year = FirstYear; HTM_SELECT_End ();
Year <= LastYear;
Year++)
HTM_OPTION (HTM_Type_UNSIGNED,&Year,
Year == DateSelected->Year ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%u",Year);
HTM_SELECT_End ();
// HTM_TD_End ();
/***** Month *****/ /***** Month *****/
// HTM_TD_Begin ("class=\"CM\""); HTM_SELECT_Begin (SubmitOnChange,FuncOnChange,
HTM_SELECT_Begin (SubmitOnChange,FuncOnChange, "id=\"%sMonth\" name=\"%sMonth\""
"id=\"%sMonth\" name=\"%sMonth\"" " class=\"INPUT_%s\"%s",
" class=\"INPUT_%s\"%s", Id,Id,The_GetSuffix (),
Id,Id,The_GetSuffix (), HTM_DisabledTxt[DisabledOrEnabled]);
Cns_DisabledTxt[DisabledOrEnabled]); HTM_OPTION (HTM_Type_STRING,"0",
HTM_OPTION (HTM_Type_STRING,"0", HTM_OPTION_UNSELECTED,
HTM_OPTION_UNSELECTED, HTM_OPTION_ENABLED,
"-");
for (Month = 1;
Month <= 12;
Month++)
HTM_OPTION (HTM_Type_UNSIGNED,&Month,
(Month == DateSelected->Month) ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED, HTM_OPTION_ENABLED,
"-"); "%s",Txt_MONTHS_SMALL[Month - 1]);
for (Month = 1; HTM_SELECT_End ();
Month <= 12;
Month++)
HTM_OPTION (HTM_Type_UNSIGNED,&Month,
Month == DateSelected->Month ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Txt_MONTHS_SMALL[Month - 1]);
HTM_SELECT_End ();
// HTM_TD_End ();
free (FuncOnChange); free (FuncOnChange);
/***** Day *****/ /***** Day *****/
// HTM_TD_Begin ("class=\"CM\""); HTM_SELECT_Begin (SubmitOnChange,NULL,
HTM_SELECT_Begin (SubmitOnChange,NULL, "id=\"%sDay\" name=\"%sDay\""
"id=\"%sDay\" name=\"%sDay\"" " class=\"INPUT_%s\"%s",
" class=\"INPUT_%s\"%s", Id,Id,The_GetSuffix (),
Id,Id,The_GetSuffix (), HTM_DisabledTxt[DisabledOrEnabled]);
Cns_DisabledTxt[DisabledOrEnabled]); HTM_OPTION (HTM_Type_STRING,"0",
HTM_OPTION (HTM_Type_STRING,"0", HTM_OPTION_UNSELECTED,
HTM_OPTION_UNSELECTED, HTM_OPTION_ENABLED,
"-");
NumDaysSelectedMonth = (DateSelected->Month == 0) ? 31 :
((DateSelected->Month == 2) ? Dat_GetNumDaysFebruary (DateSelected->Year) :
Dat_NumDaysMonth[DateSelected->Month]);
for (Day = 1;
Day <= NumDaysSelectedMonth;
Day++)
HTM_OPTION (HTM_Type_UNSIGNED,&Day,
(Day == DateSelected->Day) ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED, HTM_OPTION_ENABLED,
"-"); "%u",Day);
NumDaysSelectedMonth = (DateSelected->Month == 0) ? 31 : HTM_SELECT_End ();
((DateSelected->Month == 2) ? Dat_GetNumDaysFebruary (DateSelected->Year) :
Dat_NumDaysMonth[DateSelected->Month]);
for (Day = 1;
Day <= NumDaysSelectedMonth;
Day++)
HTM_OPTION (HTM_Type_UNSIGNED,&Day,
Day == DateSelected->Day ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%u",Day);
HTM_SELECT_End ();
// HTM_TD_End ();
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -113,19 +113,19 @@ static void Enr_PutActionsRegRemSeveralUsrs (void);
static void Enr_ReceiveUsrsCrs (Rol_Role_t Role); static void Enr_ReceiveUsrsCrs (Rol_Role_t Role);
static void Enr_PutActionModifyOneUsr (bool *OptionChecked, static void Enr_PutActionModifyOneUsr (Cns_UncheckedOrChecked_t *UncheckedOrChecked,
Usr_Belong_t UsrBelongsToCrs,Usr_MeOrOther_t MeOrOther); Usr_Belong_t UsrBelongsToCrs,Usr_MeOrOther_t MeOrOther);
static void Enr_PutActionRegOneDegAdm (bool *OptionChecked); static void Enr_PutActionRegOneDegAdm (Cns_UncheckedOrChecked_t *UncheckedOrChecked);
static void Enr_PutActionRegOneCtrAdm (bool *OptionChecked); static void Enr_PutActionRegOneCtrAdm (Cns_UncheckedOrChecked_t *UncheckedOrChecked);
static void Enr_PutActionRegOneInsAdm (bool *OptionChecked); static void Enr_PutActionRegOneInsAdm (Cns_UncheckedOrChecked_t *UncheckedOrChecked);
static void Enr_PutActionRepUsrAsDup (bool *OptionChecked); static void Enr_PutActionRepUsrAsDup (Cns_UncheckedOrChecked_t *UncheckedOrChecked);
static void Enr_PutActionRemUsrFromCrs (bool *OptionChecked,Usr_MeOrOther_t MeOrOther); static void Enr_PutActionRemUsrFromCrs (Cns_UncheckedOrChecked_t *UncheckedOrChecked,Usr_MeOrOther_t MeOrOther);
static void Enr_PutActionRemUsrAsDegAdm (bool *OptionChecked,Usr_MeOrOther_t MeOrOther); static void Enr_PutActionRemUsrAsDegAdm (Cns_UncheckedOrChecked_t *UncheckedOrChecked,Usr_MeOrOther_t MeOrOther);
static void Enr_PutActionRemUsrAsCtrAdm (bool *OptionChecked,Usr_MeOrOther_t MeOrOther); static void Enr_PutActionRemUsrAsCtrAdm (Cns_UncheckedOrChecked_t *UncheckedOrChecked,Usr_MeOrOther_t MeOrOther);
static void Enr_PutActionRemUsrAsInsAdm (bool *OptionChecked,Usr_MeOrOther_t MeOrOther); static void Enr_PutActionRemUsrAsInsAdm (Cns_UncheckedOrChecked_t *UncheckedOrChecked,Usr_MeOrOther_t MeOrOther);
static void Enr_PutActionRemUsrAcc (bool *OptionChecked,Usr_MeOrOther_t MeOrOther); static void Enr_PutActionRemUsrAcc (Cns_UncheckedOrChecked_t *UncheckedOrChecked,Usr_MeOrOther_t MeOrOther);
static void Enr_RegRemOneUsrActionBegin (Enr_RegRemOneUsrAction_t RegRemOneUsrAction, static void Enr_RegRemOneUsrActionBegin (Enr_RegRemOneUsrAction_t RegRemOneUsrAction,
bool *OptionChecked); Cns_UncheckedOrChecked_t *UncheckedOrChecked);
static void Enr_RegRemOneUsrActionEnd (void); static void Enr_RegRemOneUsrActionEnd (void);
static void Enr_RegisterUsr (struct Usr_Data *UsrDat,Rol_Role_t RegRemRole, static void Enr_RegisterUsr (struct Usr_Data *UsrDat,Rol_Role_t RegRemRole,
@ -1319,7 +1319,7 @@ bool Enr_PutActionsRegRemOneUsr (Usr_MeOrOther_t MeOrOther)
bool UsrIsDegAdmin = false; bool UsrIsDegAdmin = false;
bool UsrIsCtrAdmin = false; bool UsrIsCtrAdmin = false;
bool UsrIsInsAdmin = false; bool UsrIsInsAdmin = false;
bool OptionChecked = false; Cns_UncheckedOrChecked_t UncheckedOrChecked = Cns_UNCHECKED;
/***** Check if the other user belongs to the current course *****/ /***** Check if the other user belongs to the current course *****/
if (Gbl.Hierarchy.Level == Hie_CRS) if (Gbl.Hierarchy.Level == Hie_CRS)
@ -1350,7 +1350,7 @@ bool Enr_PutActionsRegRemOneUsr (Usr_MeOrOther_t MeOrOther)
/***** Register user in course / Modify user's data *****/ /***** Register user in course / Modify user's data *****/
if (Gbl.Hierarchy.Level == Hie_CRS && Gbl.Usrs.Me.Role.Logged >= Rol_STD) if (Gbl.Hierarchy.Level == Hie_CRS && Gbl.Usrs.Me.Role.Logged >= Rol_STD)
{ {
Enr_PutActionModifyOneUsr (&OptionChecked,UsrBelongsToCrs,MeOrOther); Enr_PutActionModifyOneUsr (&UncheckedOrChecked,UsrBelongsToCrs,MeOrOther);
OptionsShown = true; OptionsShown = true;
} }
@ -1362,14 +1362,14 @@ bool Enr_PutActionsRegRemOneUsr (Usr_MeOrOther_t MeOrOther)
/***** Register user as administrator of degree *****/ /***** Register user as administrator of degree *****/
if (!UsrIsDegAdmin && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) if (!UsrIsDegAdmin && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM)
{ {
Enr_PutActionRegOneDegAdm (&OptionChecked); Enr_PutActionRegOneDegAdm (&UncheckedOrChecked);
OptionsShown = true; OptionsShown = true;
} }
/***** Register user as administrator of center *****/ /***** Register user as administrator of center *****/
if (!UsrIsCtrAdmin && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) if (!UsrIsCtrAdmin && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM)
{ {
Enr_PutActionRegOneCtrAdm (&OptionChecked); Enr_PutActionRegOneCtrAdm (&UncheckedOrChecked);
OptionsShown = true; OptionsShown = true;
} }
} }
@ -1377,7 +1377,7 @@ bool Enr_PutActionsRegRemOneUsr (Usr_MeOrOther_t MeOrOther)
/***** Register user as administrator of institution *****/ /***** Register user as administrator of institution *****/
if (!UsrIsInsAdmin && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) if (!UsrIsInsAdmin && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)
{ {
Enr_PutActionRegOneInsAdm (&OptionChecked); Enr_PutActionRegOneInsAdm (&UncheckedOrChecked);
OptionsShown = true; OptionsShown = true;
} }
} }
@ -1385,14 +1385,14 @@ bool Enr_PutActionsRegRemOneUsr (Usr_MeOrOther_t MeOrOther)
/***** Report user as possible duplicate *****/ /***** Report user as possible duplicate *****/
if (MeOrOther == Usr_OTHER && Gbl.Usrs.Me.Role.Logged >= Rol_TCH) if (MeOrOther == Usr_OTHER && Gbl.Usrs.Me.Role.Logged >= Rol_TCH)
{ {
Enr_PutActionRepUsrAsDup (&OptionChecked); Enr_PutActionRepUsrAsDup (&UncheckedOrChecked);
OptionsShown = true; OptionsShown = true;
} }
/***** Remove user from the course *****/ /***** Remove user from the course *****/
if (UsrBelongsToCrs == Usr_BELONG) if (UsrBelongsToCrs == Usr_BELONG)
{ {
Enr_PutActionRemUsrFromCrs (&OptionChecked,MeOrOther); Enr_PutActionRemUsrFromCrs (&UncheckedOrChecked,MeOrOther);
OptionsShown = true; OptionsShown = true;
} }
@ -1405,7 +1405,7 @@ bool Enr_PutActionsRegRemOneUsr (Usr_MeOrOther_t MeOrOther)
if (UsrIsDegAdmin && if (UsrIsDegAdmin &&
(MeOrOther == Usr_ME || Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM)) (MeOrOther == Usr_ME || Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM))
{ {
Enr_PutActionRemUsrAsDegAdm (&OptionChecked,MeOrOther); Enr_PutActionRemUsrAsDegAdm (&UncheckedOrChecked,MeOrOther);
OptionsShown = true; OptionsShown = true;
} }
@ -1413,7 +1413,7 @@ bool Enr_PutActionsRegRemOneUsr (Usr_MeOrOther_t MeOrOther)
if (UsrIsCtrAdmin && if (UsrIsCtrAdmin &&
(MeOrOther == Usr_ME || Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM)) (MeOrOther == Usr_ME || Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM))
{ {
Enr_PutActionRemUsrAsCtrAdm (&OptionChecked,MeOrOther); Enr_PutActionRemUsrAsCtrAdm (&UncheckedOrChecked,MeOrOther);
OptionsShown = true; OptionsShown = true;
} }
} }
@ -1422,7 +1422,7 @@ bool Enr_PutActionsRegRemOneUsr (Usr_MeOrOther_t MeOrOther)
if (UsrIsInsAdmin && if (UsrIsInsAdmin &&
(MeOrOther == Usr_ME || Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) (MeOrOther == Usr_ME || Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM))
{ {
Enr_PutActionRemUsrAsInsAdm (&OptionChecked,MeOrOther); Enr_PutActionRemUsrAsInsAdm (&UncheckedOrChecked,MeOrOther);
OptionsShown = true; OptionsShown = true;
} }
} }
@ -1430,7 +1430,7 @@ bool Enr_PutActionsRegRemOneUsr (Usr_MeOrOther_t MeOrOther)
/***** Eliminate user completely from platform *****/ /***** Eliminate user completely from platform *****/
if (Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Other.UsrDat.UsrCod) == Usr_CAN) if (Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Other.UsrDat.UsrCod) == Usr_CAN)
{ {
Enr_PutActionRemUsrAcc (&OptionChecked,MeOrOther); Enr_PutActionRemUsrAcc (&UncheckedOrChecked,MeOrOther);
OptionsShown = true; OptionsShown = true;
} }
@ -1444,7 +1444,7 @@ bool Enr_PutActionsRegRemOneUsr (Usr_MeOrOther_t MeOrOther)
/**************** Put action to modify user in current course ****************/ /**************** Put action to modify user in current course ****************/
/*****************************************************************************/ /*****************************************************************************/
static void Enr_PutActionModifyOneUsr (bool *OptionChecked, static void Enr_PutActionModifyOneUsr (Cns_UncheckedOrChecked_t *UncheckedOrChecked,
Usr_Belong_t UsrBelongsToCrs,Usr_MeOrOther_t MeOrOther) Usr_Belong_t UsrBelongsToCrs,Usr_MeOrOther_t MeOrOther)
{ {
extern const char *Txt_Register_me_in_X; extern const char *Txt_Register_me_in_X;
@ -1459,7 +1459,7 @@ static void Enr_PutActionModifyOneUsr (bool *OptionChecked,
[Usr_BELONG ][Usr_OTHER] = Txt_Modify_user_in_the_course_X, [Usr_BELONG ][Usr_OTHER] = Txt_Modify_user_in_the_course_X,
}; };
Enr_RegRemOneUsrActionBegin (Enr_REGISTER_MODIFY_ONE_USR_IN_CRS,OptionChecked); Enr_RegRemOneUsrActionBegin (Enr_REGISTER_MODIFY_ONE_USR_IN_CRS,UncheckedOrChecked);
HTM_TxtF (Txt[UsrBelongsToCrs][MeOrOther], HTM_TxtF (Txt[UsrBelongsToCrs][MeOrOther],
Gbl.Hierarchy.Node[Hie_CRS].ShrtName); Gbl.Hierarchy.Node[Hie_CRS].ShrtName);
Enr_RegRemOneUsrActionEnd (); Enr_RegRemOneUsrActionEnd ();
@ -1469,11 +1469,11 @@ static void Enr_PutActionModifyOneUsr (bool *OptionChecked,
/**************** Put action to register user as degree admin ****************/ /**************** Put action to register user as degree admin ****************/
/*****************************************************************************/ /*****************************************************************************/
static void Enr_PutActionRegOneDegAdm (bool *OptionChecked) static void Enr_PutActionRegOneDegAdm (Cns_UncheckedOrChecked_t *UncheckedOrChecked)
{ {
extern const char *Txt_Register_USER_as_an_administrator_of_the_degree_X; extern const char *Txt_Register_USER_as_an_administrator_of_the_degree_X;
Enr_RegRemOneUsrActionBegin (Enr_REGISTER_ONE_DEG_ADMIN,OptionChecked); Enr_RegRemOneUsrActionBegin (Enr_REGISTER_ONE_DEG_ADMIN,UncheckedOrChecked);
HTM_TxtF (Txt_Register_USER_as_an_administrator_of_the_degree_X, HTM_TxtF (Txt_Register_USER_as_an_administrator_of_the_degree_X,
Gbl.Hierarchy.Node[Hie_DEG].ShrtName); Gbl.Hierarchy.Node[Hie_DEG].ShrtName);
Enr_RegRemOneUsrActionEnd (); Enr_RegRemOneUsrActionEnd ();
@ -1483,11 +1483,11 @@ static void Enr_PutActionRegOneDegAdm (bool *OptionChecked)
/**************** Put action to register user as center admin ****************/ /**************** Put action to register user as center admin ****************/
/*****************************************************************************/ /*****************************************************************************/
static void Enr_PutActionRegOneCtrAdm (bool *OptionChecked) static void Enr_PutActionRegOneCtrAdm (Cns_UncheckedOrChecked_t *UncheckedOrChecked)
{ {
extern const char *Txt_Register_USER_as_an_administrator_of_the_center_X; extern const char *Txt_Register_USER_as_an_administrator_of_the_center_X;
Enr_RegRemOneUsrActionBegin (Enr_REGISTER_ONE_CTR_ADMIN,OptionChecked); Enr_RegRemOneUsrActionBegin (Enr_REGISTER_ONE_CTR_ADMIN,UncheckedOrChecked);
HTM_TxtF (Txt_Register_USER_as_an_administrator_of_the_center_X, HTM_TxtF (Txt_Register_USER_as_an_administrator_of_the_center_X,
Gbl.Hierarchy.Node[Hie_CTR].ShrtName); Gbl.Hierarchy.Node[Hie_CTR].ShrtName);
Enr_RegRemOneUsrActionEnd (); Enr_RegRemOneUsrActionEnd ();
@ -1497,11 +1497,11 @@ static void Enr_PutActionRegOneCtrAdm (bool *OptionChecked)
/************* Put action to register user as institution admin **************/ /************* Put action to register user as institution admin **************/
/*****************************************************************************/ /*****************************************************************************/
static void Enr_PutActionRegOneInsAdm (bool *OptionChecked) static void Enr_PutActionRegOneInsAdm (Cns_UncheckedOrChecked_t *UncheckedOrChecked)
{ {
extern const char *Txt_Register_USER_as_an_administrator_of_the_institution_X; extern const char *Txt_Register_USER_as_an_administrator_of_the_institution_X;
Enr_RegRemOneUsrActionBegin (Enr_REGISTER_ONE_INS_ADMIN,OptionChecked); Enr_RegRemOneUsrActionBegin (Enr_REGISTER_ONE_INS_ADMIN,UncheckedOrChecked);
HTM_TxtF (Txt_Register_USER_as_an_administrator_of_the_institution_X, HTM_TxtF (Txt_Register_USER_as_an_administrator_of_the_institution_X,
Gbl.Hierarchy.Node[Hie_INS].ShrtName); Gbl.Hierarchy.Node[Hie_INS].ShrtName);
Enr_RegRemOneUsrActionEnd (); Enr_RegRemOneUsrActionEnd ();
@ -1511,11 +1511,11 @@ static void Enr_PutActionRegOneInsAdm (bool *OptionChecked)
/****************** Put action to report user as duplicate *******************/ /****************** Put action to report user as duplicate *******************/
/*****************************************************************************/ /*****************************************************************************/
static void Enr_PutActionRepUsrAsDup (bool *OptionChecked) static void Enr_PutActionRepUsrAsDup (Cns_UncheckedOrChecked_t *UncheckedOrChecked)
{ {
extern const char *Txt_Report_possible_duplicate_user; extern const char *Txt_Report_possible_duplicate_user;
Enr_RegRemOneUsrActionBegin (Enr_REPORT_USR_AS_POSSIBLE_DUPLICATE,OptionChecked); Enr_RegRemOneUsrActionBegin (Enr_REPORT_USR_AS_POSSIBLE_DUPLICATE,UncheckedOrChecked);
HTM_Txt (Txt_Report_possible_duplicate_user); HTM_Txt (Txt_Report_possible_duplicate_user);
Enr_RegRemOneUsrActionEnd (); Enr_RegRemOneUsrActionEnd ();
} }
@ -1524,7 +1524,7 @@ static void Enr_PutActionRepUsrAsDup (bool *OptionChecked)
/****************** Put action to remove user from course ********************/ /****************** Put action to remove user from course ********************/
/*****************************************************************************/ /*****************************************************************************/
static void Enr_PutActionRemUsrFromCrs (bool *OptionChecked,Usr_MeOrOther_t MeOrOther) static void Enr_PutActionRemUsrFromCrs (Cns_UncheckedOrChecked_t *UncheckedOrChecked,Usr_MeOrOther_t MeOrOther)
{ {
extern const char *Txt_Remove_me_from_THE_COURSE_X; extern const char *Txt_Remove_me_from_THE_COURSE_X;
extern const char *Txt_Remove_USER_from_THE_COURSE_X; extern const char *Txt_Remove_USER_from_THE_COURSE_X;
@ -1534,7 +1534,7 @@ static void Enr_PutActionRemUsrFromCrs (bool *OptionChecked,Usr_MeOrOther_t MeOr
[Usr_OTHER] = Txt_Remove_USER_from_THE_COURSE_X, [Usr_OTHER] = Txt_Remove_USER_from_THE_COURSE_X,
}; };
Enr_RegRemOneUsrActionBegin (Enr_REMOVE_ONE_USR_FROM_CRS,OptionChecked); Enr_RegRemOneUsrActionBegin (Enr_REMOVE_ONE_USR_FROM_CRS,UncheckedOrChecked);
HTM_TxtF (Txt[MeOrOther],Gbl.Hierarchy.Node[Hie_CRS].ShrtName); HTM_TxtF (Txt[MeOrOther],Gbl.Hierarchy.Node[Hie_CRS].ShrtName);
Enr_RegRemOneUsrActionEnd (); Enr_RegRemOneUsrActionEnd ();
} }
@ -1543,7 +1543,7 @@ static void Enr_PutActionRemUsrFromCrs (bool *OptionChecked,Usr_MeOrOther_t MeOr
/***************** Put action to remove user as degree admin *****************/ /***************** Put action to remove user as degree admin *****************/
/*****************************************************************************/ /*****************************************************************************/
static void Enr_PutActionRemUsrAsDegAdm (bool *OptionChecked,Usr_MeOrOther_t MeOrOther) static void Enr_PutActionRemUsrAsDegAdm (Cns_UncheckedOrChecked_t *UncheckedOrChecked,Usr_MeOrOther_t MeOrOther)
{ {
extern const char *Txt_Remove_me_as_an_administrator_of_the_degree_X; extern const char *Txt_Remove_me_as_an_administrator_of_the_degree_X;
extern const char *Txt_Remove_USER_as_an_administrator_of_the_degree_X; extern const char *Txt_Remove_USER_as_an_administrator_of_the_degree_X;
@ -1553,7 +1553,7 @@ static void Enr_PutActionRemUsrAsDegAdm (bool *OptionChecked,Usr_MeOrOther_t MeO
[Usr_OTHER] = Txt_Remove_USER_as_an_administrator_of_the_degree_X, [Usr_OTHER] = Txt_Remove_USER_as_an_administrator_of_the_degree_X,
}; };
Enr_RegRemOneUsrActionBegin (Enr_REMOVE_ONE_DEG_ADMIN,OptionChecked); Enr_RegRemOneUsrActionBegin (Enr_REMOVE_ONE_DEG_ADMIN,UncheckedOrChecked);
HTM_TxtF (Txt[MeOrOther],Gbl.Hierarchy.Node[Hie_DEG].ShrtName); HTM_TxtF (Txt[MeOrOther],Gbl.Hierarchy.Node[Hie_DEG].ShrtName);
Enr_RegRemOneUsrActionEnd (); Enr_RegRemOneUsrActionEnd ();
} }
@ -1562,7 +1562,7 @@ static void Enr_PutActionRemUsrAsDegAdm (bool *OptionChecked,Usr_MeOrOther_t MeO
/***************** Put action to remove user as center admin *****************/ /***************** Put action to remove user as center admin *****************/
/*****************************************************************************/ /*****************************************************************************/
static void Enr_PutActionRemUsrAsCtrAdm (bool *OptionChecked,Usr_MeOrOther_t MeOrOther) static void Enr_PutActionRemUsrAsCtrAdm (Cns_UncheckedOrChecked_t *UncheckedOrChecked,Usr_MeOrOther_t MeOrOther)
{ {
extern const char *Txt_Remove_me_as_an_administrator_of_the_center_X; extern const char *Txt_Remove_me_as_an_administrator_of_the_center_X;
extern const char *Txt_Remove_USER_as_an_administrator_of_the_center_X; extern const char *Txt_Remove_USER_as_an_administrator_of_the_center_X;
@ -1572,7 +1572,7 @@ static void Enr_PutActionRemUsrAsCtrAdm (bool *OptionChecked,Usr_MeOrOther_t MeO
[Usr_OTHER] = Txt_Remove_USER_as_an_administrator_of_the_center_X, [Usr_OTHER] = Txt_Remove_USER_as_an_administrator_of_the_center_X,
}; };
Enr_RegRemOneUsrActionBegin (Enr_REMOVE_ONE_CTR_ADMIN,OptionChecked); Enr_RegRemOneUsrActionBegin (Enr_REMOVE_ONE_CTR_ADMIN,UncheckedOrChecked);
HTM_TxtF (Txt[MeOrOther],Gbl.Hierarchy.Node[Hie_CTR].ShrtName); HTM_TxtF (Txt[MeOrOther],Gbl.Hierarchy.Node[Hie_CTR].ShrtName);
Enr_RegRemOneUsrActionEnd (); Enr_RegRemOneUsrActionEnd ();
} }
@ -1581,7 +1581,7 @@ static void Enr_PutActionRemUsrAsCtrAdm (bool *OptionChecked,Usr_MeOrOther_t MeO
/************** Put action to remove user as institution admin ***************/ /************** Put action to remove user as institution admin ***************/
/*****************************************************************************/ /*****************************************************************************/
static void Enr_PutActionRemUsrAsInsAdm (bool *OptionChecked,Usr_MeOrOther_t MeOrOther) static void Enr_PutActionRemUsrAsInsAdm (Cns_UncheckedOrChecked_t *UncheckedOrChecked,Usr_MeOrOther_t MeOrOther)
{ {
extern const char *Txt_Remove_me_as_an_administrator_of_the_institution_X; extern const char *Txt_Remove_me_as_an_administrator_of_the_institution_X;
extern const char *Txt_Remove_USER_as_an_administrator_of_the_institution_X; extern const char *Txt_Remove_USER_as_an_administrator_of_the_institution_X;
@ -1591,7 +1591,7 @@ static void Enr_PutActionRemUsrAsInsAdm (bool *OptionChecked,Usr_MeOrOther_t MeO
[Usr_OTHER] = Txt_Remove_USER_as_an_administrator_of_the_institution_X, [Usr_OTHER] = Txt_Remove_USER_as_an_administrator_of_the_institution_X,
}; };
Enr_RegRemOneUsrActionBegin (Enr_REMOVE_ONE_INS_ADMIN,OptionChecked); Enr_RegRemOneUsrActionBegin (Enr_REMOVE_ONE_INS_ADMIN,UncheckedOrChecked);
HTM_TxtF (Txt[MeOrOther],Gbl.Hierarchy.Node[Hie_INS].ShrtName); HTM_TxtF (Txt[MeOrOther],Gbl.Hierarchy.Node[Hie_INS].ShrtName);
Enr_RegRemOneUsrActionEnd (); Enr_RegRemOneUsrActionEnd ();
} }
@ -1600,7 +1600,7 @@ static void Enr_PutActionRemUsrAsInsAdm (bool *OptionChecked,Usr_MeOrOther_t MeO
/********************* Put action to remove user account *********************/ /********************* Put action to remove user account *********************/
/*****************************************************************************/ /*****************************************************************************/
static void Enr_PutActionRemUsrAcc (bool *OptionChecked,Usr_MeOrOther_t MeOrOther) static void Enr_PutActionRemUsrAcc (Cns_UncheckedOrChecked_t *UncheckedOrChecked,Usr_MeOrOther_t MeOrOther)
{ {
extern const char *Txt_Eliminate_my_user_account; extern const char *Txt_Eliminate_my_user_account;
extern const char *Txt_Eliminate_user_account; extern const char *Txt_Eliminate_user_account;
@ -1610,7 +1610,7 @@ static void Enr_PutActionRemUsrAcc (bool *OptionChecked,Usr_MeOrOther_t MeOrOthe
[Usr_OTHER] = Txt_Eliminate_user_account, [Usr_OTHER] = Txt_Eliminate_user_account,
}; };
Enr_RegRemOneUsrActionBegin (Enr_ELIMINATE_ONE_USR_FROM_PLATFORM,OptionChecked); Enr_RegRemOneUsrActionBegin (Enr_ELIMINATE_ONE_USR_FROM_PLATFORM,UncheckedOrChecked);
HTM_Txt (Txt[MeOrOther]); HTM_Txt (Txt[MeOrOther]);
Enr_RegRemOneUsrActionEnd (); Enr_RegRemOneUsrActionEnd ();
} }
@ -1620,17 +1620,20 @@ static void Enr_PutActionRemUsrAcc (bool *OptionChecked,Usr_MeOrOther_t MeOrOthe
/*****************************************************************************/ /*****************************************************************************/
static void Enr_RegRemOneUsrActionBegin (Enr_RegRemOneUsrAction_t RegRemOneUsrAction, static void Enr_RegRemOneUsrActionBegin (Enr_RegRemOneUsrAction_t RegRemOneUsrAction,
bool *OptionChecked) Cns_UncheckedOrChecked_t *UncheckedOrChecked)
{ {
extern const char *HTM_CheckedTxt[Cns_NUM_UNCHECKED_CHECKED];
Cns_UncheckedOrChecked_t ThisUncheckedOrChecked = (*UncheckedOrChecked == Cns_CHECKED) ? Cns_UNCHECKED :
Cns_CHECKED;
HTM_LI_Begin (NULL); HTM_LI_Begin (NULL);
HTM_LABEL_Begin (NULL); HTM_LABEL_Begin (NULL);
HTM_INPUT_RADIO ("RegRemAction",HTM_DONT_SUBMIT_ON_CLICK, HTM_INPUT_RADIO ("RegRemAction",HTM_DONT_SUBMIT_ON_CLICK,
"value=\"%u\"%s", "value=\"%u\"%s",
(unsigned) RegRemOneUsrAction, (unsigned) RegRemOneUsrAction,
*OptionChecked ? "" : " checked=\"checked\""); HTM_CheckedTxt[ThisUncheckedOrChecked]);
if (!*OptionChecked) *UncheckedOrChecked = Cns_CHECKED;
*OptionChecked = true;
} }
static void Enr_RegRemOneUsrActionEnd (void) static void Enr_RegRemOneUsrActionEnd (void)

View File

@ -50,17 +50,17 @@ typedef enum
#define Enr_REG_REM_ONE_USR_NUM_ACTIONS 11 #define Enr_REG_REM_ONE_USR_NUM_ACTIONS 11
typedef enum typedef enum
{ {
Enr_REG_REM_ONE_USR_UNKNOWN_ACTION = 0, Enr_REG_REM_ONE_USR_UNKNOWN_ACTION = 0,
Enr_REGISTER_MODIFY_ONE_USR_IN_CRS = 1, Enr_REGISTER_MODIFY_ONE_USR_IN_CRS = 1,
Enr_REGISTER_ONE_DEG_ADMIN = 2, Enr_REGISTER_ONE_DEG_ADMIN = 2,
Enr_REGISTER_ONE_CTR_ADMIN = 3, Enr_REGISTER_ONE_CTR_ADMIN = 3,
Enr_REGISTER_ONE_INS_ADMIN = 4, Enr_REGISTER_ONE_INS_ADMIN = 4,
Enr_REPORT_USR_AS_POSSIBLE_DUPLICATE = 5, Enr_REPORT_USR_AS_POSSIBLE_DUPLICATE = 5,
Enr_REMOVE_ONE_USR_FROM_CRS = 6, Enr_REMOVE_ONE_USR_FROM_CRS = 6,
Enr_REMOVE_ONE_DEG_ADMIN = 7, Enr_REMOVE_ONE_DEG_ADMIN = 7,
Enr_REMOVE_ONE_CTR_ADMIN = 8, Enr_REMOVE_ONE_CTR_ADMIN = 8,
Enr_REMOVE_ONE_INS_ADMIN = 9, Enr_REMOVE_ONE_INS_ADMIN = 9,
Enr_ELIMINATE_ONE_USR_FROM_PLATFORM = 10, Enr_ELIMINATE_ONE_USR_FROM_PLATFORM = 10,
} Enr_RegRemOneUsrAction_t; } Enr_RegRemOneUsrAction_t;
typedef enum typedef enum

View File

@ -2121,13 +2121,14 @@ static void Grp_ListGrpsToAddOrRemUsrs (struct GroupType *GrpTyp,long UsrCod)
static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp) static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp)
{ {
extern const char *HTM_CheckedTxt[Cns_NUM_UNCHECKED_CHECKED];
extern const char *Txt_users_with_no_group; extern const char *Txt_users_with_no_group;
unsigned NumGrpThisType; unsigned NumGrpThisType;
unsigned NumGrpSel; unsigned NumGrpSel;
struct ListCodGrps LstGrpsIBelong; struct ListCodGrps LstGrpsIBelong;
bool IBelongToThisGroup; bool IBelongToThisGroup;
Usr_Can_t ICanSelUnselGroup; Usr_Can_t ICanSelUnselGroup;
bool Checked; Cns_UncheckedOrChecked_t UncheckedOrChecked;
struct Group *Grp; struct Group *Grp;
Rol_Role_t Role; Rol_Role_t Role;
@ -2174,14 +2175,14 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp)
/* This group should be checked? */ /* This group should be checked? */
if (Gbl.Crs.Grps.AllGrps) if (Gbl.Crs.Grps.AllGrps)
Checked = true; UncheckedOrChecked = Cns_CHECKED;
else else
for (NumGrpSel = 0, Checked = false; for (NumGrpSel = 0, UncheckedOrChecked = Cns_UNCHECKED;
NumGrpSel < Gbl.Crs.Grps.LstGrpsSel.NumGrps; NumGrpSel < Gbl.Crs.Grps.LstGrpsSel.NumGrps;
NumGrpSel++) NumGrpSel++)
if (Gbl.Crs.Grps.LstGrpsSel.GrpCods[NumGrpSel] == Grp->GrpCod) if (Gbl.Crs.Grps.LstGrpsSel.GrpCods[NumGrpSel] == Grp->GrpCod)
{ {
Checked = true; UncheckedOrChecked = Cns_CHECKED;
break; break;
} }
@ -2193,8 +2194,7 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp)
HTM_INPUT_CHECKBOX ("GrpCods",HTM_DONT_SUBMIT_ON_CHANGE, HTM_INPUT_CHECKBOX ("GrpCods",HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Grp%ld\" value=\"%ld\"%s%s", "id=\"Grp%ld\" value=\"%ld\"%s%s",
Grp->GrpCod,Grp->GrpCod, Grp->GrpCod,Grp->GrpCod,
Checked ? " checked=\"checked\"" : HTM_CheckedTxt[UncheckedOrChecked],
"",
ICanSelUnselGroup == Usr_CAN ? " onclick=\"checkParent(this,'AllGroups')\"" : ICanSelUnselGroup == Usr_CAN ? " onclick=\"checkParent(this,'AllGroups')\"" :
" disabled=\"disabled\""); " disabled=\"disabled\"");
HTM_TD_End (); HTM_TD_End ();
@ -2217,20 +2217,20 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp)
{ {
case Usr_CAN: case Usr_CAN:
if (Gbl.Crs.Grps.AllGrps) if (Gbl.Crs.Grps.AllGrps)
Checked = true; UncheckedOrChecked = Cns_CHECKED;
else else
for (NumGrpSel = 0, Checked = false; for (NumGrpSel = 0, UncheckedOrChecked = Cns_UNCHECKED;
NumGrpSel < Gbl.Crs.Grps.LstGrpsSel.NumGrps; NumGrpSel < Gbl.Crs.Grps.LstGrpsSel.NumGrps;
NumGrpSel++) NumGrpSel++)
if (Gbl.Crs.Grps.LstGrpsSel.GrpCods[NumGrpSel] == -(GrpTyp->GrpTypCod)) if (Gbl.Crs.Grps.LstGrpsSel.GrpCods[NumGrpSel] == -(GrpTyp->GrpTypCod))
{ {
Checked = true; UncheckedOrChecked = Cns_CHECKED;
break; break;
} }
break; break;
case Usr_CAN_NOT: case Usr_CAN_NOT:
default: default:
Checked = false; UncheckedOrChecked = Cns_UNCHECKED;
break; break;
} }
@ -2241,9 +2241,8 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp)
"id=\"Grp%ld\" value=\"%ld\"%s" "id=\"Grp%ld\" value=\"%ld\"%s"
" onclick=\"checkParent(this,'AllGroups')\"", " onclick=\"checkParent(this,'AllGroups')\"",
-GrpTyp->GrpTypCod,-GrpTyp->GrpTypCod, -GrpTyp->GrpTypCod,-GrpTyp->GrpTypCod,
ICanSelUnselGroup == Usr_CAN ? (Checked ? " checked=\"checked\"" : ICanSelUnselGroup == Usr_CAN ? HTM_CheckedTxt[UncheckedOrChecked] :
"") : " disabled=\"disabled\"");
" disabled=\"disabled\"");
HTM_TD_End (); HTM_TD_End ();
/* Column closed/open */ /* Column closed/open */

View File

@ -1266,11 +1266,17 @@ void Lay_PutContextualLinkIconText (Act_Action_t NextAction,const char *Anchor,
void Lay_PutContextualCheckbox (Act_Action_t NextAction, void Lay_PutContextualCheckbox (Act_Action_t NextAction,
void (*FuncPars) (void *Args),void *Args, void (*FuncPars) (void *Args),void *Args,
const char *CheckboxName, const char *CheckboxName,
bool Checked, Cns_UncheckedOrChecked_t UncheckedOrChecked,
Cns_DisabledOrEnabled_t DisabledOrEnabled, Cns_DisabledOrEnabled_t DisabledOrEnabled,
const char *Title,const char *Text) const char *Title,const char *Text)
{ {
extern const char *Cns_DisabledTxt[Cns_NUM_DISABLED_ENABLED]; extern const char *HTM_CheckedTxt[Cns_NUM_UNCHECKED_CHECKED];
extern const char *HTM_DisabledTxt[Cns_NUM_DISABLED_ENABLED];
static const char *Class[Cns_NUM_UNCHECKED_CHECKED] =
{
[Cns_UNCHECKED] = "CHECKBOX_UNCHECKED",
[Cns_CHECKED ] = "CHECKBOX_CHECKED",
};
/***** Separator *****/ /***** Separator *****/
if (Text) if (Text)
@ -1284,10 +1290,7 @@ void Lay_PutContextualCheckbox (Act_Action_t NextAction,
/***** Begin container *****/ /***** Begin container *****/
HTM_DIV_Begin ("class=\"CONTEXT_OPT %s FORM_OUT_%s BOLD\" title=\"%s\"", HTM_DIV_Begin ("class=\"CONTEXT_OPT %s FORM_OUT_%s BOLD\" title=\"%s\"",
Checked ? "CHECKBOX_CHECKED" : Class[UncheckedOrChecked],The_GetSuffix (),Title);
"CHECKBOX_UNCHECKED",
The_GetSuffix (),
Title);
/***** Begin label *****/ /***** Begin label *****/
HTM_LABEL_Begin (NULL); HTM_LABEL_Begin (NULL);
@ -1295,9 +1298,8 @@ void Lay_PutContextualCheckbox (Act_Action_t NextAction,
/****** Checkbox *****/ /****** Checkbox *****/
HTM_INPUT_CHECKBOX (CheckboxName,HTM_SUBMIT_ON_CHANGE, HTM_INPUT_CHECKBOX (CheckboxName,HTM_SUBMIT_ON_CHANGE,
"value=\"Y\"%s%s", "value=\"Y\"%s%s",
Checked ? " checked=\"checked\"" : HTM_CheckedTxt[UncheckedOrChecked],
"", HTM_DisabledTxt[DisabledOrEnabled]);
Cns_DisabledTxt[DisabledOrEnabled]);
/***** Text *****/ /***** Text *****/
if (Text) if (Text)

View File

@ -81,7 +81,7 @@ void Lay_PutContextualLinkIconText (Act_Action_t NextAction,const char *Anchor,
void Lay_PutContextualCheckbox (Act_Action_t NextAction, void Lay_PutContextualCheckbox (Act_Action_t NextAction,
void (*FuncPars) (void *Args),void *Args, void (*FuncPars) (void *Args),void *Args,
const char *CheckboxName, const char *CheckboxName,
bool Checked, Cns_UncheckedOrChecked_t UncheckedOrChecked,
Cns_DisabledOrEnabled_t DisabledOrEnabled, Cns_DisabledOrEnabled_t DisabledOrEnabled,
const char *Title,const char *Text); const char *Title,const char *Text);

View File

@ -210,11 +210,12 @@ void Qst_ShowFormRequestEditQsts (struct Qst_Questions *Questions)
void Qst_ShowFormAnswerTypes (const struct Qst_AnswerTypes *AnswerTypes) void Qst_ShowFormAnswerTypes (const struct Qst_AnswerTypes *AnswerTypes)
{ {
extern const char *HTM_CheckedTxt[Cns_NUM_UNCHECKED_CHECKED];
extern const char *Txt_Types_of_answers; extern const char *Txt_Types_of_answers;
extern const char *Txt_All_types_of_answers; extern const char *Txt_All_types_of_answers;
extern const char *Txt_TST_STR_ANSWER_TYPES[Qst_NUM_ANS_TYPES]; extern const char *Txt_TST_STR_ANSWER_TYPES[Qst_NUM_ANS_TYPES];
Qst_AnswerType_t AnsType; Qst_AnswerType_t AnsType;
bool Checked; Cns_UncheckedOrChecked_t UncheckedOrChecked;
char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
const char *Ptr; const char *Ptr;
@ -249,14 +250,14 @@ void Qst_ShowFormAnswerTypes (const struct Qst_AnswerTypes *AnswerTypes)
{ {
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
Checked = false; UncheckedOrChecked = Cns_UNCHECKED;
Ptr = AnswerTypes->List; Ptr = AnswerTypes->List;
while (*Ptr) while (*Ptr)
{ {
Par_GetNextStrUntilSeparParMult (&Ptr,UnsignedStr,Cns_MAX_DECIMAL_DIGITS_UINT); Par_GetNextStrUntilSeparParMult (&Ptr,UnsignedStr,Cns_MAX_DECIMAL_DIGITS_UINT);
if (Qst_ConvertFromUnsignedStrToAnsTyp (UnsignedStr) == AnsType) if (Qst_ConvertFromUnsignedStrToAnsTyp (UnsignedStr) == AnsType)
{ {
Checked = true; UncheckedOrChecked = Cns_CHECKED;
break; break;
} }
} }
@ -266,8 +267,7 @@ void Qst_ShowFormAnswerTypes (const struct Qst_AnswerTypes *AnswerTypes)
"value=\"%u\"%s" "value=\"%u\"%s"
" onclick=\"checkParent(this,'AllAnsTypes');\"", " onclick=\"checkParent(this,'AllAnsTypes');\"",
(unsigned) AnsType, (unsigned) AnsType,
Checked ? " checked=\"checked\"" : HTM_CheckedTxt[UncheckedOrChecked]);
"");
HTM_NBSPTxt (Txt_TST_STR_ANSWER_TYPES[AnsType]); HTM_NBSPTxt (Txt_TST_STR_ANSWER_TYPES[AnsType]);
HTM_LABEL_End (); HTM_LABEL_End ();
HTM_TD_End (); HTM_TD_End ();

View File

@ -199,8 +199,11 @@ void Rsc_ShowClipboardToChangeLink (const struct Rsc_Link *CurrentLink)
/*****************************************************************************/ /*****************************************************************************/
void Rsc_WriteRowClipboard (const struct Rsc_Link *Link, void Rsc_WriteRowClipboard (const struct Rsc_Link *Link,
HTM_SubmitOnClick_t SubmitOnClick,bool Checked) HTM_SubmitOnClick_t SubmitOnClick,
Cns_UncheckedOrChecked_t UncheckedOrChecked)
{ {
extern const char *HTM_CheckedTxt[Cns_NUM_UNCHECKED_CHECKED];
/***** Begin list row *****/ /***** Begin list row *****/
HTM_LI_Begin ("class=\"PRG_RSC_%s\"",The_GetSuffix ()); HTM_LI_Begin ("class=\"PRG_RSC_%s\"",The_GetSuffix ());
HTM_LABEL_Begin (NULL); HTM_LABEL_Begin (NULL);
@ -209,8 +212,7 @@ void Rsc_WriteRowClipboard (const struct Rsc_Link *Link,
HTM_INPUT_RADIO ("Link",SubmitOnClick, HTM_INPUT_RADIO ("Link",SubmitOnClick,
"value=\"%s_%ld\"%s", "value=\"%s_%ld\"%s",
Rsc_ResourceTypesDB[Link->Type],Link->Cod, Rsc_ResourceTypesDB[Link->Type],Link->Cod,
Checked ? " checked=\"checked\"" : HTM_CheckedTxt[UncheckedOrChecked]);
"");
/***** Name *****/ /***** Name *****/
Rsc_WriteLinkName (Link,Frm_DONT_PUT_FORM); Rsc_WriteLinkName (Link,Frm_DONT_PUT_FORM);

View File

@ -78,7 +78,8 @@ struct Rsc_Link
void Rsc_ShowClipboard (void); void Rsc_ShowClipboard (void);
void Rsc_ShowClipboardToChangeLink (const struct Rsc_Link *CurrentLink); void Rsc_ShowClipboardToChangeLink (const struct Rsc_Link *CurrentLink);
void Rsc_WriteRowClipboard (const struct Rsc_Link *Link, void Rsc_WriteRowClipboard (const struct Rsc_Link *Link,
HTM_SubmitOnClick_t SubmitOnClick,bool Checked); HTM_SubmitOnClick_t SubmitOnClick,
Cns_UncheckedOrChecked_t UncheckedOrChecked);
void Rsc_WriteLinkName (const struct Rsc_Link *Link,Frm_PutForm_t PutFormToGo); void Rsc_WriteLinkName (const struct Rsc_Link *Link,Frm_PutForm_t PutFormToGo);
void Rsc_GetResourceTitleFromLink (const struct Rsc_Link *Link, void Rsc_GetResourceTitleFromLink (const struct Rsc_Link *Link,

View File

@ -515,7 +515,7 @@ void Rol_WriteSelectorRoles (unsigned RolesAllowed,unsigned RolesSelected,
Cns_DisabledOrEnabled_t DisabledOrEnabled, Cns_DisabledOrEnabled_t DisabledOrEnabled,
HTM_SubmitOnChange_t SubmitOnChange) HTM_SubmitOnChange_t SubmitOnChange)
{ {
extern const char *Cns_DisabledTxt[Cns_NUM_DISABLED_ENABLED]; extern const char *HTM_DisabledTxt[Cns_NUM_DISABLED_ENABLED];
extern const char *Txt_ROLES_PLURAL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; extern const char *Txt_ROLES_PLURAL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
Rol_Role_t Role; Rol_Role_t Role;
@ -531,7 +531,7 @@ void Rol_WriteSelectorRoles (unsigned RolesAllowed,unsigned RolesSelected,
The_GetSuffix (), The_GetSuffix (),
(RolesSelected & (1 << Role)) ? " checked=\"checked\"" : (RolesSelected & (1 << Role)) ? " checked=\"checked\"" :
"", "",
Cns_DisabledTxt[DisabledOrEnabled]); HTM_DisabledTxt[DisabledOrEnabled]);
HTM_Txt (Txt_ROLES_PLURAL_abc[Role][Usr_SEX_UNKNOWN]); HTM_Txt (Txt_ROLES_PLURAL_abc[Role][Usr_SEX_UNKNOWN]);
HTM_LABEL_End (); HTM_LABEL_End ();
HTM_BR (); HTM_BR ();

View File

@ -276,6 +276,7 @@ void Tag_ShowFormSelTags (const struct Tag_Tags *Tags,
MYSQL_RES *mysql_res, MYSQL_RES *mysql_res,
bool ShowOnlyEnabledTags) bool ShowOnlyEnabledTags)
{ {
extern const char *HTM_CheckedTxt[Cns_NUM_UNCHECKED_CHECKED];
extern const char *Txt_Tags; extern const char *Txt_Tags;
extern const char *Txt_All_tags; extern const char *Txt_All_tags;
extern const char *Txt_Tag_not_allowed; extern const char *Txt_Tag_not_allowed;
@ -283,7 +284,7 @@ void Tag_ShowFormSelTags (const struct Tag_Tags *Tags,
unsigned NumTag; unsigned NumTag;
MYSQL_ROW row; MYSQL_ROW row;
bool TagHidden = false; bool TagHidden = false;
bool Checked; Cns_UncheckedOrChecked_t UncheckedOrChecked;
const char *Ptr; const char *Ptr;
char TagText[Tag_MAX_BYTES_TAG + 1]; char TagText[Tag_MAX_BYTES_TAG + 1];
/* /*
@ -338,7 +339,7 @@ void Tag_ShowFormSelTags (const struct Tag_Tags *Tags,
HTM_TD_End (); HTM_TD_End ();
} }
Checked = false; UncheckedOrChecked = Cns_UNCHECKED;
if (Tags->List) if (Tags->List)
{ {
Ptr = Tags->List; Ptr = Tags->List;
@ -347,7 +348,7 @@ void Tag_ShowFormSelTags (const struct Tag_Tags *Tags,
Par_GetNextStrUntilSeparParMult (&Ptr,TagText,Tag_MAX_BYTES_TAG); Par_GetNextStrUntilSeparParMult (&Ptr,TagText,Tag_MAX_BYTES_TAG);
if (!strcmp (row[1],TagText)) if (!strcmp (row[1],TagText))
{ {
Checked = true; UncheckedOrChecked = Cns_CHECKED;
break; break;
} }
} }
@ -359,8 +360,7 @@ void Tag_ShowFormSelTags (const struct Tag_Tags *Tags,
HTM_INPUT_CHECKBOX ("ChkTag",HTM_DONT_SUBMIT_ON_CHANGE, HTM_INPUT_CHECKBOX ("ChkTag",HTM_DONT_SUBMIT_ON_CHANGE,
"value=\"%s\"%s onclick=\"checkParent(this,'AllTags');\"", "value=\"%s\"%s onclick=\"checkParent(this,'AllTags');\"",
row[1], row[1],
Checked ? " checked=\"checked\"" : HTM_CheckedTxt[UncheckedOrChecked]);
"");
HTM_NBSPTxt (row[1]); HTM_NBSPTxt (row[1]);
HTM_LABEL_End (); HTM_LABEL_End ();
HTM_TD_End (); HTM_TD_End ();