Version 16.30.1

This commit is contained in:
Antonio Cañas Vargas 2016-10-20 22:58:11 +02:00
parent 0484b6b9dc
commit 8c89a1433b
6 changed files with 46 additions and 24 deletions

View File

@ -140,6 +140,7 @@ Act_Action_t MFU_GetMyLastActionInCurrentTab (void)
unsigned NumAct; unsigned NumAct;
long ActCod; long ActCod;
Act_Action_t Action; Act_Action_t Action;
Act_Action_t SuperAction;
Act_Action_t MoreRecentActionInCurrentTab = ActUnk; Act_Action_t MoreRecentActionInCurrentTab = ActUnk;
if (Gbl.Usrs.Me.UsrDat.UsrCod > 0) if (Gbl.Usrs.Me.UsrDat.UsrCod > 0)
@ -162,12 +163,15 @@ Act_Action_t MFU_GetMyLastActionInCurrentTab (void)
ActCod = Str_ConvertStrCodToLongCod (row[0]); ActCod = Str_ConvertStrCodToLongCod (row[0]);
if (ActCod >= 0 && ActCod <= Act_MAX_ACTION_COD) if (ActCod >= 0 && ActCod <= Act_MAX_ACTION_COD)
if ((Action = Act_FromActCodToAction[ActCod]) >= 0) if ((Action = Act_FromActCodToAction[ActCod]) >= 0)
if (Act_Actions[Action].Tab == Gbl.Action.Tab) {
SuperAction = Act_Actions[Action].SuperAction;
if (Act_Actions[SuperAction].Tab == Gbl.Action.Tab)
if (Act_CheckIfIHavePermissionToExecuteAction (Action)) if (Act_CheckIfIHavePermissionToExecuteAction (Action))
{ {
MoreRecentActionInCurrentTab = Action; MoreRecentActionInCurrentTab = Action;
break; break;
} }
}
} }
/***** Free structure that stores the query result *****/ /***** Free structure that stores the query result *****/
@ -205,6 +209,7 @@ void MFU_WriteBigMFUActions (struct MFU_ListMFUActions *ListMFUActions)
extern const char *Txt_TABS_FULL_TXT[Tab_NUM_TABS]; extern const char *Txt_TABS_FULL_TXT[Tab_NUM_TABS];
unsigned NumAct; unsigned NumAct;
Act_Action_t Action; Act_Action_t Action;
Act_Action_t SuperAction;
const char *Title; const char *Title;
char TabStr[128+1]; char TabStr[128+1];
char MenuStr[128+1]; char MenuStr[128+1];
@ -225,7 +230,8 @@ void MFU_WriteBigMFUActions (struct MFU_ListMFUActions *ListMFUActions)
if ((Title = Act_GetTitleAction (Action)) != NULL) if ((Title = Act_GetTitleAction (Action)) != NULL)
{ {
/* Action string */ /* Action string */
strncpy (TabStr,Txt_TABS_FULL_TXT[Act_Actions[Act_Actions[Action].SuperAction].Tab],128); SuperAction = Act_Actions[Action].SuperAction;
strncpy (TabStr,Txt_TABS_FULL_TXT[Act_Actions[SuperAction].Tab],128);
TabStr[128] = '\0'; TabStr[128] = '\0';
strncpy (MenuStr,Title,128); strncpy (MenuStr,Title,128);
MenuStr[128] = '\0'; MenuStr[128] = '\0';
@ -262,6 +268,7 @@ void MFU_WriteSmallMFUActions (struct MFU_ListMFUActions *ListMFUActions)
extern const char *Txt_TABS_FULL_TXT[Tab_NUM_TABS]; extern const char *Txt_TABS_FULL_TXT[Tab_NUM_TABS];
unsigned NumAct; unsigned NumAct;
Act_Action_t Action; Act_Action_t Action;
Act_Action_t SuperAction;
const char *Title; const char *Title;
char TabStr[128+1]; char TabStr[128+1];
char MenuStr[128+1]; char MenuStr[128+1];
@ -287,7 +294,8 @@ void MFU_WriteSmallMFUActions (struct MFU_ListMFUActions *ListMFUActions)
if ((Title = Act_GetTitleAction (Action)) != NULL) if ((Title = Act_GetTitleAction (Action)) != NULL)
{ {
/* Action string */ /* Action string */
strncpy (TabStr,Txt_TABS_FULL_TXT[Act_Actions[Act_Actions[Action].SuperAction].Tab],128); SuperAction = Act_Actions[Action].SuperAction;
strncpy (TabStr,Txt_TABS_FULL_TXT[Act_Actions[SuperAction].Tab],128);
TabStr[128] = '\0'; TabStr[128] = '\0';
strncpy (MenuStr,Title,128); strncpy (MenuStr,Title,128);
MenuStr[128] = '\0'; MenuStr[128] = '\0';

View File

@ -4472,10 +4472,12 @@ bool Act_CheckIfIHavePermissionToExecuteAction (Act_Action_t Action)
const char *Act_GetTitleAction (Act_Action_t Action) const char *Act_GetTitleAction (Act_Action_t Action)
{ {
extern const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB]; extern const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB];
Act_Action_t SuperAction = Act_Actions[Action].SuperAction; Act_Action_t SuperAction;
if (Action < 0 || Action >= Act_NUM_ACTIONS) if (Action < 0 || Action >= Act_NUM_ACTIONS)
return NULL; return NULL;
SuperAction = Act_Actions[Action].SuperAction;
return Txt_MENU_TITLE[Act_Actions[SuperAction].Tab][Act_Actions[SuperAction].IndexInMenu]; return Txt_MENU_TITLE[Act_Actions[SuperAction].Tab][Act_Actions[SuperAction].IndexInMenu];
} }
@ -4486,10 +4488,13 @@ const char *Act_GetTitleAction (Act_Action_t Action)
const char *Act_GetSubtitleAction (Act_Action_t Action) const char *Act_GetSubtitleAction (Act_Action_t Action)
{ {
extern const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB]; extern const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB];
Act_Action_t SuperAction;
if (Action < 0 || Action >= Act_NUM_ACTIONS) if (Action < 0 || Action >= Act_NUM_ACTIONS)
return NULL; return NULL;
return Txt_MENU_SUBTITLE[Act_Actions[Act_Actions[Action].SuperAction].Tab][Act_Actions[Act_Actions[Action].SuperAction].IndexInMenu];
SuperAction = Act_Actions[Action].SuperAction;
return Txt_MENU_SUBTITLE[Act_Actions[SuperAction].Tab][Act_Actions[SuperAction].IndexInMenu];
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -150,14 +150,15 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.30 (2016-10-20)" #define Log_PLATFORM_VERSION "SWAD 16.30.1 (2016-10-20)"
#define CSS_FILE "swad16.25.css" #define CSS_FILE "swad16.25.css"
#define JS_FILE "swad15.238.1.js" #define JS_FILE "swad15.238.1.js"
// Number of lines (includes comments but not blank lines) has been got with the following command: // Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
/* /*
Version 16.30: Oct 20, 2016 Removed country in edition of institutions. (? lines) Version 16.30.1: Oct 20, 2016 Code refactoring related to tabs. (205077 lines)
Version 16.30: Oct 20, 2016 Removed country in edition of institutions. (205058 lines)
1 change necessary in database: 1 change necessary in database:
UPDATE actions SET Obsolete='Y' WHERE ActCod='865'; UPDATE actions SET Obsolete='Y' WHERE ActCod='865';

View File

@ -763,6 +763,7 @@ static void Rep_WriteSectionHitsPerAction (struct Rep_Report *Report)
unsigned long NumRow; unsigned long NumRow;
long ActCod; long ActCod;
Act_Action_t Action; Act_Action_t Action;
Act_Action_t SuperAction;
Tab_Tab_t Tab; Tab_Tab_t Tab;
char ActTxt[Act_MAX_LENGTH_ACTION_TXT+1]; char ActTxt[Act_MAX_LENGTH_ACTION_TXT+1];
unsigned long NumClicks; unsigned long NumClicks;
@ -809,7 +810,8 @@ static void Rep_WriteSectionHitsPerAction (struct Rep_Report *Report)
Action = Act_FromActCodToAction[ActCod]; Action = Act_FromActCodToAction[ActCod];
if (Action >= 0) if (Action >= 0)
{ {
Tab = Act_Actions[Act_Actions[Action].SuperAction].Tab; SuperAction = Act_Actions[Action].SuperAction;
Tab = Act_Actions[SuperAction].Tab;
if (Txt_TABS_FULL_TXT[Tab]) if (Txt_TABS_FULL_TXT[Tab])
fprintf (Gbl.F.Rep,"%s &gt; ",Txt_TABS_FULL_TXT[Tab]); fprintf (Gbl.F.Rep,"%s &gt; ",Txt_TABS_FULL_TXT[Tab]);
} }

View File

@ -727,7 +727,9 @@ static void Sta_WriteSelectorAction (void)
extern const char *The_ClassForm[The_NUM_THEMES]; extern const char *The_ClassForm[The_NUM_THEMES];
extern const char *Txt_Action; extern const char *Txt_Action;
extern const char *Txt_TABS_SHORT_TXT[Tab_NUM_TABS]; extern const char *Txt_TABS_SHORT_TXT[Tab_NUM_TABS];
Act_Action_t NumAction; Act_Action_t Action;
Act_Action_t SuperAction;
Tab_Tab_t Tab;
char ActTxt[Act_MAX_LENGTH_ACTION_TXT+1]; char ActTxt[Act_MAX_LENGTH_ACTION_TXT+1];
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
@ -738,21 +740,22 @@ static void Sta_WriteSelectorAction (void)
"<select name=\"StatAct\" id=\"StatAct\"" "<select name=\"StatAct\" id=\"StatAct\""
" style=\"width:375px;\">", " style=\"width:375px;\">",
The_ClassForm[Gbl.Prefs.Theme],Txt_Action); The_ClassForm[Gbl.Prefs.Theme],Txt_Action);
for (NumAction = (Act_Action_t) 0; for (Action = (Act_Action_t) 0;
NumAction < Act_NUM_ACTIONS; Action < Act_NUM_ACTIONS;
NumAction++) Action++)
{ {
fprintf (Gbl.F.Out,"<option value=\"%u\"",(unsigned) NumAction); fprintf (Gbl.F.Out,"<option value=\"%u\"",(unsigned) Action);
if (NumAction == Gbl.Stat.NumAction) if (Action == Gbl.Stat.NumAction)
fprintf (Gbl.F.Out," selected=\"selected\""); fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">"); fprintf (Gbl.F.Out,">");
if (NumAction) if (Action)
fprintf (Gbl.F.Out,"%u: ",NumAction); fprintf (Gbl.F.Out,"%u: ",(unsigned) Action);
if (Txt_TABS_SHORT_TXT[Act_Actions[NumAction].Tab]) SuperAction = Act_Actions[Action].SuperAction;
fprintf (Gbl.F.Out,"%s &gt; ", Tab = Act_Actions[SuperAction].Tab;
Txt_TABS_SHORT_TXT[Act_Actions[NumAction].Tab]); if (Txt_TABS_SHORT_TXT[Tab])
fprintf (Gbl.F.Out,"%s &gt; ",Txt_TABS_SHORT_TXT[Tab]);
fprintf (Gbl.F.Out,"%s", fprintf (Gbl.F.Out,"%s",
Act_GetActionTextFromDB (Act_Actions[NumAction].ActCod,ActTxt)); Act_GetActionTextFromDB (Act_Actions[Action].ActCod,ActTxt));
} }
fprintf (Gbl.F.Out,"</select>" fprintf (Gbl.F.Out,"</select>"

View File

@ -262,8 +262,7 @@ static void Tab_WriteBreadcrumbTab (void)
Act_LinkFormSubmit (Txt_TABS_FULL_TXT[Gbl.Action.Tab],The_ClassTxtTabOn[Gbl.Prefs.Theme],NULL); Act_LinkFormSubmit (Txt_TABS_FULL_TXT[Gbl.Action.Tab],The_ClassTxtTabOn[Gbl.Prefs.Theme],NULL);
/***** Title and end of form *****/ /***** Title and end of form *****/
fprintf (Gbl.F.Out,"%s</a>", fprintf (Gbl.F.Out,"%s</a>",Txt_TABS_FULL_TXT[Gbl.Action.Tab]);
Txt_TABS_FULL_TXT[Gbl.Action.Tab]);
Act_FormEnd (); Act_FormEnd ();
} }
@ -294,8 +293,10 @@ static void Tab_WriteBreadcrumbAction (void)
void Tab_SetCurrentTab (void) void Tab_SetCurrentTab (void)
{ {
extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS]; extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
Act_Action_t SuperAction;
Gbl.Action.Tab = Act_Actions[Gbl.Action.Act].Tab; SuperAction = Act_Actions[Gbl.Action.Act].SuperAction;
Gbl.Action.Tab = Act_Actions[SuperAction].Tab;
/***** Change action and tab if country, institution, centre or degree /***** Change action and tab if country, institution, centre or degree
are incompatible with the current tab *****/ are incompatible with the current tab *****/
@ -341,7 +342,9 @@ void Tab_SetCurrentTab (void)
default: default:
break; break;
} }
Gbl.Action.Tab = Act_Actions[Gbl.Action.Act].Tab;
SuperAction = Act_Actions[Gbl.Action.Act].SuperAction;
Gbl.Action.Tab = Act_Actions[SuperAction].Tab;
Tab_DisableIncompatibleTabs (); Tab_DisableIncompatibleTabs ();
} }