mirror of https://github.com/acanas/swad-core.git
Version 17.12
This commit is contained in:
parent
794be41996
commit
6cebad8c0a
Binary file not shown.
After Width: | Height: | Size: 829 B |
Binary file not shown.
After Width: | Height: | Size: 1011 B |
|
@ -682,6 +682,16 @@ function expandTextarea (textareaElem,idButton,rows) {
|
|||
document.getElementById(idButton).style.display = '';
|
||||
}
|
||||
|
||||
//Change display of a project
|
||||
function toggleProject (prjID) {
|
||||
toggleDisplay('prj_exp_' + prjID);
|
||||
toggleDisplay('prj_con_' + prjID);
|
||||
toggleDisplay('prj_dsc_' + prjID);
|
||||
toggleDisplay('prj_knw_' + prjID);
|
||||
toggleDisplay('prj_mtr_' + prjID);
|
||||
toggleDisplay('prj_url_' + prjID);
|
||||
}
|
||||
|
||||
// Change display of a test answer
|
||||
function toggleAnswer (option) {
|
||||
toggleDisplay('ans_' + option);
|
|
@ -252,13 +252,18 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 17.11.8 (2017-10-01)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 17.12 (2017-10-01)"
|
||||
#define CSS_FILE "swad17.0.css"
|
||||
#define JS_FILE "swad16.206.3.js"
|
||||
#define JS_FILE "swad17.12.js"
|
||||
|
||||
// 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
|
||||
/*
|
||||
Version 17.12: Oct 01, 2017 Changes in layout of projects. (231712 lines)
|
||||
Copy the following icons to icon public directory:
|
||||
sudo cp icon/more64x64.png /var/www/html/swad/icon/
|
||||
sudo cp icon/less64x64.png /var/www/html/swad/icon/
|
||||
|
||||
Version 17.11.8: Oct 01, 2017 Changes in edition of projects. (231638 lines)
|
||||
Version 17.11.7: Oct 01, 2017 Changes in layout of projects. (231634 lines)
|
||||
Version 17.11.6: Oct 01, 2017 Fixed bug in edition of projects. (231632 lines)
|
||||
|
|
202
swad_project.c
202
swad_project.c
|
@ -92,17 +92,21 @@ static void Prj_PutIconToCreateNewPrj (void);
|
|||
static void Prj_PutButtonToCreateNewPrj (void);
|
||||
static void Prj_PutIconToShowAllData (void);
|
||||
static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectView);
|
||||
static void Prj_PutIconToToggleProject (unsigned UniqueId,
|
||||
const char *Icon,const char *Text);
|
||||
static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj);
|
||||
static void Prj_ShowOneProjectDepartment (const struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView);
|
||||
static void Prj_ShowTableAllProjectsDepartment (const struct Project *Prj);
|
||||
static void Prj_ShowOneProjectTxtField (struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView,
|
||||
const char *id,unsigned UniqueId,
|
||||
const char *Label,char *TxtField);
|
||||
static void Prj_ShowTableAllProjectsTxtField (struct Project *Prj,
|
||||
char *TxtField);
|
||||
static void Prj_ShowOneProjectURL (const struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView);
|
||||
Prj_ProjectView_t ProjectView,
|
||||
const char *id,unsigned UniqueId);
|
||||
static void Prj_ShowTableAllProjectsURL (const struct Project *Prj);
|
||||
static void Prj_ShowOneProjectMembers (struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView);
|
||||
|
@ -418,12 +422,22 @@ static void Prj_ShowTableAllProjectsHead (void)
|
|||
unsigned NumRoleToShow;
|
||||
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
|
||||
for (Order = (Prj_Order_t) 0;
|
||||
Order <= (Prj_Order_t) (Prj_NUM_ORDERS - 1);
|
||||
Order++)
|
||||
fprintf (Gbl.F.Out,"<th class=\"LEFT_TOP DAT_N\">%s</th>",
|
||||
Txt_PROJECT_ORDER[Order]);
|
||||
|
||||
fprintf (Gbl.F.Out,"<th class=\"LEFT_TOP DAT_N\">%s</th>",
|
||||
Txt_Preassigned_QUESTION);
|
||||
|
||||
for (NumRoleToShow = 0;
|
||||
NumRoleToShow < Brw_NUM_ROLES_TO_SHOW;
|
||||
NumRoleToShow++)
|
||||
fprintf (Gbl.F.Out,"<th class=\"LEFT_TOP DAT_N\">%s</th>",
|
||||
Txt_PROJECT_ROLES_PLURAL_Abc[Prj_RolesToShow[NumRoleToShow]]);
|
||||
|
||||
fprintf (Gbl.F.Out,"<th class=\"LEFT_TOP DAT_N\">%s</th>",
|
||||
Txt_Description);
|
||||
fprintf (Gbl.F.Out,"<th class=\"LEFT_TOP DAT_N\">%s</th>",
|
||||
|
@ -432,14 +446,6 @@ static void Prj_ShowTableAllProjectsHead (void)
|
|||
Txt_Required_materials);
|
||||
fprintf (Gbl.F.Out,"<th class=\"LEFT_TOP DAT_N\">%s</th>",
|
||||
Txt_URL);
|
||||
fprintf (Gbl.F.Out,"<th class=\"LEFT_TOP DAT_N\">%s</th>",
|
||||
Txt_Preassigned_QUESTION);
|
||||
|
||||
for (NumRoleToShow = 0;
|
||||
NumRoleToShow < Brw_NUM_ROLES_TO_SHOW;
|
||||
NumRoleToShow++)
|
||||
fprintf (Gbl.F.Out,"<th class=\"LEFT_TOP DAT_N\">%s</th>",
|
||||
Txt_PROJECT_ROLES_PLURAL_Abc[Prj_RolesToShow[NumRoleToShow]]);
|
||||
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
}
|
||||
|
@ -573,6 +579,8 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie
|
|||
extern const char *Txt_Today;
|
||||
extern const char *Txt_Yes;
|
||||
extern const char *Txt_No;
|
||||
extern const char *Txt_See_more;
|
||||
extern const char *Txt_See_less;
|
||||
extern const char *Txt_Description;
|
||||
extern const char *Txt_Required_knowledge;
|
||||
extern const char *Txt_Required_materials;
|
||||
|
@ -650,23 +658,7 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie
|
|||
/***** Project members *****/
|
||||
Prj_ShowOneProjectMembers (Prj,ProjectView);
|
||||
|
||||
/***** Write rows of data of this project *****/
|
||||
/* Description of the project */
|
||||
Prj_ShowOneProjectTxtField (Prj,ProjectView,
|
||||
Txt_Description,Prj->Description);
|
||||
|
||||
/* Required knowledge to carry out the project */
|
||||
Prj_ShowOneProjectTxtField (Prj,ProjectView,
|
||||
Txt_Required_knowledge,Prj->Knowledge);
|
||||
|
||||
/* Required materials to carry out the project */
|
||||
Prj_ShowOneProjectTxtField (Prj,ProjectView,
|
||||
Txt_Required_materials,Prj->Materials);
|
||||
|
||||
/* Link to view more info about the project */
|
||||
Prj_ShowOneProjectURL (Prj,ProjectView);
|
||||
|
||||
/* Preassigned? */
|
||||
/***** Preassigned? *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td colspan=\"3\" class=\"RIGHT_TOP");
|
||||
if (ProjectView == Prj_LIST_PROJECTS)
|
||||
|
@ -689,9 +681,61 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie
|
|||
(Prj->Preassigned == Prj_PREASSIGNED) ? Txt_Yes :
|
||||
Txt_No);
|
||||
|
||||
/***** Link to show hidden info *****/
|
||||
if (ProjectView == Prj_LIST_PROJECTS)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<tr id=\"prj_exp_%u\">"
|
||||
"<td colspan=\"5\" class=\"CENTER_MIDDLE COLOR%u\">",
|
||||
UniqueId,Gbl.RowEvenOdd);
|
||||
Prj_PutIconToToggleProject (UniqueId,"more64x64.png",Txt_See_more);
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
||||
fprintf (Gbl.F.Out,"<tr id=\"prj_con_%u\" style=\"display:none;\">"
|
||||
"<td colspan=\"5\" class=\"CENTER_MIDDLE COLOR%u\">",
|
||||
UniqueId,Gbl.RowEvenOdd);
|
||||
Prj_PutIconToToggleProject (UniqueId,"less64x64.png",Txt_See_less);
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
}
|
||||
|
||||
/***** Write rows of data of this project *****/
|
||||
/* Description of the project */
|
||||
Prj_ShowOneProjectTxtField (Prj,ProjectView,"prj_dsc_",UniqueId,
|
||||
Txt_Description,Prj->Description);
|
||||
|
||||
/* Required knowledge to carry out the project */
|
||||
Prj_ShowOneProjectTxtField (Prj,ProjectView,"prj_knw_",UniqueId,
|
||||
Txt_Required_knowledge,Prj->Knowledge);
|
||||
|
||||
/* Required materials to carry out the project */
|
||||
Prj_ShowOneProjectTxtField (Prj,ProjectView,"prj_mtr_",UniqueId,
|
||||
Txt_Required_materials,Prj->Materials);
|
||||
|
||||
/* Link to view more info about the project */
|
||||
Prj_ShowOneProjectURL (Prj,ProjectView,"prj_url_",UniqueId);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/********** Put an icon to toggle on/off some fields of a project ************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prj_PutIconToToggleProject (unsigned UniqueId,
|
||||
const char *Icon,const char *Text)
|
||||
{
|
||||
extern const char *The_ClassForm[The_NUM_THEMES];
|
||||
|
||||
/***** Link to toggle on/off some fields of project *****/
|
||||
fprintf (Gbl.F.Out,"<a href=\"\" title=\"%s\" class=\"%s\""
|
||||
" onclick=\"toggleProject('%u');return false;\" />",
|
||||
Text,The_ClassForm[Gbl.Prefs.Theme],
|
||||
UniqueId);
|
||||
Ico_PutIconWithText (Icon,Text,Text);
|
||||
fprintf (Gbl.F.Out,"</a>");
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************** Show one row of table with all projects *******************/
|
||||
/*****************************************************************************/
|
||||
|
@ -757,9 +801,25 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
|
|||
"DAT_N",
|
||||
Prj->Title);
|
||||
|
||||
/* Department */
|
||||
/***** Department *****/
|
||||
Prj_ShowTableAllProjectsDepartment (Prj);
|
||||
|
||||
/***** Preassigned? *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">"
|
||||
"%s"
|
||||
"</td>",
|
||||
Gbl.RowEvenOdd,
|
||||
Prj->Hidden ? "DAT_LIGHT" :
|
||||
"DAT",
|
||||
(Prj->Preassigned == Prj_PREASSIGNED) ? Txt_Yes :
|
||||
Txt_No);
|
||||
|
||||
/***** Project members *****/
|
||||
for (NumRoleToShow = 0;
|
||||
NumRoleToShow < Brw_NUM_ROLES_TO_SHOW;
|
||||
NumRoleToShow++)
|
||||
Prj_ShowTableAllProjectsMembersWithARole (Prj,Prj_RolesToShow[NumRoleToShow]);
|
||||
|
||||
/***** Write rows of data of this project *****/
|
||||
/* Description of the project */
|
||||
Prj_ShowTableAllProjectsTxtField (Prj,Prj->Description);
|
||||
|
@ -773,22 +833,6 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
|
|||
/* Link to view more info about the project */
|
||||
Prj_ShowTableAllProjectsURL (Prj);
|
||||
|
||||
/* Preassigned? */
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">"
|
||||
"%s"
|
||||
"</td>",
|
||||
Gbl.RowEvenOdd,
|
||||
Prj->Hidden ? "DAT_LIGHT" :
|
||||
"DAT",
|
||||
(Prj->Preassigned == Prj_PREASSIGNED) ? Txt_Yes :
|
||||
Txt_No);
|
||||
|
||||
/* Project members */
|
||||
for (NumRoleToShow = 0;
|
||||
NumRoleToShow < Brw_NUM_ROLES_TO_SHOW;
|
||||
NumRoleToShow++)
|
||||
Prj_ShowTableAllProjectsMembersWithARole (Prj,Prj_RolesToShow[NumRoleToShow]);
|
||||
|
||||
/***** End row *****/
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
|
||||
|
@ -855,6 +899,7 @@ static void Prj_ShowTableAllProjectsDepartment (const struct Project *Prj)
|
|||
|
||||
static void Prj_ShowOneProjectTxtField (struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView,
|
||||
const char *id,unsigned UniqueId,
|
||||
const char *Label,char *TxtField)
|
||||
{
|
||||
/***** Change format *****/
|
||||
|
@ -864,8 +909,9 @@ static void Prj_ShowOneProjectTxtField (struct Project *Prj,
|
|||
Str_InsertLinks (TxtField,Cns_MAX_BYTES_TEXT,60); // Insert links
|
||||
|
||||
/***** Write row with label and text *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td colspan=\"3\" class=\"RIGHT_TOP");
|
||||
fprintf (Gbl.F.Out,"<tr id=\"%s%u\" style=\"display:none;\">"
|
||||
"<td colspan=\"3\" class=\"RIGHT_TOP",
|
||||
id,UniqueId);
|
||||
if (ProjectView == Prj_LIST_PROJECTS)
|
||||
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
|
||||
fprintf (Gbl.F.Out," %s\">"
|
||||
|
@ -908,7 +954,8 @@ static void Prj_ShowTableAllProjectsTxtField (struct Project *Prj,
|
|||
/*****************************************************************************/
|
||||
|
||||
static void Prj_ShowOneProjectURL (const struct Project *Prj,
|
||||
Prj_ProjectView_t ProjectView)
|
||||
Prj_ProjectView_t ProjectView,
|
||||
const char *id,unsigned UniqueId)
|
||||
{
|
||||
extern const char *Txt_URL;
|
||||
bool PutLink;
|
||||
|
@ -916,8 +963,9 @@ static void Prj_ShowOneProjectURL (const struct Project *Prj,
|
|||
/***** Write row with label and text *****/
|
||||
PutLink = (ProjectView == Prj_LIST_PROJECTS && Prj->URL[0]);
|
||||
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td colspan=\"3\" class=\"RIGHT_TOP");
|
||||
fprintf (Gbl.F.Out,"<tr id=\"%s%u\" style=\"display:none;\">"
|
||||
"<td colspan=\"3\" class=\"RIGHT_TOP",
|
||||
id,UniqueId);
|
||||
if (ProjectView == Prj_LIST_PROJECTS)
|
||||
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
|
||||
fprintf (Gbl.F.Out," %s\">"
|
||||
|
@ -2178,11 +2226,11 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
|
|||
extern const char *Txt_Data;
|
||||
extern const char *Txt_Title;
|
||||
extern const char *Txt_Department;
|
||||
extern const char *Txt_Preassigned_QUESTION;
|
||||
extern const char *Txt_Description;
|
||||
extern const char *Txt_Required_knowledge;
|
||||
extern const char *Txt_Required_materials;
|
||||
extern const char *Txt_URL;
|
||||
extern const char *Txt_Preassigned_QUESTION;
|
||||
extern const char *Txt_No;
|
||||
extern const char *Txt_Yes;
|
||||
extern const char *Txt_Create_project;
|
||||
|
@ -2260,6 +2308,30 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
|
|||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
||||
/* Preassigned? */
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"%s RIGHT_MIDDLE\">"
|
||||
"%s:"
|
||||
"</td>"
|
||||
"<td class=\"LEFT_MIDDLE\">"
|
||||
"<select name=\"Preassigned\">",
|
||||
The_ClassForm[Gbl.Prefs.Theme],
|
||||
Txt_Preassigned_QUESTION);
|
||||
|
||||
fprintf (Gbl.F.Out,"<option value=\"N\"");
|
||||
if (Prj->Preassigned == Prj_NOT_PREASSIGNED)
|
||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out,">%s</option>",Txt_No);
|
||||
|
||||
fprintf (Gbl.F.Out,"<option value=\"Y\"");
|
||||
if (Prj->Preassigned == Prj_PREASSIGNED)
|
||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out,">%s</option>",Txt_Yes);
|
||||
|
||||
fprintf (Gbl.F.Out,"</select>"
|
||||
"</td>"
|
||||
"</tr>");
|
||||
|
||||
/* Description of the project */
|
||||
Prj_EditOneProjectTxtArea ("Description",Txt_Description,
|
||||
Prj->Description,12);
|
||||
|
@ -2286,30 +2358,6 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
|
|||
Txt_URL,
|
||||
Cns_MAX_CHARS_WWW,Prj->URL);
|
||||
|
||||
/* Preassigned? */
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"%s RIGHT_MIDDLE\">"
|
||||
"%s:"
|
||||
"</td>"
|
||||
"<td class=\"LEFT_MIDDLE\">"
|
||||
"<select name=\"Preassigned\">",
|
||||
The_ClassForm[Gbl.Prefs.Theme],
|
||||
Txt_Preassigned_QUESTION);
|
||||
|
||||
fprintf (Gbl.F.Out,"<option value=\"N\"");
|
||||
if (Prj->Preassigned == Prj_NOT_PREASSIGNED)
|
||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out,">%s</option>",Txt_No);
|
||||
|
||||
fprintf (Gbl.F.Out,"<option value=\"Y\"");
|
||||
if (Prj->Preassigned == Prj_PREASSIGNED)
|
||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||
fprintf (Gbl.F.Out,">%s</option>",Txt_Yes);
|
||||
|
||||
fprintf (Gbl.F.Out,"</select>"
|
||||
"</td>"
|
||||
"</tr>");
|
||||
|
||||
/* End table, send button and end box */
|
||||
if (ItsANewProject)
|
||||
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_project);
|
||||
|
@ -2441,6 +2489,10 @@ void Prj_RecFormProject (void)
|
|||
/* Get department */
|
||||
Prj.DptCod = Par_GetParToLong ("DptCod");
|
||||
|
||||
/* Get whether the project is preassigned */
|
||||
Prj.Preassigned = (Par_GetParToBool ("Preassigned")) ? Prj_PREASSIGNED :
|
||||
Prj_NOT_PREASSIGNED;
|
||||
|
||||
/* Get project description, required knowledge and required materials */
|
||||
Par_GetParToHTML ("Description",Prj.Description,Cns_MAX_BYTES_TEXT); // Store in HTML format (not rigorous)
|
||||
Par_GetParToHTML ("Knowledge" ,Prj.Knowledge ,Cns_MAX_BYTES_TEXT); // Store in HTML format (not rigorous)
|
||||
|
@ -2449,10 +2501,6 @@ void Prj_RecFormProject (void)
|
|||
/* Get degree WWW */
|
||||
Par_GetParToText ("URL",Prj.URL,Cns_MAX_BYTES_WWW);
|
||||
|
||||
/* Get whether the project is preassigned */
|
||||
Prj.Preassigned = (Par_GetParToBool ("Preassigned")) ? Prj_PREASSIGNED :
|
||||
Prj_NOT_PREASSIGNED;
|
||||
|
||||
/***** Adjust dates *****/
|
||||
if (Prj.TimeUTC[Dat_START_TIME] == 0)
|
||||
Prj.TimeUTC[Dat_START_TIME] = Gbl.StartExecutionTimeUTC;
|
||||
|
|
23
swad_text.c
23
swad_text.c
|
@ -38056,6 +38056,27 @@ const char *Txt_See_full_notice =
|
|||
"Veja aviso completo";
|
||||
#endif
|
||||
|
||||
const char *Txt_See_less =
|
||||
#if L==1
|
||||
"Veure menys";
|
||||
#elif L==2
|
||||
"Zeige weniger";
|
||||
#elif L==3
|
||||
"See less";
|
||||
#elif L==4
|
||||
"Ver menos";
|
||||
#elif L==5
|
||||
"Voir moins";
|
||||
#elif L==6
|
||||
"Ver menos"; // Okoteve traducción
|
||||
#elif L==7
|
||||
"Vedere meno";
|
||||
#elif L==8
|
||||
"Zobacz mniej";
|
||||
#elif L==9
|
||||
"Veja menos";
|
||||
#endif
|
||||
|
||||
const char *Txt_See_message =
|
||||
#if L==1
|
||||
"Veure missatge";
|
||||
|
@ -38102,7 +38123,7 @@ const char *Txt_See_more =
|
|||
#if L==1
|
||||
"Veure més";
|
||||
#elif L==2
|
||||
"Weitere";
|
||||
"Zeige mehr";
|
||||
#elif L==3
|
||||
"See more";
|
||||
#elif L==4
|
||||
|
|
Loading…
Reference in New Issue