mirror of https://github.com/acanas/swad-core.git
Version 16.77
This commit is contained in:
parent
6add447c4e
commit
c899d13400
182
swad_action.c
182
swad_action.c
|
@ -81,7 +81,7 @@ extern struct Globals Gbl;
|
|||
/************************ Internal global variables **************************/
|
||||
/*****************************************************************************/
|
||||
/*
|
||||
1230 actions in one CGI:
|
||||
1232 actions in one CGI:
|
||||
0. ActAll Any action (used for statistics)
|
||||
1. ActUnk Unknown action
|
||||
2. ActHom Show home menu
|
||||
|
@ -1328,7 +1328,7 @@ Profile:
|
|||
1141. ActMyCrs Select one of my courses
|
||||
1142. ActSeeMyTT Show the timetable of all courses of the logged user
|
||||
1143. ActSeeMyAgd Show my agenda (personal organizer)
|
||||
1144. ActSeeMyLoc Show my location
|
||||
1144. ActSeeMyLoc Show my locations
|
||||
1145. ActFrmMyAcc Show form to the creation or change of user's account
|
||||
1146. ActReqEdiRecCom Request the edition of the record with the personal data of the user
|
||||
1147. ActEdiPrf Show forms to edit preferences
|
||||
|
@ -1344,89 +1344,91 @@ Profile:
|
|||
1155. ActAnnSee Mark announcement as seen
|
||||
1156. ActChgMyRol Change type of logged user
|
||||
|
||||
1157. ActEdiLoc Edit my locations
|
||||
1158. ActNewLoc Request the creation of a location
|
||||
1159. ActRemLoc Remove a location
|
||||
1160. ActChgLocStrDat Change start date of a location
|
||||
1161. ActChgLocEndDat Change end date of a location
|
||||
1162. ActRenLoc Rename a location
|
||||
1157. ActFrmNewLoc Form to create a new location
|
||||
1158. ActEdiOneLoc Edit one location
|
||||
1159. ActNewLoc Create new location
|
||||
1160. ActChgLoc Modify data of an existing location
|
||||
1161. ActReqRemLoc Request the removal of a location
|
||||
1162. ActRemLoc Remove location
|
||||
1163. ActHidLoc Hide location
|
||||
1164. ActShoLoc Show location
|
||||
|
||||
1163. ActChkUsrAcc Check if already exists a new account without password associated to a ID
|
||||
1164. ActCreUsrAcc Create new user account
|
||||
1165. ActRemID_Me Remove one of my user's IDs
|
||||
1166. ActNewIDMe Create a new user's ID for me
|
||||
1167. ActRemOldNic Remove one of my old nicknames
|
||||
1168. ActChgNic Change my nickname
|
||||
1169. ActRemMaiMe Remove one of my old emails
|
||||
1170. ActNewMaiMe Change my email address
|
||||
1171. ActCnfMai Confirm email address
|
||||
1172. ActFrmChgMyPwd Show form to the change of the password
|
||||
1173. ActChgPwd Change the password
|
||||
1174. ActReqRemMyAcc Request the removal of my account
|
||||
1175. ActRemMyAcc Remove my account
|
||||
1165. ActChkUsrAcc Check if already exists a new account without password associated to a ID
|
||||
1166. ActCreUsrAcc Create new user account
|
||||
1167. ActRemID_Me Remove one of my user's IDs
|
||||
1168. ActNewIDMe Create a new user's ID for me
|
||||
1169. ActRemOldNic Remove one of my old nicknames
|
||||
1170. ActChgNic Change my nickname
|
||||
1171. ActRemMaiMe Remove one of my old emails
|
||||
1172. ActNewMaiMe Change my email address
|
||||
1173. ActCnfMai Confirm email address
|
||||
1174. ActFrmChgMyPwd Show form to the change of the password
|
||||
1175. ActChgPwd Change the password
|
||||
1176. ActReqRemMyAcc Request the removal of my account
|
||||
1177. ActRemMyAcc Remove my account
|
||||
|
||||
1176. ActChgMyData Update my personal data
|
||||
1178. ActChgMyData Update my personal data
|
||||
|
||||
1177. ActReqMyPho Show form to send my photo
|
||||
1178. ActDetMyPho Receive my photo and detect faces on it
|
||||
1179. ActUpdMyPho Update my photo
|
||||
1180. ActReqRemMyPho Request the removal of my photo
|
||||
1181. ActRemMyPho Remove my photo
|
||||
1179. ActReqMyPho Show form to send my photo
|
||||
1180. ActDetMyPho Receive my photo and detect faces on it
|
||||
1181. ActUpdMyPho Update my photo
|
||||
1182. ActReqRemMyPho Request the removal of my photo
|
||||
1183. ActRemMyPho Remove my photo
|
||||
|
||||
1182. ActEdiPri Edit my privacy
|
||||
1183. ActChgPriPho Change privacy of my photo
|
||||
1184. ActChgPriPrf Change privacy of my public profile
|
||||
1184. ActEdiPri Edit my privacy
|
||||
1185. ActChgPriPho Change privacy of my photo
|
||||
1186. ActChgPriPrf Change privacy of my public profile
|
||||
|
||||
1185. ActReqEdiMyIns Request the edition of my institution, centre and department
|
||||
1186. ActChgCtyMyIns Change the country of my institution
|
||||
1187. ActChgMyIns Change my institution
|
||||
1188. ActChgMyCtr Change my centre
|
||||
1189. ActChgMyDpt Change my department
|
||||
1190. ActChgMyOff Change my office
|
||||
1191. ActChgMyOffPho Change my office phone
|
||||
1187. ActReqEdiMyIns Request the edition of my institution, centre and department
|
||||
1188. ActChgCtyMyIns Change the country of my institution
|
||||
1189. ActChgMyIns Change my institution
|
||||
1190. ActChgMyCtr Change my centre
|
||||
1191. ActChgMyDpt Change my department
|
||||
1192. ActChgMyOff Change my office
|
||||
1193. ActChgMyOffPho Change my office phone
|
||||
|
||||
1192. ActReqEdiMyNet Request the edition of my social networks
|
||||
1193. ActChgMyNet Change my web and social networks
|
||||
1194. ActReqEdiMyNet Request the edition of my social networks
|
||||
1195. ActChgMyNet Change my web and social networks
|
||||
|
||||
1194. ActChgThe Change theme
|
||||
1195. ActReqChgLan Ask if change language
|
||||
1196. ActChgLan Change language
|
||||
1197. ActChg1stDay Change first day of the week
|
||||
1198. ActChgCol Change side columns
|
||||
1119. ActHidLftCol Hide left side column
|
||||
1200. ActHidRgtCol Hide right side column
|
||||
1201. ActShoLftCol Show left side column
|
||||
1202. ActShoRgtCol Show right side column
|
||||
1203. ActChgIco Change icon set
|
||||
1204. ActChgMnu Change menu
|
||||
1205. ActChgNtfPrf Change whether to notify by email new messages
|
||||
1206. ActPrnUsrQR Show my QR code ready to print
|
||||
1196. ActChgThe Change theme
|
||||
1197. ActReqChgLan Ask if change language
|
||||
1198. ActChgLan Change language
|
||||
1199. ActChg1stDay Change first day of the week
|
||||
1200. ActChgCol Change side columns
|
||||
1201. ActHidLftCol Hide left side column
|
||||
1202. ActHidRgtCol Hide right side column
|
||||
1203. ActShoLftCol Show left side column
|
||||
1204. ActShoRgtCol Show right side column
|
||||
1205. ActChgIco Change icon set
|
||||
1206. ActChgMnu Change menu
|
||||
1207. ActChgNtfPrf Change whether to notify by email new messages
|
||||
1208. ActPrnUsrQR Show my QR code ready to print
|
||||
|
||||
1207. ActPrnMyTT Show the timetable listo to impresión of all my courses
|
||||
1208. ActEdiTut Edit the timetable of tutorías
|
||||
1209. ActChgTut Modify the timetable of tutorías
|
||||
1210. ActChgMyTT1stDay Change first day of week and show timetable of the course
|
||||
1209. ActPrnMyTT Show the timetable listo to impresión of all my courses
|
||||
1210. ActEdiTut Edit the timetable of tutorías
|
||||
1211. ActChgTut Modify the timetable of tutorías
|
||||
1212. ActChgMyTT1stDay Change first day of week and show timetable of the course
|
||||
|
||||
1211. ActReqRemFilBrf Request removal of a file of the briefcase
|
||||
1212. ActRemFilBrf Remove a file of the briefcase
|
||||
1213. ActRemFolBrf Remove a folder empty of the briefcase
|
||||
1214. ActCopBrf Set source of copy in the briefcase
|
||||
1215. ActPasBrf Paste a folder or file in the briefcase
|
||||
1216. ActRemTreBrf Remove a folder no empty of the briefcase
|
||||
1217. ActFrmCreBrf Form to crear a folder or file in the briefcase
|
||||
1218. ActCreFolBrf Create a new folder in the briefcase
|
||||
1219. ActCreLnkBrf Create a new link in the briefcase
|
||||
1220. ActRenFolBrf Rename a folder of the briefcase
|
||||
1221. ActRcvFilBrfDZ Receive a file in the briefcase using Dropzone.js
|
||||
1222. ActRcvFilBrfCla Receive a file in the briefcase using the classic way
|
||||
1223. ActExpBrf Expand a folder in briefcase
|
||||
1224. ActConBrf Contract a folder in briefcase
|
||||
1225. ActZIPBrf Compress a folder in briefcase
|
||||
1226. ActReqDatBrf Ask for metadata of a file in the briefcase
|
||||
1227. ActChgDatBrf Change metadata of a file in the briefcase
|
||||
1228. ActDowBrf Download a file in the briefcase
|
||||
1229. ActReqRemOldBrf Ask for removing old files in the briefcase
|
||||
1230. ActRemOldBrf Remove old files in the briefcase
|
||||
1213. ActReqRemFilBrf Request removal of a file of the briefcase
|
||||
1214. ActRemFilBrf Remove a file of the briefcase
|
||||
1215. ActRemFolBrf Remove a folder empty of the briefcase
|
||||
1216. ActCopBrf Set source of copy in the briefcase
|
||||
1217. ActPasBrf Paste a folder or file in the briefcase
|
||||
1218. ActRemTreBrf Remove a folder no empty of the briefcase
|
||||
1219. ActFrmCreBrf Form to crear a folder or file in the briefcase
|
||||
1220. ActCreFolBrf Create a new folder in the briefcase
|
||||
1221. ActCreLnkBrf Create a new link in the briefcase
|
||||
1222. ActRenFolBrf Rename a folder of the briefcase
|
||||
1223. ActRcvFilBrfDZ Receive a file in the briefcase using Dropzone.js
|
||||
1224. ActRcvFilBrfCla Receive a file in the briefcase using the classic way
|
||||
1225. ActExpBrf Expand a folder in briefcase
|
||||
1226. ActConBrf Contract a folder in briefcase
|
||||
1227. ActZIPBrf Compress a folder in briefcase
|
||||
1228. ActReqDatBrf Ask for metadata of a file in the briefcase
|
||||
1229. ActChgDatBrf Change metadata of a file in the briefcase
|
||||
1230. ActDowBrf Download a file in the briefcase
|
||||
1231. ActReqRemOldBrf Ask for removing old files in the briefcase
|
||||
1232. ActRemOldBrf Remove old files in the briefcase
|
||||
*/
|
||||
|
||||
struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||
|
@ -2792,12 +2794,14 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
/* ActAnnSee */{1234,-1,TabUnk,ActFrmRolSes ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ann_MarkAnnouncementAsSeen ,NULL},
|
||||
/* ActChgMyRol */{ 589,-1,TabUnk,ActFrmRolSes ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,Rol_ChangeMyRole ,Usr_ShowFormsLogoutAndRole ,NULL},
|
||||
|
||||
/* ActEdiLoc */{1603,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_EditLocations ,NULL},
|
||||
/* ActNewLoc */{1604,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_RecFormNewLocation ,NULL},
|
||||
/* ActRemLoc */{1605,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_RemoveLocation ,NULL},
|
||||
/* ActChgLocStrDat */{1606,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_ChangeStartDate ,NULL},
|
||||
/* ActChgLocEndDat */{1607,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_ChangeEndDate ,NULL},
|
||||
/* ActRenLoc */{1608,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x100,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_RenameLocation ,NULL},
|
||||
/* ActFrmNewLoc */{1603,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_RequestCreatOrEditLoc ,NULL},
|
||||
/* ActEdiOneLoc */{1604,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_RequestCreatOrEditLoc ,NULL},
|
||||
/* ActNewLoc */{1605,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_RecFormLocation ,NULL},
|
||||
/* ActChgLoc */{1606,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_RecFormLocation ,NULL},
|
||||
/* ActReqRemLoc */{1607,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_AskRemLocation ,NULL},
|
||||
/* ActRemLoc */{1608,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_RemoveLocation ,NULL},
|
||||
/* ActHidLoc */{1609,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_HideLocation ,NULL},
|
||||
/* ActShoLoc */{1610,-1,TabUnk,ActSeeMyLoc ,0x100,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Loc_ShowLocation ,NULL},
|
||||
|
||||
/* ActChkUsrAcc */{1584,-1,TabUnk,ActFrmMyAcc ,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Acc_CheckIfEmptyAccountExists ,NULL},
|
||||
/* ActCreUsrAcc */{1163,-1,TabUnk,ActFrmMyAcc ,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Acc_AfterCreationNewAccount ,NULL},
|
||||
|
@ -4491,12 +4495,14 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
|
|||
ActRenCrsFulCfg, // #1600
|
||||
ActRenCrsShoCfg, // #1601
|
||||
ActSeeMyLoc, // #1602
|
||||
ActEdiLoc, // #1603
|
||||
ActNewLoc, // #1604
|
||||
ActRemLoc, // #1605
|
||||
ActChgLocStrDat, // #1606
|
||||
ActChgLocEndDat, // #1607
|
||||
ActRenLoc, // #1608
|
||||
ActFrmNewLoc, // #1603
|
||||
ActEdiOneLoc, // #1604
|
||||
ActNewLoc, // #1605
|
||||
ActChgLoc, // #1606
|
||||
ActReqRemLoc, // #1607
|
||||
ActRemLoc, // #1608
|
||||
ActHidLoc, // #1609
|
||||
ActShoLoc, // #1610
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
154
swad_action.h
154
swad_action.h
|
@ -55,9 +55,9 @@ typedef enum
|
|||
|
||||
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
||||
|
||||
#define Act_NUM_ACTIONS (1+9+51+14+93+73+70+249+186+155+172+36+31+92)
|
||||
#define Act_NUM_ACTIONS (1+9+51+14+93+73+70+249+186+155+172+36+31+94)
|
||||
|
||||
#define Act_MAX_ACTION_COD 1608
|
||||
#define Act_MAX_ACTION_COD 1610
|
||||
|
||||
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 11
|
||||
|
||||
|
@ -1381,90 +1381,92 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
|
|||
#define ActAutUsrChgLan (ActSeeMyUsgRep+16)
|
||||
#define ActAnnSee (ActSeeMyUsgRep+17)
|
||||
#define ActChgMyRol (ActSeeMyUsgRep+18)
|
||||
#define ActEdiLoc (ActSeeMyUsgRep+19)
|
||||
#define ActNewLoc (ActSeeMyUsgRep+20)
|
||||
#define ActRemLoc (ActSeeMyUsgRep+21)
|
||||
#define ActChgLocStrDat (ActSeeMyUsgRep+22)
|
||||
#define ActChgLocEndDat (ActSeeMyUsgRep+23)
|
||||
#define ActRenLoc (ActSeeMyUsgRep+24)
|
||||
#define ActChkUsrAcc (ActSeeMyUsgRep+25)
|
||||
#define ActCreUsrAcc (ActSeeMyUsgRep+26)
|
||||
#define ActRemID_Me (ActSeeMyUsgRep+27)
|
||||
#define ActNewIDMe (ActSeeMyUsgRep+28)
|
||||
#define ActRemOldNic (ActSeeMyUsgRep+29)
|
||||
#define ActChgNic (ActSeeMyUsgRep+30)
|
||||
#define ActRemMaiMe (ActSeeMyUsgRep+31)
|
||||
#define ActNewMaiMe (ActSeeMyUsgRep+32)
|
||||
#define ActCnfMai (ActSeeMyUsgRep+33)
|
||||
#define ActFrmChgMyPwd (ActSeeMyUsgRep+34)
|
||||
#define ActChgPwd (ActSeeMyUsgRep+35)
|
||||
#define ActReqRemMyAcc (ActSeeMyUsgRep+36)
|
||||
#define ActRemMyAcc (ActSeeMyUsgRep+37)
|
||||
#define ActFrmNewLoc (ActSeeMyUsgRep+19)
|
||||
#define ActEdiOneLoc (ActSeeMyUsgRep+20)
|
||||
#define ActNewLoc (ActSeeMyUsgRep+21)
|
||||
#define ActChgLoc (ActSeeMyUsgRep+22)
|
||||
#define ActReqRemLoc (ActSeeMyUsgRep+23)
|
||||
#define ActRemLoc (ActSeeMyUsgRep+24)
|
||||
#define ActHidLoc (ActSeeMyUsgRep+25)
|
||||
#define ActShoLoc (ActSeeMyUsgRep+26)
|
||||
#define ActChkUsrAcc (ActSeeMyUsgRep+27)
|
||||
#define ActCreUsrAcc (ActSeeMyUsgRep+28)
|
||||
#define ActRemID_Me (ActSeeMyUsgRep+29)
|
||||
#define ActNewIDMe (ActSeeMyUsgRep+30)
|
||||
#define ActRemOldNic (ActSeeMyUsgRep+31)
|
||||
#define ActChgNic (ActSeeMyUsgRep+32)
|
||||
#define ActRemMaiMe (ActSeeMyUsgRep+33)
|
||||
#define ActNewMaiMe (ActSeeMyUsgRep+34)
|
||||
#define ActCnfMai (ActSeeMyUsgRep+35)
|
||||
#define ActFrmChgMyPwd (ActSeeMyUsgRep+36)
|
||||
#define ActChgPwd (ActSeeMyUsgRep+37)
|
||||
#define ActReqRemMyAcc (ActSeeMyUsgRep+38)
|
||||
#define ActRemMyAcc (ActSeeMyUsgRep+39)
|
||||
|
||||
#define ActChgMyData (ActSeeMyUsgRep+38)
|
||||
#define ActChgMyData (ActSeeMyUsgRep+40)
|
||||
|
||||
#define ActReqMyPho (ActSeeMyUsgRep+39)
|
||||
#define ActDetMyPho (ActSeeMyUsgRep+40)
|
||||
#define ActUpdMyPho (ActSeeMyUsgRep+41)
|
||||
#define ActReqRemMyPho (ActSeeMyUsgRep+42)
|
||||
#define ActRemMyPho (ActSeeMyUsgRep+43)
|
||||
#define ActReqMyPho (ActSeeMyUsgRep+41)
|
||||
#define ActDetMyPho (ActSeeMyUsgRep+42)
|
||||
#define ActUpdMyPho (ActSeeMyUsgRep+43)
|
||||
#define ActReqRemMyPho (ActSeeMyUsgRep+44)
|
||||
#define ActRemMyPho (ActSeeMyUsgRep+45)
|
||||
|
||||
#define ActEdiPri (ActSeeMyUsgRep+44)
|
||||
#define ActChgPriPho (ActSeeMyUsgRep+45)
|
||||
#define ActChgPriPrf (ActSeeMyUsgRep+46)
|
||||
#define ActEdiPri (ActSeeMyUsgRep+46)
|
||||
#define ActChgPriPho (ActSeeMyUsgRep+47)
|
||||
#define ActChgPriPrf (ActSeeMyUsgRep+48)
|
||||
|
||||
#define ActReqEdiMyIns (ActSeeMyUsgRep+47)
|
||||
#define ActChgCtyMyIns (ActSeeMyUsgRep+48)
|
||||
#define ActChgMyIns (ActSeeMyUsgRep+49)
|
||||
#define ActChgMyCtr (ActSeeMyUsgRep+50)
|
||||
#define ActChgMyDpt (ActSeeMyUsgRep+51)
|
||||
#define ActChgMyOff (ActSeeMyUsgRep+52)
|
||||
#define ActChgMyOffPho (ActSeeMyUsgRep+53)
|
||||
#define ActReqEdiMyIns (ActSeeMyUsgRep+49)
|
||||
#define ActChgCtyMyIns (ActSeeMyUsgRep+50)
|
||||
#define ActChgMyIns (ActSeeMyUsgRep+51)
|
||||
#define ActChgMyCtr (ActSeeMyUsgRep+52)
|
||||
#define ActChgMyDpt (ActSeeMyUsgRep+53)
|
||||
#define ActChgMyOff (ActSeeMyUsgRep+54)
|
||||
#define ActChgMyOffPho (ActSeeMyUsgRep+55)
|
||||
|
||||
#define ActReqEdiMyNet (ActSeeMyUsgRep+54)
|
||||
#define ActChgMyNet (ActSeeMyUsgRep+55)
|
||||
#define ActReqEdiMyNet (ActSeeMyUsgRep+56)
|
||||
#define ActChgMyNet (ActSeeMyUsgRep+57)
|
||||
|
||||
#define ActChgThe (ActSeeMyUsgRep+56)
|
||||
#define ActReqChgLan (ActSeeMyUsgRep+57)
|
||||
#define ActChgLan (ActSeeMyUsgRep+58)
|
||||
#define ActChg1stDay (ActSeeMyUsgRep+59)
|
||||
#define ActChgCol (ActSeeMyUsgRep+60)
|
||||
#define ActHidLftCol (ActSeeMyUsgRep+61)
|
||||
#define ActHidRgtCol (ActSeeMyUsgRep+62)
|
||||
#define ActShoLftCol (ActSeeMyUsgRep+63)
|
||||
#define ActShoRgtCol (ActSeeMyUsgRep+64)
|
||||
#define ActChgIco (ActSeeMyUsgRep+65)
|
||||
#define ActChgMnu (ActSeeMyUsgRep+66)
|
||||
#define ActChgNtfPrf (ActSeeMyUsgRep+67)
|
||||
#define ActChgThe (ActSeeMyUsgRep+58)
|
||||
#define ActReqChgLan (ActSeeMyUsgRep+59)
|
||||
#define ActChgLan (ActSeeMyUsgRep+60)
|
||||
#define ActChg1stDay (ActSeeMyUsgRep+61)
|
||||
#define ActChgCol (ActSeeMyUsgRep+62)
|
||||
#define ActHidLftCol (ActSeeMyUsgRep+63)
|
||||
#define ActHidRgtCol (ActSeeMyUsgRep+64)
|
||||
#define ActShoLftCol (ActSeeMyUsgRep+65)
|
||||
#define ActShoRgtCol (ActSeeMyUsgRep+66)
|
||||
#define ActChgIco (ActSeeMyUsgRep+67)
|
||||
#define ActChgMnu (ActSeeMyUsgRep+68)
|
||||
#define ActChgNtfPrf (ActSeeMyUsgRep+69)
|
||||
|
||||
#define ActPrnUsrQR (ActSeeMyUsgRep+68)
|
||||
#define ActPrnUsrQR (ActSeeMyUsgRep+70)
|
||||
|
||||
#define ActPrnMyTT (ActSeeMyUsgRep+69)
|
||||
#define ActEdiTut (ActSeeMyUsgRep+70)
|
||||
#define ActChgTut (ActSeeMyUsgRep+71)
|
||||
#define ActChgMyTT1stDay (ActSeeMyUsgRep+72)
|
||||
#define ActPrnMyTT (ActSeeMyUsgRep+71)
|
||||
#define ActEdiTut (ActSeeMyUsgRep+72)
|
||||
#define ActChgTut (ActSeeMyUsgRep+73)
|
||||
#define ActChgMyTT1stDay (ActSeeMyUsgRep+74)
|
||||
|
||||
#define ActReqRemFilBrf (ActSeeMyUsgRep+73)
|
||||
#define ActRemFilBrf (ActSeeMyUsgRep+74)
|
||||
#define ActRemFolBrf (ActSeeMyUsgRep+75)
|
||||
#define ActCopBrf (ActSeeMyUsgRep+76)
|
||||
#define ActPasBrf (ActSeeMyUsgRep+77)
|
||||
#define ActRemTreBrf (ActSeeMyUsgRep+78)
|
||||
#define ActFrmCreBrf (ActSeeMyUsgRep+79)
|
||||
#define ActCreFolBrf (ActSeeMyUsgRep+80)
|
||||
#define ActCreLnkBrf (ActSeeMyUsgRep+81)
|
||||
#define ActRenFolBrf (ActSeeMyUsgRep+82)
|
||||
#define ActRcvFilBrfDZ (ActSeeMyUsgRep+83)
|
||||
#define ActRcvFilBrfCla (ActSeeMyUsgRep+84)
|
||||
#define ActExpBrf (ActSeeMyUsgRep+85)
|
||||
#define ActConBrf (ActSeeMyUsgRep+86)
|
||||
#define ActZIPBrf (ActSeeMyUsgRep+87)
|
||||
#define ActReqDatBrf (ActSeeMyUsgRep+88)
|
||||
#define ActChgDatBrf (ActSeeMyUsgRep+89)
|
||||
#define ActDowBrf (ActSeeMyUsgRep+90)
|
||||
#define ActReqRemFilBrf (ActSeeMyUsgRep+75)
|
||||
#define ActRemFilBrf (ActSeeMyUsgRep+76)
|
||||
#define ActRemFolBrf (ActSeeMyUsgRep+77)
|
||||
#define ActCopBrf (ActSeeMyUsgRep+78)
|
||||
#define ActPasBrf (ActSeeMyUsgRep+79)
|
||||
#define ActRemTreBrf (ActSeeMyUsgRep+80)
|
||||
#define ActFrmCreBrf (ActSeeMyUsgRep+81)
|
||||
#define ActCreFolBrf (ActSeeMyUsgRep+82)
|
||||
#define ActCreLnkBrf (ActSeeMyUsgRep+83)
|
||||
#define ActRenFolBrf (ActSeeMyUsgRep+84)
|
||||
#define ActRcvFilBrfDZ (ActSeeMyUsgRep+85)
|
||||
#define ActRcvFilBrfCla (ActSeeMyUsgRep+86)
|
||||
#define ActExpBrf (ActSeeMyUsgRep+87)
|
||||
#define ActConBrf (ActSeeMyUsgRep+88)
|
||||
#define ActZIPBrf (ActSeeMyUsgRep+89)
|
||||
#define ActReqDatBrf (ActSeeMyUsgRep+90)
|
||||
#define ActChgDatBrf (ActSeeMyUsgRep+91)
|
||||
#define ActDowBrf (ActSeeMyUsgRep+92)
|
||||
|
||||
#define ActReqRemOldBrf (ActSeeMyUsgRep+91)
|
||||
#define ActRemOldBrf (ActSeeMyUsgRep+92)
|
||||
#define ActReqRemOldBrf (ActSeeMyUsgRep+93)
|
||||
#define ActRemOldBrf (ActSeeMyUsgRep+94)
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************************** Public types *******************************/
|
||||
|
|
|
@ -172,17 +172,23 @@
|
|||
|
||||
// TODO: List only confirmed emails to send a message with MESSAGES > Email ?
|
||||
|
||||
// TODO: When activating folders in groups, go to section for that type of group
|
||||
// TODO: I can not remove a folder inside assignments (see swad.ugr.es -> EC -> assignment acanas)
|
||||
// TODO: When teacher sees "No hay estudiantes", put a button to add students
|
||||
// TODO: When admin sees "No hay profesores", put a button to add teachers
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.76 (2016-11-29)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.77 (2016-11-29)"
|
||||
#define CSS_FILE "swad16.69.css"
|
||||
#define JS_FILE "swad16.46.1.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 16.77: Nov 29, 2016 Changes in location. Not finished. (209483 lines)
|
||||
Version 16.76: Nov 29, 2016 New form to create location. Not finished. (208936 lines)
|
||||
8 changes necessary in database:
|
||||
CREATE TABLE IF NOT EXISTS locations (LocCod INT NOT NULL AUTO_INCREMENT,StartDate DATE NOT NULL,EndDate DATE NOT NULL,Location VARCHAR(255) NOT NULL,UNIQUE INDEX(LocCod));
|
||||
|
|
|
@ -357,11 +357,11 @@ struct Globals
|
|||
} MyCrss;
|
||||
struct
|
||||
{
|
||||
bool LstIsRead; // Is the list already read from database, or it needs to be read?
|
||||
unsigned Num; // Number of locations
|
||||
struct Location *Lst; // List of locations
|
||||
struct Location EditingLoc;
|
||||
Loc_OrderType_t SelectedOrderType;
|
||||
bool LstIsRead; // Is the list already read from database, or it needs to be read?
|
||||
unsigned Num; // Number of locations
|
||||
long *LstLocCods; // List of location codes
|
||||
Loc_Order_t SelectedOrderType;
|
||||
long LocCodToEdit; // Used as parameter in contextual links
|
||||
} Locs;
|
||||
Usr_ShowUsrsType_t ListType; // My preference about user's list type
|
||||
unsigned NumFollowers; // Number of users who follow me
|
||||
|
|
|
@ -227,8 +227,9 @@ const char *Hlp_PROFILE_Courses = WIKI "PROFILE.Courses";
|
|||
|
||||
const char *Hlp_PROFILE_Timetable = WIKI "PROFILE.Timetable";
|
||||
|
||||
const char *Hlp_PROFILE_Location = WIKI "PROFILE.Location";
|
||||
const char *Hlp_PROFILE_Location_edit = WIKI "PROFILE.Location#edit";
|
||||
const char *Hlp_PROFILE_Location = WIKI "PROFILE.Location";
|
||||
const char *Hlp_PROFILE_Location_new_location = WIKI "PROFILE.Location#new-location";
|
||||
const char *Hlp_PROFILE_Location_edit_location = WIKI "PROFILE.Location#edit-location";
|
||||
|
||||
const char *Hlp_PROFILE_Record = WIKI "PROFILE.Record";
|
||||
const char *Hlp_PROFILE_Institution = WIKI "PROFILE.Institution";
|
||||
|
|
1710
swad_location.c
1710
swad_location.c
File diff suppressed because it is too large
Load Diff
|
@ -28,33 +28,51 @@
|
|||
/*****************************************************************************/
|
||||
|
||||
#include "swad_date.h"
|
||||
#include "swad_place.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************** Public types and constants ***********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Loc_MAX_LENGTH_LOCATION 255
|
||||
#define Loc_MAX_LENGTH_ASSIGNMENT_TITLE 255
|
||||
|
||||
#define Loc_MAX_LENGTH_FOLDER 32
|
||||
|
||||
#define Loc_NUM_TYPES_SEND_WORK 2
|
||||
typedef enum
|
||||
{
|
||||
LOC_START_DATE,
|
||||
LOC_END_DATE
|
||||
} Loc_StartOrEndDate_t;
|
||||
Loc_DO_NOT_SEND_WORK = 0,
|
||||
Loc_SEND_WORK = 1,
|
||||
} Loc_SendWork_t;
|
||||
|
||||
#define Loc_NUM_DATES 2
|
||||
typedef enum
|
||||
{
|
||||
Loc_START_TIME = 0,
|
||||
Loc_END_TIME = 1,
|
||||
} Loc_StartOrEndTime_t;
|
||||
|
||||
struct Location
|
||||
{
|
||||
long LocCod;
|
||||
struct Date StartDate;
|
||||
struct Date EndDate;
|
||||
char Location[Loc_MAX_LENGTH_LOCATION+1];
|
||||
bool Hidden;
|
||||
long UsrCod;
|
||||
time_t TimeUTC[Loc_NUM_DATES];
|
||||
bool Open;
|
||||
char Title[Loc_MAX_LENGTH_ASSIGNMENT_TITLE+1];
|
||||
Loc_SendWork_t SendWork;
|
||||
char Folder[Loc_MAX_LENGTH_FOLDER+1];
|
||||
bool IBelongToCrsOrGrps; // I can do this location
|
||||
// (it is associated to no groups
|
||||
// or, if associated to groups,
|
||||
// I belong to any of the groups)
|
||||
};
|
||||
|
||||
typedef enum
|
||||
{
|
||||
Loc_ORDER_BY_START_DATE = 0,
|
||||
Loc_ORDER_BY_END_DATE = 1,
|
||||
} Loc_OrderType_t;
|
||||
} Loc_Order_t;
|
||||
|
||||
#define Loc_DEFAULT_ORDER_TYPE Loc_ORDER_BY_START_DATE
|
||||
|
||||
|
@ -63,15 +81,24 @@ typedef enum
|
|||
/*****************************************************************************/
|
||||
|
||||
void Loc_SeeLocations (void);
|
||||
void Loc_EditLocations (void);
|
||||
void Loc_PutHiddenParamLocOrderType (void);
|
||||
void Loc_RequestCreatOrEditLoc (void);
|
||||
void Loc_GetListLocations (void);
|
||||
void Loc_GetDataOfLocationByCod (struct Location *Loc);
|
||||
void Loc_FreeListLocations (void);
|
||||
|
||||
void Loc_GetNotifLocation (char *SummaryStr,char **ContentStr,long LocCod,unsigned MaxChars,bool GetContent);
|
||||
|
||||
long Loc_GetParamLocCod (void);
|
||||
void Loc_AskRemLocation (void);
|
||||
void Loc_RemoveLocation (void);
|
||||
void Loc_ChangeStartDate (void);
|
||||
void Loc_ChangeEndDate (void);
|
||||
void Loc_RenameLocation (void);
|
||||
void Loc_RecFormNewLocation (void);
|
||||
void Loc_HideLocation (void);
|
||||
void Loc_ShowLocation (void);
|
||||
void Loc_RecFormLocation (void);
|
||||
void Loc_RemoveCrsLocations (long CrsCod);
|
||||
unsigned Loc_GetNumLocationsInCrs(long CrsCod);
|
||||
|
||||
unsigned Loc_GetNumCoursesWithLocations (Sco_Scope_t Scope);
|
||||
unsigned Loc_GetNumLocations (Sco_Scope_t Scope,unsigned *NumNotif);
|
||||
|
||||
#endif
|
||||
|
|
208
swad_text.c
208
swad_text.c
|
@ -6842,25 +6842,25 @@ const char *Txt_Created_new_link_X = // Warning: it is very important to include
|
|||
"Criado nova ligação <strong>%s</strong>.";
|
||||
#endif
|
||||
|
||||
const char *Txt_Created_new_location =
|
||||
const char *Txt_Created_new_location_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1
|
||||
"Creada nova ubicació.";
|
||||
"Creada nova ubicació <strong>%s</strong>.";
|
||||
#elif L==2
|
||||
"Neuer Standort eingegeben.";
|
||||
"Neuer Standort <strong>%s</strong> eingegeben.";
|
||||
#elif L==3
|
||||
"Created new location.";
|
||||
"Created new location <strong>%s</strong>.";
|
||||
#elif L==4
|
||||
"Creada nueva ubicación.";
|
||||
"Creada nueva ubicación <strong>%s</strong>.";
|
||||
#elif L==5
|
||||
"Créé nouvel emplacement.";
|
||||
"Créé nouvel emplacement <strong>%s</strong>.";
|
||||
#elif L==6
|
||||
"Creada nueva ubicación."; // Okoteve traducción
|
||||
"Creada nueva ubicación <strong>%s</strong>."; // Okoteve traducción
|
||||
#elif L==7
|
||||
"Creata nuova posizione.";
|
||||
"Creata nuova posizione <strong>%s</strong>.";
|
||||
#elif L==8
|
||||
"Utworzono nowe lokacja.";
|
||||
"Utworzono nowe lokacja <strong>%s</strong>.";
|
||||
#elif L==9
|
||||
"Criado nova localização.";
|
||||
"Criado nova localização <strong>%s</strong>.";
|
||||
#endif
|
||||
|
||||
const char *Txt_Created_new_place_X = // Warning: it is very important to include %s in the following sentences
|
||||
|
@ -17110,25 +17110,25 @@ const char *Txt_Location =
|
|||
"Localização";
|
||||
#endif
|
||||
|
||||
const char *Txt_Location_removed =
|
||||
const char *Txt_Location_X_removed = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1
|
||||
"Ubicació eliminada.";
|
||||
"Ubicació <strong>%s</strong> eliminada.";
|
||||
#elif L==2
|
||||
"Standort entfernt.";
|
||||
"Standort <strong>%s</strong> entfernt.";
|
||||
#elif L==3
|
||||
"Location removed.";
|
||||
"Location <strong>%s</strong> removed.";
|
||||
#elif L==4
|
||||
"Ubicación eliminada.";
|
||||
"Ubicación <strong>%s</strong> eliminada.";
|
||||
#elif L==5
|
||||
"Emplacement supprimé.";
|
||||
"Emplacement <strong>%s</strong> supprimé.";
|
||||
#elif L==6
|
||||
"Ubicación eliminada."; // Okoteve traducción
|
||||
"Ubicación <strong>%s</strong> eliminada."; // Okoteve traducción
|
||||
#elif L==7
|
||||
"Posizione rimossa.";
|
||||
"Posizione <strong>%s</strong> rimossa.";
|
||||
#elif L==8
|
||||
"Lokacja usuniete.";
|
||||
"Lokacja <strong>%s</strong> usuniete.";
|
||||
#elif L==9
|
||||
"Localização removida.";
|
||||
"Localização <strong>%s</strong> removida.";
|
||||
#endif
|
||||
|
||||
const char *Txt_Locations =
|
||||
|
@ -24572,6 +24572,27 @@ const char *Txt_No_institutions =
|
|||
"Não há instituções.";
|
||||
#endif
|
||||
|
||||
const char *Txt_No_locations =
|
||||
#if L==1
|
||||
"No hi ha ubicacions.";
|
||||
#elif L==2
|
||||
"Es gibt keine Standorte.";
|
||||
#elif L==3
|
||||
"No locations.";
|
||||
#elif L==4
|
||||
"No existen ubicaciones.";
|
||||
#elif L==5
|
||||
"Il n'y a pas d'emplacements.";
|
||||
#elif L==6
|
||||
"No existen ubicaciones."; // Okoteve traducción
|
||||
#elif L==7
|
||||
"Non ci sono posizioni.";
|
||||
#elif L==8
|
||||
"Brak lokalizacje.";
|
||||
#elif L==9
|
||||
"Não existem localizações.";
|
||||
#endif
|
||||
|
||||
const char *Txt_No_BR_msgs =
|
||||
#if L==1
|
||||
"Nº<br />mens."; // Necessita traduccio
|
||||
|
@ -30787,6 +30808,27 @@ const char *Txt_Remove_link =
|
|||
"Remover ligação";
|
||||
#endif
|
||||
|
||||
const char *Txt_Remove_location =
|
||||
#if L==1
|
||||
"Eliminar ubicació";
|
||||
#elif L==2
|
||||
"Entfernen Standort";
|
||||
#elif L==3
|
||||
"Remove location";
|
||||
#elif L==4
|
||||
"Eliminar ubicación";
|
||||
#elif L==5
|
||||
"Supprimer emplacement";
|
||||
#elif L==6
|
||||
"Eliminar ubicación"; // Okoteve traducción
|
||||
#elif L==7
|
||||
"Rimuovere posizione";
|
||||
#elif L==8
|
||||
"Usuń lokacja";
|
||||
#elif L==9
|
||||
"Remover localização";
|
||||
#endif
|
||||
|
||||
const char *Txt_Remove_logo =
|
||||
#if L==1
|
||||
"Eliminar logo";
|
||||
|
@ -42287,27 +42329,6 @@ const char *Txt_The_date_of_the_holiday_X_has_changed_to_Y = // Warning: it is v
|
|||
"The date of the holiday <strong>%s</strong> has changed to <strong>%s</strong>."; // Necessita de tradução
|
||||
#endif
|
||||
|
||||
const char *Txt_The_date_of_the_location_has_changed_to_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1
|
||||
"La fecha de la festividad ha cambiado a <strong>%s</strong>."; // Necessita traduccio
|
||||
#elif L==2
|
||||
"The date of the location has changed to <strong>%s</strong>."; // Need Übersetzung
|
||||
#elif L==3
|
||||
"The date of the location has changed to <strong>%s</strong>.";
|
||||
#elif L==4
|
||||
"La fecha de la ubicación ha cambiado a <strong>%s</strong>.";
|
||||
#elif L==5
|
||||
"The date of the location has changed to <strong>%s</strong>."; // Besoin de traduction
|
||||
#elif L==6
|
||||
"La fecha de la ubicación ha cambiado a <strong>%s</strong>."; // Okoteve traducción
|
||||
#elif L==7
|
||||
"La data delle posizione è cambiata a <strong>%s</strong>.";
|
||||
#elif L==8
|
||||
"The date of the location has changed to <strong>%s</strong>."; // Potrzebujesz tlumaczenie
|
||||
#elif L==9
|
||||
"The date of the location has changed to <strong>%s</strong>."; // Necessita de tradução
|
||||
#endif
|
||||
|
||||
const char *Txt_The_date_range_must_be_less_than_or_equal_to_X_days = // Warning: it is very important to include %u in the following sentences
|
||||
#if L==1
|
||||
"El rango de fechas debe ser menor o igual a %u días."; // Necessita traduccio
|
||||
|
@ -43580,48 +43601,6 @@ const char *Txt_The_list_of_X_users_is_too_large_to_be_displayed = // Warning: i
|
|||
"The list of %u users is too large to be displayed."; // Necessita de tradução
|
||||
#endif
|
||||
|
||||
const char *Txt_The_location_has_changed_to_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1
|
||||
"La ubicació ha canviat a <strong>%s</strong>.";
|
||||
#elif L==2
|
||||
"Der Standort wurde in <strong>%s</strong> geändert.";
|
||||
#elif L==3
|
||||
"The location has changed to <strong>%s</strong>.";
|
||||
#elif L==4
|
||||
"La ubicación ha cambiado a <strong>%s</strong>.";
|
||||
#elif L==5
|
||||
"L'emplacement a changé en <strong>%s</strong>.";
|
||||
#elif L==6
|
||||
"La ubicación ha cambiado a <strong>%s</strong>."; // Okoteve traducción
|
||||
#elif L==7
|
||||
"La posizione è cambiato a <strong>%s</strong>.";
|
||||
#elif L==8
|
||||
"Zmieniona na miejscu <strong>%s</strong>.";
|
||||
#elif L==9
|
||||
"A localização mudou para <strong>%s</strong>.";
|
||||
#endif
|
||||
|
||||
const char *Txt_The_location_has_not_changed =
|
||||
#if L==1
|
||||
"La ubicació no ha canviat.";
|
||||
#elif L==2
|
||||
"Der Standort wurde nicht geändert.";
|
||||
#elif L==3
|
||||
"The location has not changed.";
|
||||
#elif L==4
|
||||
"La ubicación no ha cambiado.";
|
||||
#elif L==5
|
||||
"L'emplacement n'a pas changé.";
|
||||
#elif L==6
|
||||
"La ubicación no ha cambiado."; // Okoteve traducción
|
||||
#elif L==7
|
||||
"La posizione non è cambiato.";
|
||||
#elif L==8
|
||||
"Miejsca nie uległa zmianie.";
|
||||
#elif L==9
|
||||
"A localização não foi alterado.";
|
||||
#endif
|
||||
|
||||
const char *Txt_The_lower_limit_of_correct_answers_must_be_less_than_or_equal_to_the_upper_limit =
|
||||
#if L==1
|
||||
"El límite inferior del intervalo de respuestas correctas"
|
||||
|
@ -46634,27 +46613,6 @@ const char *Txt_There_are_no_links =
|
|||
"There are no links."; // Necessita de tradução
|
||||
#endif
|
||||
|
||||
const char *Txt_There_are_no_locations =
|
||||
#if L==1
|
||||
"No hi ha ubicacions.";
|
||||
#elif L==2
|
||||
"Es gibt keine Standorte.";
|
||||
#elif L==3
|
||||
"There are no locations.";
|
||||
#elif L==4
|
||||
"No existen ubicaciones.";
|
||||
#elif L==5
|
||||
"Il n'y a pas d'emplacements.";
|
||||
#elif L==6
|
||||
"No existen ubicaciones."; // Okoteve traducción
|
||||
#elif L==7
|
||||
"Non ci sono posizioni.";
|
||||
#elif L==8
|
||||
"Brak lokalizacje.";
|
||||
#elif L==9
|
||||
"Não existem localizações.";
|
||||
#endif
|
||||
|
||||
const char *Txt_There_are_no_places =
|
||||
#if L==1
|
||||
"No existen lugares."; // Necessita traduccio
|
||||
|
@ -52169,27 +52127,6 @@ const char *Txt_You_can_not_leave_the_IP_address_empty =
|
|||
"You can not leave the IP address empty."; // Necessita de tradução
|
||||
#endif
|
||||
|
||||
const char *Txt_You_can_not_leave_the_location_empty =
|
||||
#if L==1
|
||||
"No es pot deixar la ubicació buido.";
|
||||
#elif L==2
|
||||
"Sie können den Standort nicht leer lassen.";
|
||||
#elif L==3
|
||||
"You can not leave the location empty.";
|
||||
#elif L==4
|
||||
"No puede dejar la ubicación vacía.";
|
||||
#elif L==5
|
||||
"Vous ne pouvez pas laisser l'emplacement vide.";
|
||||
#elif L==6
|
||||
"No puede dejar la ubicación vacía."; // Okoteve traducción
|
||||
#elif L==7
|
||||
"Non puoi lasciare la posizione vuota.";
|
||||
#elif L==8
|
||||
"Nie można pozostawić miejsca pustego.";
|
||||
#elif L==9
|
||||
"Você não pode deixar a localização vazia.";
|
||||
#endif
|
||||
|
||||
const char *Txt_You_can_not_leave_the_logo_empty =
|
||||
#if L==1
|
||||
"No puede dejar el logo vacío."; // Necessita traduccio
|
||||
|
@ -54092,27 +54029,6 @@ const char *Txt_You_must_specify_the_name_of_the_new_type_of_group =
|
|||
"You must specify the name of the new type of group."; // Necessita de tradução
|
||||
#endif
|
||||
|
||||
const char *Txt_You_must_specify_the_new_location =
|
||||
#if L==1
|
||||
"Cal especificar la nova ubicació.";
|
||||
#elif L==2
|
||||
"Sie müssen den neuen Speicherort angeben.";
|
||||
#elif L==3
|
||||
"You must specify the new location.";
|
||||
#elif L==4
|
||||
"Debe especificar la nueva ubicación.";
|
||||
#elif L==5
|
||||
"Vous devez spécifier le nouvel emplacement.";
|
||||
#elif L==6
|
||||
"Debe especificar la nueva ubicación."; // Okoteve traducción
|
||||
#elif L==7
|
||||
"Devi specificare la nuova posizione.";
|
||||
#elif L==8
|
||||
"Musisz podać nazwę nowej lokalizacji.";
|
||||
#elif L==9
|
||||
"Você deve especificar a nova localização.";
|
||||
#endif
|
||||
|
||||
const char *Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_banner =
|
||||
#if L==1
|
||||
"Debe especificar el nombre breve y el nombre completo"
|
||||
|
|
Loading…
Reference in New Issue