mirror of https://github.com/acanas/swad-core.git
Version 18.31.4
This commit is contained in:
parent
b5aa626f20
commit
5249780dfd
461
swad_action.c
461
swad_action.c
|
@ -1257,249 +1257,250 @@ Users:
|
||||||
1055. ActLstSimUsr List users similar to a given one (possible duplicates)
|
1055. ActLstSimUsr List users similar to a given one (possible duplicates)
|
||||||
1056. ActRemDupUsr Remove user from list of possible duplicate users
|
1056. ActRemDupUsr Remove user from list of possible duplicate users
|
||||||
|
|
||||||
1057. ActLstClk List last clicks in real time
|
|
||||||
|
|
||||||
Social:
|
Social:
|
||||||
1058. ActSeeSocTmlGbl Show social timeline (global)
|
1057. ActSeeSocTmlGbl Show social timeline (global)
|
||||||
1059. ActSeeSocPrf Suggest list of users to follow
|
1058. ActSeeSocPrf Suggest list of users to follow
|
||||||
1060. ActSeeFor Show the level superior of the forums
|
1059. ActSeeFor Show the level superior of the forums
|
||||||
1061. ActSeeChtRms Show the chat rooms
|
1060. ActSeeChtRms Show the chat rooms
|
||||||
|
|
||||||
1062. ActRcvSocPstGbl Receive a public social post to be displayed in the timeline (global)
|
1061. ActRcvSocPstGbl Receive a public social post to be displayed in the timeline (global)
|
||||||
1063. ActRcvSocComGbl Comment a social note in the timeline (global)
|
1062. ActRcvSocComGbl Comment a social note in the timeline (global)
|
||||||
1064. ActShaSocNotGbl Share a social note in the timeline (global)
|
1063. ActShaSocNotGbl Share a social note in the timeline (global)
|
||||||
1065. ActUnsSocNotGbl Unshare a previously shared social note in the timeline (global)
|
1064. ActUnsSocNotGbl Unshare a previously shared social note in the timeline (global)
|
||||||
1066. ActFavSocNotGbl Favourite a social note in the timeline (global)
|
1065. ActFavSocNotGbl Favourite a social note in the timeline (global)
|
||||||
1067. ActUnfSocNotGbl Unfavourite a previously favourited social note in the timeline (global)
|
1066. ActUnfSocNotGbl Unfavourite a previously favourited social note in the timeline (global)
|
||||||
1068. ActFavSocComGbl Favourite a social comment in the timeline (global)
|
1067. ActFavSocComGbl Favourite a social comment in the timeline (global)
|
||||||
1069. ActUnfSocComGbl Unfavourite a previously favourited social comment in the timeline (global)
|
1068. ActUnfSocComGbl Unfavourite a previously favourited social comment in the timeline (global)
|
||||||
1070. ActReqRemSocPubGbl Request the removal of a social publishing in the timeline (global)
|
1069. ActReqRemSocPubGbl Request the removal of a social publishing in the timeline (global)
|
||||||
1071. ActRemSocPubGbl Remove a social publishing in the timeline (global)
|
1070. ActRemSocPubGbl Remove a social publishing in the timeline (global)
|
||||||
1072. ActReqRemSocComGbl Request the removal of a comment in a social note (global)
|
1071. ActReqRemSocComGbl Request the removal of a comment in a social note (global)
|
||||||
1073. ActRemSocComGbl Remove of a comment in a social note (global)
|
1072. ActRemSocComGbl Remove of a comment in a social note (global)
|
||||||
|
|
||||||
1074. ActReqOthPubPrf Request @nickname to show a public user's profile
|
1073. ActReqOthPubPrf Request @nickname to show a public user's profile
|
||||||
|
|
||||||
1075. ActRcvSocPstUsr Receive a public social post to be displayed in the timeline (user)
|
1074. ActRcvSocPstUsr Receive a public social post to be displayed in the timeline (user)
|
||||||
1076. ActRcvSocComUsr Comment a social note in the timeline (user)
|
1075. ActRcvSocComUsr Comment a social note in the timeline (user)
|
||||||
1077. ActShaSocNotUsr Share a social note in the timeline (user)
|
1076. ActShaSocNotUsr Share a social note in the timeline (user)
|
||||||
1078. ActUnsSocNotUsr Unshare a previously shared social note in the timeline (user)
|
1077. ActUnsSocNotUsr Unshare a previously shared social note in the timeline (user)
|
||||||
1079. ActFavSocNotUsr Favourite a social note in the timeline (user)
|
1078. ActFavSocNotUsr Favourite a social note in the timeline (user)
|
||||||
1080. ActUnfSocNotUsr Unfavourite a previously favourited social note in the timeline (user)
|
1079. ActUnfSocNotUsr Unfavourite a previously favourited social note in the timeline (user)
|
||||||
1081. ActFavSocComUsr Favourite a social comment in the timeline (user)
|
1080. ActFavSocComUsr Favourite a social comment in the timeline (user)
|
||||||
1082. ActUnfSocComUsr Unfavourite a previously favourited social comment in the timeline (user)
|
1081. ActUnfSocComUsr Unfavourite a previously favourited social comment in the timeline (user)
|
||||||
1083. ActReqRemSocPubUsr Request the removal of a social publishing in the timeline (user)
|
1082. ActReqRemSocPubUsr Request the removal of a social publishing in the timeline (user)
|
||||||
1084. ActRemSocPubUsr Remove a social publishing in the timeline (user)
|
1083. ActRemSocPubUsr Remove a social publishing in the timeline (user)
|
||||||
1085. ActReqRemSocComUsr Request the removal of a comment in a social note (user)
|
1084. ActReqRemSocComUsr Request the removal of a comment in a social note (user)
|
||||||
1086. ActRemSocComUsr Remove of a comment in a social note (user)
|
1085. ActRemSocComUsr Remove of a comment in a social note (user)
|
||||||
|
|
||||||
1087. ActCal1stClkTim Calculate first click time from log and store into user's figures
|
1086. ActCal1stClkTim Calculate first click time from log and store into user's figures
|
||||||
1088. ActCalNumClk Calculate number of clicks from log and store into user's figures
|
1087. ActCalNumClk Calculate number of clicks from log and store into user's figures
|
||||||
1089. ActCalNumFileViews Calculate number of file views and store into user's figures
|
1088. ActCalNumFileViews Calculate number of file views and store into user's figures
|
||||||
1090. ActCalNumForPst Calculate number of forum posts and store into user's figures
|
1089. ActCalNumForPst Calculate number of forum posts and store into user's figures
|
||||||
1091. ActCalNumMsgSnt Calculate number of messages sent from log and store into user's figures
|
1090. ActCalNumMsgSnt Calculate number of messages sent from log and store into user's figures
|
||||||
|
|
||||||
1092. ActFolUsr Follow another user
|
1091. ActFolUsr Follow another user
|
||||||
1093. ActUnfUsr Unfollow another user
|
1092. ActUnfUsr Unfollow another user
|
||||||
1094. ActSeeFlg Show following
|
1093. ActSeeFlg Show following
|
||||||
1095. ActSeeFlr Show followers
|
1094. ActSeeFlr Show followers
|
||||||
|
|
||||||
1096. ActSeeForCrsUsr Show top level of forum of users of the course
|
1095. ActSeeForCrsUsr Show top level of forum of users of the course
|
||||||
1097. ActSeeForCrsTch Show top level of forum of teachers of the course
|
1096. ActSeeForCrsTch Show top level of forum of teachers of the course
|
||||||
1098. ActSeeForDegUsr Show top level of forum of users of the degree
|
1097. ActSeeForDegUsr Show top level of forum of users of the degree
|
||||||
1099. ActSeeForDegTch Show top level of forum of teachers of the degree
|
1098. ActSeeForDegTch Show top level of forum of teachers of the degree
|
||||||
1100. ActSeeForCtrUsr Show top level of forum of users of the centre
|
1099. ActSeeForCtrUsr Show top level of forum of users of the centre
|
||||||
1101. ActSeeForCtrTch Show top level of forum of teachers of the centre
|
1100. ActSeeForCtrTch Show top level of forum of teachers of the centre
|
||||||
1102. ActSeeForInsUsr Show top level of forum of users of the institution
|
1101. ActSeeForInsUsr Show top level of forum of users of the institution
|
||||||
1103. ActSeeForInsTch Show top level of forum of teachers of the institution
|
1102. ActSeeForInsTch Show top level of forum of teachers of the institution
|
||||||
1104. ActSeeForGenUsr Show top level of forum of users general
|
1103. ActSeeForGenUsr Show top level of forum of users general
|
||||||
1105. ActSeeForGenTch Show top level of forum of teachers general
|
1104. ActSeeForGenTch Show top level of forum of teachers general
|
||||||
1106. ActSeeForSWAUsr Show top level of forum of users of the platform
|
1105. ActSeeForSWAUsr Show top level of forum of users of the platform
|
||||||
1107. ActSeeForSWATch Show top level of forum of teachers of the platform
|
1106. ActSeeForSWATch Show top level of forum of teachers of the platform
|
||||||
1108. ActSeePstForCrsUsr Show the messages of a thread of the forum of users of the course
|
1107. ActSeePstForCrsUsr Show the messages of a thread of the forum of users of the course
|
||||||
1109. ActSeePstForCrsTch Show the messages of a thread of the forum of teachers of the course
|
1108. ActSeePstForCrsTch Show the messages of a thread of the forum of teachers of the course
|
||||||
1110. ActSeePstForDegUsr Show the messages of a thread of the forum of users of the degree
|
1109. ActSeePstForDegUsr Show the messages of a thread of the forum of users of the degree
|
||||||
1111. ActSeePstForDegTch Show the messages of a thread of the forum of teachers of the degree
|
1110. ActSeePstForDegTch Show the messages of a thread of the forum of teachers of the degree
|
||||||
1112. ActSeePstForCtrUsr Show the messages of a thread of the forum of users of the centre
|
1111. ActSeePstForCtrUsr Show the messages of a thread of the forum of users of the centre
|
||||||
1113. ActSeePstForCtrTch Show the messages of a thread of the forum of teachers of the centre
|
1112. ActSeePstForCtrTch Show the messages of a thread of the forum of teachers of the centre
|
||||||
1114. ActSeePstForInsUsr Show the messages of a thread of the forum of users of the institution
|
1113. ActSeePstForInsUsr Show the messages of a thread of the forum of users of the institution
|
||||||
1115. ActSeePstForInsTch Show the messages of a thread of the forum of teachers of the institution
|
1114. ActSeePstForInsTch Show the messages of a thread of the forum of teachers of the institution
|
||||||
1116. ActSeePstForGenUsr Show the messages of a thread of the forum of users general
|
1115. ActSeePstForGenUsr Show the messages of a thread of the forum of users general
|
||||||
1117. ActSeePstForGenTch Show the messages of a thread of the forum of teachers general
|
1116. ActSeePstForGenTch Show the messages of a thread of the forum of teachers general
|
||||||
1118. ActSeePstForSWAUsr Show the messages of a thread of the forum of users of the platform
|
1117. ActSeePstForSWAUsr Show the messages of a thread of the forum of users of the platform
|
||||||
1119. ActSeePstForSWATch Show the messages of a thread of the forum of teachers of the platform
|
1118. ActSeePstForSWATch Show the messages of a thread of the forum of teachers of the platform
|
||||||
1120. ActRcvThrForCrsUsr Receive the first message of a new thread of forum of users of the course
|
1119. ActRcvThrForCrsUsr Receive the first message of a new thread of forum of users of the course
|
||||||
1121. ActRcvThrForCrsTch Receive the first message of a new thread of forum of teachers of the course
|
1120. ActRcvThrForCrsTch Receive the first message of a new thread of forum of teachers of the course
|
||||||
1122. ActRcvThrForDegUsr Receive the first message of a new thread of forum of users of the degree
|
1121. ActRcvThrForDegUsr Receive the first message of a new thread of forum of users of the degree
|
||||||
1123. ActRcvThrForDegTch Receive the first message of a new thread of forum of teachers of the degree
|
1122. ActRcvThrForDegTch Receive the first message of a new thread of forum of teachers of the degree
|
||||||
1124. ActRcvThrForCtrUsr Receive the first message of a new thread of forum of users of centre
|
1123. ActRcvThrForCtrUsr Receive the first message of a new thread of forum of users of centre
|
||||||
1125. ActRcvThrForCtrTch Receive the first message of a new thread of forum of teachers of centre
|
1124. ActRcvThrForCtrTch Receive the first message of a new thread of forum of teachers of centre
|
||||||
1126. ActRcvThrForInsUsr Receive the first message of a new thread of forum of users of the institution
|
1125. ActRcvThrForInsUsr Receive the first message of a new thread of forum of users of the institution
|
||||||
1127. ActRcvThrForInsTch Receive the first message of a new thread of forum of teachers of the institution
|
1126. ActRcvThrForInsTch Receive the first message of a new thread of forum of teachers of the institution
|
||||||
1128. ActRcvThrForGenUsr Receive the first message of a new thread of forum of users general
|
1127. ActRcvThrForGenUsr Receive the first message of a new thread of forum of users general
|
||||||
1129. ActRcvThrForGenTch Receive the first message of a new thread of forum of teachers general
|
1128. ActRcvThrForGenTch Receive the first message of a new thread of forum of teachers general
|
||||||
1130. ActRcvThrForSWAUsr Receive the first message of a new thread of forum of users of the platform
|
1129. ActRcvThrForSWAUsr Receive the first message of a new thread of forum of users of the platform
|
||||||
1131. ActRcvThrForSWATch Receive the first message of a new thread of forum of teachers of the platform
|
1130. ActRcvThrForSWATch Receive the first message of a new thread of forum of teachers of the platform
|
||||||
1132. ActRcvRepForCrsUsr Receive a message of answer in a thread existente in the forum of users of the course
|
1131. ActRcvRepForCrsUsr Receive a message of answer in a thread existente in the forum of users of the course
|
||||||
1133. ActRcvRepForCrsTch Receive a message of answer in a thread existente in the forum of teachers of the course
|
1132. ActRcvRepForCrsTch Receive a message of answer in a thread existente in the forum of teachers of the course
|
||||||
1134. ActRcvRepForDegUsr Receive a message of answer in a thread existente in the forum of users of the degree
|
1133. ActRcvRepForDegUsr Receive a message of answer in a thread existente in the forum of users of the degree
|
||||||
1135. ActRcvRepForDegTch Receive a message of answer in a thread existente in the forum of teachers of the degree
|
1134. ActRcvRepForDegTch Receive a message of answer in a thread existente in the forum of teachers of the degree
|
||||||
1136. ActRcvRepForCtrUsr Receive a message of answer in a thread existente in the forum of users of centre
|
1135. ActRcvRepForCtrUsr Receive a message of answer in a thread existente in the forum of users of centre
|
||||||
1137. ActRcvRepForCtrTch Receive a message of answer in a thread existente in the forum of teachers of centre
|
1136. ActRcvRepForCtrTch Receive a message of answer in a thread existente in the forum of teachers of centre
|
||||||
1138. ActRcvRepForInsUsr Receive a message of answer in a thread existente in the forum of users of the institution
|
1137. ActRcvRepForInsUsr Receive a message of answer in a thread existente in the forum of users of the institution
|
||||||
1139. ActRcvRepForInsTch Receive a message of answer in a thread existente in the forum of teachers of the institution
|
1138. ActRcvRepForInsTch Receive a message of answer in a thread existente in the forum of teachers of the institution
|
||||||
1140. ActRcvRepForGenUsr Receive a message of answer in a thread existente in the forum of users general
|
1139. ActRcvRepForGenUsr Receive a message of answer in a thread existente in the forum of users general
|
||||||
1141. ActRcvRepForGenTch Receive a message of answer in a thread existente in the forum of teachers general
|
1140. ActRcvRepForGenTch Receive a message of answer in a thread existente in the forum of teachers general
|
||||||
1142. ActRcvRepForSWAUsr Receive a message of answer in a thread existente in the forum of users of the platform
|
1141. ActRcvRepForSWAUsr Receive a message of answer in a thread existente in the forum of users of the platform
|
||||||
1143. ActRcvRepForSWATch Receive a message of answer in a thread existente in the forum of teachers of the platform
|
1142. ActRcvRepForSWATch Receive a message of answer in a thread existente in the forum of teachers of the platform
|
||||||
1144. ActReqDelThrCrsUsr Request the removal of a thread of forum of users of the course
|
1143. ActReqDelThrCrsUsr Request the removal of a thread of forum of users of the course
|
||||||
1145. ActReqDelThrCrsTch Request the removal of a thread of forum of teachers of the course
|
1144. ActReqDelThrCrsTch Request the removal of a thread of forum of teachers of the course
|
||||||
1146. ActReqDelThrDegUsr Request the removal of a thread of forum of users of the degree
|
1145. ActReqDelThrDegUsr Request the removal of a thread of forum of users of the degree
|
||||||
1147. ActReqDelThrDegTch Request the removal of a thread of forum of teachers of the degree
|
1146. ActReqDelThrDegTch Request the removal of a thread of forum of teachers of the degree
|
||||||
1148. ActReqDelThrCtrUsr Request the removal of a thread of forum of users of centre
|
1147. ActReqDelThrCtrUsr Request the removal of a thread of forum of users of centre
|
||||||
1149. ActReqDelThrCtrTch Request the removal of a thread of forum of teachers of centre
|
1148. ActReqDelThrCtrTch Request the removal of a thread of forum of teachers of centre
|
||||||
1150. ActReqDelThrInsUsr Request the removal of a thread of forum of users of the institution
|
1149. ActReqDelThrInsUsr Request the removal of a thread of forum of users of the institution
|
||||||
1151. ActReqDelThrInsTch Request the removal of a thread of forum of teachers of the institution
|
1150. ActReqDelThrInsTch Request the removal of a thread of forum of teachers of the institution
|
||||||
1152. ActReqDelThrGenUsr Request the removal of a thread of forum of users general
|
1151. ActReqDelThrGenUsr Request the removal of a thread of forum of users general
|
||||||
1153. ActReqDelThrGenTch Request the removal of a thread of forum of teachers general
|
1152. ActReqDelThrGenTch Request the removal of a thread of forum of teachers general
|
||||||
1154. ActReqDelThrSWAUsr Request the removal of a thread of forum of users of the platform
|
1153. ActReqDelThrSWAUsr Request the removal of a thread of forum of users of the platform
|
||||||
1155. ActReqDelThrSWATch Request the removal of a thread of forum of teachers of the platform
|
1154. ActReqDelThrSWATch Request the removal of a thread of forum of teachers of the platform
|
||||||
1156. ActDelThrForCrsUsr Remove a thread of forum of users of the course
|
1155. ActDelThrForCrsUsr Remove a thread of forum of users of the course
|
||||||
1157. ActDelThrForCrsTch Remove a thread of forum of teachers of the course
|
1156. ActDelThrForCrsTch Remove a thread of forum of teachers of the course
|
||||||
1158. ActDelThrForDegUsr Remove a thread of forum of users of the degree
|
1157. ActDelThrForDegUsr Remove a thread of forum of users of the degree
|
||||||
1159. ActDelThrForDegTch Remove a thread of forum of teachers of the degree
|
1158. ActDelThrForDegTch Remove a thread of forum of teachers of the degree
|
||||||
1160. ActDelThrForCtrUsr Remove a thread of forum of users of centre
|
1159. ActDelThrForCtrUsr Remove a thread of forum of users of centre
|
||||||
1161. ActDelThrForCtrTch Remove a thread of forum of teachers of centre
|
1160. ActDelThrForCtrTch Remove a thread of forum of teachers of centre
|
||||||
1162. ActDelThrForInsUsr Remove a thread of forum of users of the institution
|
1161. ActDelThrForInsUsr Remove a thread of forum of users of the institution
|
||||||
1163. ActDelThrForInsTch Remove a thread of forum of teachers of the institution
|
1162. ActDelThrForInsTch Remove a thread of forum of teachers of the institution
|
||||||
1164. ActDelThrForGenUsr Remove a thread of forum of users general
|
1163. ActDelThrForGenUsr Remove a thread of forum of users general
|
||||||
1165. ActDelThrForGenTch Remove a thread of forum of teachers general
|
1164. ActDelThrForGenTch Remove a thread of forum of teachers general
|
||||||
1166. ActDelThrForSWAUsr Remove a thread of forum of users of the platform
|
1165. ActDelThrForSWAUsr Remove a thread of forum of users of the platform
|
||||||
1167. ActDelThrForSWATch Remove a thread of forum of teachers of the platform
|
1166. ActDelThrForSWATch Remove a thread of forum of teachers of the platform
|
||||||
1168. ActCutThrForCrsUsr Cut a thread of forum of users of the course
|
1167. ActCutThrForCrsUsr Cut a thread of forum of users of the course
|
||||||
1169. ActCutThrForCrsTch Cut a thread of forum of teachers of the course
|
1168. ActCutThrForCrsTch Cut a thread of forum of teachers of the course
|
||||||
1170. ActCutThrForDegUsr Cut a thread of forum of users of the degree
|
1169. ActCutThrForDegUsr Cut a thread of forum of users of the degree
|
||||||
1171. ActCutThrForDegTch Cut a thread of forum of teachers of the degree
|
1170. ActCutThrForDegTch Cut a thread of forum of teachers of the degree
|
||||||
1172. ActCutThrForCtrUsr Cut a thread of forum of users of centre
|
1171. ActCutThrForCtrUsr Cut a thread of forum of users of centre
|
||||||
1173. ActCutThrForCtrTch Cut a thread of forum of teachers of centre
|
1172. ActCutThrForCtrTch Cut a thread of forum of teachers of centre
|
||||||
1174. ActCutThrForInsUsr Cut a thread of forum of users of the institution
|
1173. ActCutThrForInsUsr Cut a thread of forum of users of the institution
|
||||||
1175. ActCutThrForInsTch Cut a thread of forum of teachers of the institution
|
1174. ActCutThrForInsTch Cut a thread of forum of teachers of the institution
|
||||||
1176. ActCutThrForGenUsr Cut a thread of forum of users general
|
1175. ActCutThrForGenUsr Cut a thread of forum of users general
|
||||||
1177. ActCutThrForGenTch Cut a thread of forum of teachers general
|
1176. ActCutThrForGenTch Cut a thread of forum of teachers general
|
||||||
1178. ActCutThrForSWAUsr Cut a thread of forum of users of the platform
|
1177. ActCutThrForSWAUsr Cut a thread of forum of users of the platform
|
||||||
1179. ActCutThrForSWATch Cut a thread of forum of teachers of the platform
|
1178. ActCutThrForSWATch Cut a thread of forum of teachers of the platform
|
||||||
1180. ActPasThrForCrsUsr Paste a thread of forum of users of the course
|
1179. ActPasThrForCrsUsr Paste a thread of forum of users of the course
|
||||||
1181. ActPasThrForCrsTch Paste a thread of forum of teachers of the course
|
1180. ActPasThrForCrsTch Paste a thread of forum of teachers of the course
|
||||||
1182. ActPasThrForDegUsr Paste a thread of forum of users of the degree
|
1181. ActPasThrForDegUsr Paste a thread of forum of users of the degree
|
||||||
1183. ActPasThrForDegTch Paste a thread of forum of teachers of the degree
|
1182. ActPasThrForDegTch Paste a thread of forum of teachers of the degree
|
||||||
1184. ActPasThrForCtrUsr Paste a thread of forum of users of centre
|
1183. ActPasThrForCtrUsr Paste a thread of forum of users of centre
|
||||||
1185. ActPasThrForCtrTch Paste a thread of forum of teachers of centre
|
1184. ActPasThrForCtrTch Paste a thread of forum of teachers of centre
|
||||||
1186. ActPasThrForInsUsr Paste a thread of forum of users of the institution
|
1185. ActPasThrForInsUsr Paste a thread of forum of users of the institution
|
||||||
1187. ActPasThrForInsTch Paste a thread of forum of teachers of the institution
|
1186. ActPasThrForInsTch Paste a thread of forum of teachers of the institution
|
||||||
1188. ActPasThrForGenUsr Paste a thread of forum of users general
|
1187. ActPasThrForGenUsr Paste a thread of forum of users general
|
||||||
1189. ActPasThrForGenTch Paste a thread of forum of teachers general
|
1188. ActPasThrForGenTch Paste a thread of forum of teachers general
|
||||||
1190. ActPasThrForSWAUsr Paste a thread of forum of users of the platform
|
1189. ActPasThrForSWAUsr Paste a thread of forum of users of the platform
|
||||||
1191. ActPasThrForSWATch Paste a thread of forum of teachers of the platform
|
1190. ActPasThrForSWATch Paste a thread of forum of teachers of the platform
|
||||||
1192. ActDelPstForCrsUsr Remove a message of forum of users of the course
|
1191. ActDelPstForCrsUsr Remove a message of forum of users of the course
|
||||||
1193. ActDelPstForCrsTch Remove a message of forum of teachers of the course
|
1192. ActDelPstForCrsTch Remove a message of forum of teachers of the course
|
||||||
1194. ActDelPstForDegUsr Remove a message of forum of users of the degree
|
1193. ActDelPstForDegUsr Remove a message of forum of users of the degree
|
||||||
1195. ActDelPstForDegTch Remove a message of forum of teachers of the degree
|
1194. ActDelPstForDegTch Remove a message of forum of teachers of the degree
|
||||||
1196. ActDelPstForCtrUsr Remove a message of forum of users of centre
|
1195. ActDelPstForCtrUsr Remove a message of forum of users of centre
|
||||||
1197. ActDelPstForCtrTch Remove a message of forum of teachers of centre
|
1196. ActDelPstForCtrTch Remove a message of forum of teachers of centre
|
||||||
1198. ActDelPstForInsUsr Remove a message of forum of users of the institution
|
1197. ActDelPstForInsUsr Remove a message of forum of users of the institution
|
||||||
1199. ActDelPstForInsTch Remove a message of forum of teachers of the institution
|
1198. ActDelPstForInsTch Remove a message of forum of teachers of the institution
|
||||||
1200. ActDelPstForGenUsr Remove a message of forum of users general
|
1199. ActDelPstForGenUsr Remove a message of forum of users general
|
||||||
1201. ActDelPstForGenTch Remove a message of forum of teachers general
|
1200. ActDelPstForGenTch Remove a message of forum of teachers general
|
||||||
1202. ActDelPstForSWAUsr Remove a message of forum of users of the platform
|
1201. ActDelPstForSWAUsr Remove a message of forum of users of the platform
|
||||||
1203. ActDelPstForSWATch Remove a message of forum of teachers of the platform
|
1202. ActDelPstForSWATch Remove a message of forum of teachers of the platform
|
||||||
1204. ActEnbPstForCrsUsr Enable a message of forum of users of the course
|
1203. ActEnbPstForCrsUsr Enable a message of forum of users of the course
|
||||||
1205. ActEnbPstForCrsTch Enable a message of forum of teachers of the course
|
1204. ActEnbPstForCrsTch Enable a message of forum of teachers of the course
|
||||||
1206. ActEnbPstForDegUsr Enable a message of forum of users of the degree
|
1205. ActEnbPstForDegUsr Enable a message of forum of users of the degree
|
||||||
1207. ActEnbPstForDegTch Enable a message of forum of teachers of the degree
|
1206. ActEnbPstForDegTch Enable a message of forum of teachers of the degree
|
||||||
1208. ActEnbPstForCtrUsr Enable a message of forum of users of centre
|
1207. ActEnbPstForCtrUsr Enable a message of forum of users of centre
|
||||||
1209. ActEnbPstForCtrTch Enable a message of forum of teachers of centre
|
1208. ActEnbPstForCtrTch Enable a message of forum of teachers of centre
|
||||||
1210. ActEnbPstForInsUsr Enable a message of forum of users of the institution
|
1209. ActEnbPstForInsUsr Enable a message of forum of users of the institution
|
||||||
1211. ActEnbPstForInsTch Enable a message of forum of teachers of the institution
|
1210. ActEnbPstForInsTch Enable a message of forum of teachers of the institution
|
||||||
1212. ActEnbPstForGenUsr Enable a message of forum of users general
|
1211. ActEnbPstForGenUsr Enable a message of forum of users general
|
||||||
1213. ActEnbPstForGenTch Enable a message of forum of teachers general
|
1212. ActEnbPstForGenTch Enable a message of forum of teachers general
|
||||||
1214. ActEnbPstForSWAUsr Enable a message of forum of users of the platform
|
1213. ActEnbPstForSWAUsr Enable a message of forum of users of the platform
|
||||||
1215. ActEnbPstForSWATch Enable a message of forum of teachers of the platform
|
1214. ActEnbPstForSWATch Enable a message of forum of teachers of the platform
|
||||||
1216. ActDisPstForCrsUsr Disable a message of forum of users of the course
|
1215. ActDisPstForCrsUsr Disable a message of forum of users of the course
|
||||||
1217. ActDisPstForCrsTch Disable a message of forum of teachers of the course
|
1216. ActDisPstForCrsTch Disable a message of forum of teachers of the course
|
||||||
1218. ActDisPstForDegUsr Disable a message of forum of users of the degree
|
1217. ActDisPstForDegUsr Disable a message of forum of users of the degree
|
||||||
1219. ActDisPstForDegTch Disable a message of forum of teachers of the degree
|
1218. ActDisPstForDegTch Disable a message of forum of teachers of the degree
|
||||||
1220. ActDisPstForCtrUsr Disable a message of forum of users of centre
|
1219. ActDisPstForCtrUsr Disable a message of forum of users of centre
|
||||||
1221. ActDisPstForCtrTch Disable a message of forum of teachers of centre
|
1220. ActDisPstForCtrTch Disable a message of forum of teachers of centre
|
||||||
1222. ActDisPstForInsUsr Disable a message of forum of users of the institution
|
1221. ActDisPstForInsUsr Disable a message of forum of users of the institution
|
||||||
1223. ActDisPstForInsTch Disable a message of forum of teachers of the institution
|
1222. ActDisPstForInsTch Disable a message of forum of teachers of the institution
|
||||||
1224. ActDisPstForGenUsr Disable a message of forum of users general
|
1223. ActDisPstForGenUsr Disable a message of forum of users general
|
||||||
1225. ActDisPstForGenTch Disable a message of forum of teachers general
|
1224. ActDisPstForGenTch Disable a message of forum of teachers general
|
||||||
1226. ActDisPstForSWAUsr Disable a message of forum of users of the platform
|
1225. ActDisPstForSWAUsr Disable a message of forum of users of the platform
|
||||||
1227. ActDisPstForSWATch Disable a message of forum of teachers of the platform
|
1226. ActDisPstForSWATch Disable a message of forum of teachers of the platform
|
||||||
|
|
||||||
1228. ActCht Enter in a chat room to chat
|
1227. ActCht Enter in a chat room to chat
|
||||||
|
|
||||||
Messages:
|
Messages:
|
||||||
1229. ActSeeNtf Show my recent notifications
|
1228. ActSeeNtf Show my recent notifications
|
||||||
1230. ActSeeAnn Show global announcements
|
1229. ActSeeAnn Show global announcements
|
||||||
1231. ActSeeAllNot Show all notices
|
1230. ActSeeAllNot Show all notices
|
||||||
1232. ActReqMsgUsr Write message to several users
|
1231. ActReqMsgUsr Write message to several users
|
||||||
1233. ActSeeRcvMsg Show the messages received from other users (link in menu)
|
1232. ActSeeRcvMsg Show the messages received from other users (link in menu)
|
||||||
1234. ActSeeSntMsg Show the messages sent to other users
|
1233. ActSeeSntMsg Show the messages sent to other users
|
||||||
1235. ActMaiStd Send an email to students
|
1234. ActMaiStd Send an email to students
|
||||||
1236. ActWriAnn Show form to create a new global announcement
|
1235. ActWriAnn Show form to create a new global announcement
|
||||||
1237. ActRcvAnn Receive and create a new global announcement
|
1236. ActRcvAnn Receive and create a new global announcement
|
||||||
1238. ActHidAnn Hide a global announcement that was active
|
1237. ActHidAnn Hide a global announcement that was active
|
||||||
1239. ActRevAnn Reveal a global announcement that was hidden
|
1238. ActRevAnn Reveal a global announcement that was hidden
|
||||||
1240. ActRemAnn Remove global announcement
|
1239. ActRemAnn Remove global announcement
|
||||||
1241. ActSeeOneNot Show (expand) a notice
|
1240. ActSeeOneNot Show (expand) a notice
|
||||||
1242. ActWriNot Write a new notice
|
1241. ActWriNot Write a new notice
|
||||||
1243. ActRcvNot Receive and create a new notice
|
1242. ActRcvNot Receive and create a new notice
|
||||||
1244. ActHidNot Hide a notice that was active
|
1243. ActHidNot Hide a notice that was active
|
||||||
1245. ActRevNot Reveal a notice that was hidden
|
1244. ActRevNot Reveal a notice that was hidden
|
||||||
1246. ActReqRemNot Request removal of a notice
|
1245. ActReqRemNot Request removal of a notice
|
||||||
1247. ActRemNot Remove a notice
|
1246. ActRemNot Remove a notice
|
||||||
|
|
||||||
1248. ActSeeNewNtf Show my recent notifications (link in top heading)
|
1247. ActSeeNewNtf Show my recent notifications (link in top heading)
|
||||||
1249. ActMrkNtfSee Mark all my notifications as seen
|
1248. ActMrkNtfSee Mark all my notifications as seen
|
||||||
1250. ActSeeMai See mail domains
|
1249. ActSeeMai See mail domains
|
||||||
1251. ActEdiMai Edit mail domains
|
1250. ActEdiMai Edit mail domains
|
||||||
1252. ActNewMai Request the creation of a mail domain
|
1251. ActNewMai Request the creation of a mail domain
|
||||||
1253. ActRemMai Request the removal of a mail domain
|
1252. ActRemMai Request the removal of a mail domain
|
||||||
1254. ActRenMaiSho Request the change of a mail domain
|
1253. ActRenMaiSho Request the change of a mail domain
|
||||||
1255. ActRenMaiFul Request the change of the info of a mail domain
|
1254. ActRenMaiFul Request the change of the info of a mail domain
|
||||||
|
|
||||||
1256. ActRcvMsgUsr Sent/Receive a message of a user
|
1255. ActRcvMsgUsr Sent/Receive a message of a user
|
||||||
1257. ActReqDelAllSntMsg Request the removal of todos the messages sent to other users
|
1256. ActReqDelAllSntMsg Request the removal of todos the messages sent to other users
|
||||||
1258. ActReqDelAllRcvMsg Request the removal of todos the messages received from other users
|
1257. ActReqDelAllRcvMsg Request the removal of todos the messages received from other users
|
||||||
1259. ActDelAllSntMsg Remove todos the messages sent to other users
|
1258. ActDelAllSntMsg Remove todos the messages sent to other users
|
||||||
1260. ActDelAllRcvMsg Remove todos the messages received from other users
|
1259. ActDelAllRcvMsg Remove todos the messages received from other users
|
||||||
1261. ActDelSntMsg Remove a message sent to other users
|
1260. ActDelSntMsg Remove a message sent to other users
|
||||||
1262. ActDelRcvMsg Remove a message received from other user
|
1261. ActDelRcvMsg Remove a message received from other user
|
||||||
1263. ActExpSntMsg See (expand) sent message
|
1262. ActExpSntMsg See (expand) sent message
|
||||||
1264. ActExpRcvMsg See (expand) received message
|
1263. ActExpRcvMsg See (expand) received message
|
||||||
1265. ActConSntMsg Hide (contract) sent message
|
1264. ActConSntMsg Hide (contract) sent message
|
||||||
1266. ActConRcvMsg Hide (contract) received message
|
1265. ActConRcvMsg Hide (contract) received message
|
||||||
1267. ActLstBanUsr List banned users
|
1266. ActLstBanUsr List banned users
|
||||||
1268. ActBanUsrMsg Ban the sender of a message when showing received messages
|
1267. ActBanUsrMsg Ban the sender of a message when showing received messages
|
||||||
1269. ActUnbUsrMsg Unban the sender of a message when showing received messages
|
1268. ActUnbUsrMsg Unban the sender of a message when showing received messages
|
||||||
1270. ActUnbUsrLst Unban a user when listing banned users
|
1269. ActUnbUsrLst Unban a user when listing banned users
|
||||||
|
|
||||||
Statistics:
|
Statistics:
|
||||||
1271. ActReqUseGbl Request showing use of the platform
|
1270. ActReqUseGbl Request showing use of the platform
|
||||||
1272. ActSeePhoDeg Show a class photo with the average photos of the students of each degree
|
1271. ActSeePhoDeg Show a class photo with the average photos of the students of each degree
|
||||||
1273. ActReqStaCrs Request statistics of courses
|
1272. ActReqStaCrs Request statistics of courses
|
||||||
1274. ActReqAccGbl Request query of clicks to the complete platform
|
1273. ActReqAccGbl Request query of clicks to the complete platform
|
||||||
1275. ActReqMyUsgRep Request my usage report
|
1274. ActReqMyUsgRep Request my usage report
|
||||||
1276. ActMFUAct Show most frequently used actions
|
1275. ActMFUAct Show most frequently used actions
|
||||||
|
|
||||||
|
1276. ActSeeUseGbl Show use of the platform
|
||||||
|
1277. ActPrnPhoDeg Show vista of impresión of the class photo with the average photos of the students of each degree.
|
||||||
|
1278. ActCalPhoDeg Compute the average photos of the students of each degree
|
||||||
|
1279. ActSeeAccGbl Query clicks to the complete platform
|
||||||
|
1280. ActReqAccCrs Request query of clicks in the course
|
||||||
|
1281. ActSeeAccCrs Query clicks to current course
|
||||||
|
1282. ActSeeAllStaCrs Show statistics of courses
|
||||||
|
|
||||||
|
1283. ActLstClk List last clicks in real time
|
||||||
|
|
||||||
1277. ActSeeUseGbl Show use of the platform
|
|
||||||
1278. ActPrnPhoDeg Show vista of impresión of the class photo with the average photos of the students of each degree.
|
|
||||||
1279. ActCalPhoDeg Compute the average photos of the students of each degree
|
|
||||||
1280. ActSeeAccGbl Query clicks to the complete platform
|
|
||||||
1281. ActReqAccCrs Request query of clicks in the course
|
|
||||||
1282. ActSeeAccCrs Query clicks to current course
|
|
||||||
1283. ActSeeAllStaCrs Show statistics of courses
|
|
||||||
1284. ActSeeMyUsgRep Show my usage report
|
1284. ActSeeMyUsgRep Show my usage report
|
||||||
|
|
||||||
Profile:
|
Profile:
|
||||||
|
@ -2843,8 +2844,6 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
/* ActLstSimUsr */{1579,-1,TabUnk,ActLstOth ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Dup_GetUsrCodAndListSimilarUsrs,NULL},
|
/* ActLstSimUsr */{1579,-1,TabUnk,ActLstOth ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Dup_GetUsrCodAndListSimilarUsrs,NULL},
|
||||||
/* ActRemDupUsr */{1580,-1,TabUnk,ActLstOth ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Dup_RemoveUsrFromListDupUsrs ,NULL},
|
/* ActRemDupUsr */{1580,-1,TabUnk,ActLstOth ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Dup_RemoveUsrFromListDupUsrs ,NULL},
|
||||||
|
|
||||||
/* ActLstClk */{ 989,-1,TabUnk,ActLstCon ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Con_ShowLastClicks ,NULL},
|
|
||||||
|
|
||||||
// TabSoc ******************************************************************
|
// TabSoc ******************************************************************
|
||||||
/* ActSeeSocTmlGbl */{1490, 0,TabSoc,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,Soc_ShowTimelineGbl1 ,Soc_ShowTimelineGbl2 ,"comment-dots" },
|
/* ActSeeSocTmlGbl */{1490, 0,TabSoc,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,Soc_ShowTimelineGbl1 ,Soc_ShowTimelineGbl2 ,"comment-dots" },
|
||||||
/* ActSeeSocPrf */{1520, 1,TabSoc,ActSeeSocPrf ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prf_SeeSocialProfiles ,"user-check" },
|
/* ActSeeSocPrf */{1520, 1,TabSoc,ActSeeSocPrf ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prf_SeeSocialProfiles ,"user-check" },
|
||||||
|
@ -3106,6 +3105,8 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
/* ActSeeAccCrs */{ 119,-1,TabUnk,ActReqAccGbl ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Sta_SeeCrsAccesses ,NULL},
|
/* ActSeeAccCrs */{ 119,-1,TabUnk,ActReqAccGbl ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Sta_SeeCrsAccesses ,NULL},
|
||||||
/* ActSeeAllStaCrs */{ 768,-1,TabUnk,ActReqAccGbl ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Ind_ShowIndicatorsCourses ,NULL},
|
/* ActSeeAllStaCrs */{ 768,-1,TabUnk,ActReqAccGbl ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Ind_ShowIndicatorsCourses ,NULL},
|
||||||
|
|
||||||
|
/* ActLstClk */{ 989,-1,TabUnk,ActReqAccGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Sta_ShowLastClicks ,NULL},
|
||||||
|
|
||||||
/* ActSeeMyUsgRep */{1582,-1,TabUnk,ActReqMyUsgRep ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rep_ShowMyUsageReport ,NULL},
|
/* ActSeeMyUsgRep */{1582,-1,TabUnk,ActReqMyUsgRep ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rep_ShowMyUsageReport ,NULL},
|
||||||
|
|
||||||
// TabPrf ******************************************************************
|
// TabPrf ******************************************************************
|
||||||
|
|
352
swad_action.h
352
swad_action.h
|
@ -61,7 +61,7 @@ typedef enum
|
||||||
|
|
||||||
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
||||||
|
|
||||||
#define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 41 + 24 + 115 + 157 + 437 + 166 + 172 + 42 + 14 + 76)
|
#define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 41 + 24 + 115 + 157 + 437 + 165 + 172 + 42 + 15 + 76)
|
||||||
|
|
||||||
#define Act_MAX_ACTION_COD 1752
|
#define Act_MAX_ACTION_COD 1752
|
||||||
|
|
||||||
|
@ -1274,191 +1274,189 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
|
||||||
#define ActLstSimUsr (ActRemOldBrf + 164)
|
#define ActLstSimUsr (ActRemOldBrf + 164)
|
||||||
#define ActRemDupUsr (ActRemOldBrf + 165)
|
#define ActRemDupUsr (ActRemOldBrf + 165)
|
||||||
|
|
||||||
#define ActLstClk (ActRemOldBrf + 166)
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************** Social tab *********************************/
|
/******************************** Social tab *********************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
// Actions in menu
|
// Actions in menu
|
||||||
#define ActSeeSocTmlGbl (ActLstClk + 1)
|
#define ActSeeSocTmlGbl (ActRemDupUsr + 1)
|
||||||
#define ActSeeSocPrf (ActLstClk + 2)
|
#define ActSeeSocPrf (ActRemDupUsr + 2)
|
||||||
#define ActSeeFor (ActLstClk + 3)
|
#define ActSeeFor (ActRemDupUsr + 3)
|
||||||
#define ActSeeChtRms (ActLstClk + 4)
|
#define ActSeeChtRms (ActRemDupUsr + 4)
|
||||||
// Secondary actions
|
// Secondary actions
|
||||||
#define ActRcvSocPstGbl (ActLstClk + 5)
|
#define ActRcvSocPstGbl (ActRemDupUsr + 5)
|
||||||
#define ActRcvSocComGbl (ActLstClk + 6)
|
#define ActRcvSocComGbl (ActRemDupUsr + 6)
|
||||||
#define ActShaSocNotGbl (ActLstClk + 7)
|
#define ActShaSocNotGbl (ActRemDupUsr + 7)
|
||||||
#define ActUnsSocNotGbl (ActLstClk + 8)
|
#define ActUnsSocNotGbl (ActRemDupUsr + 8)
|
||||||
#define ActFavSocNotGbl (ActLstClk + 9)
|
#define ActFavSocNotGbl (ActRemDupUsr + 9)
|
||||||
#define ActUnfSocNotGbl (ActLstClk + 10)
|
#define ActUnfSocNotGbl (ActRemDupUsr + 10)
|
||||||
#define ActFavSocComGbl (ActLstClk + 11)
|
#define ActFavSocComGbl (ActRemDupUsr + 11)
|
||||||
#define ActUnfSocComGbl (ActLstClk + 12)
|
#define ActUnfSocComGbl (ActRemDupUsr + 12)
|
||||||
#define ActReqRemSocPubGbl (ActLstClk + 13)
|
#define ActReqRemSocPubGbl (ActRemDupUsr + 13)
|
||||||
#define ActRemSocPubGbl (ActLstClk + 14)
|
#define ActRemSocPubGbl (ActRemDupUsr + 14)
|
||||||
#define ActReqRemSocComGbl (ActLstClk + 15)
|
#define ActReqRemSocComGbl (ActRemDupUsr + 15)
|
||||||
#define ActRemSocComGbl (ActLstClk + 16)
|
#define ActRemSocComGbl (ActRemDupUsr + 16)
|
||||||
|
|
||||||
#define ActReqOthPubPrf (ActLstClk + 17)
|
#define ActReqOthPubPrf (ActRemDupUsr + 17)
|
||||||
|
|
||||||
#define ActRcvSocPstUsr (ActLstClk + 18)
|
#define ActRcvSocPstUsr (ActRemDupUsr + 18)
|
||||||
#define ActRcvSocComUsr (ActLstClk + 19)
|
#define ActRcvSocComUsr (ActRemDupUsr + 19)
|
||||||
#define ActShaSocNotUsr (ActLstClk + 20)
|
#define ActShaSocNotUsr (ActRemDupUsr + 20)
|
||||||
#define ActUnsSocNotUsr (ActLstClk + 21)
|
#define ActUnsSocNotUsr (ActRemDupUsr + 21)
|
||||||
#define ActFavSocNotUsr (ActLstClk + 22)
|
#define ActFavSocNotUsr (ActRemDupUsr + 22)
|
||||||
#define ActUnfSocNotUsr (ActLstClk + 23)
|
#define ActUnfSocNotUsr (ActRemDupUsr + 23)
|
||||||
#define ActFavSocComUsr (ActLstClk + 24)
|
#define ActFavSocComUsr (ActRemDupUsr + 24)
|
||||||
#define ActUnfSocComUsr (ActLstClk + 25)
|
#define ActUnfSocComUsr (ActRemDupUsr + 25)
|
||||||
#define ActReqRemSocPubUsr (ActLstClk + 26)
|
#define ActReqRemSocPubUsr (ActRemDupUsr + 26)
|
||||||
#define ActRemSocPubUsr (ActLstClk + 27)
|
#define ActRemSocPubUsr (ActRemDupUsr + 27)
|
||||||
#define ActReqRemSocComUsr (ActLstClk + 28)
|
#define ActReqRemSocComUsr (ActRemDupUsr + 28)
|
||||||
#define ActRemSocComUsr (ActLstClk + 29)
|
#define ActRemSocComUsr (ActRemDupUsr + 29)
|
||||||
|
|
||||||
#define ActSeeOthPubPrf (ActLstClk + 30)
|
#define ActSeeOthPubPrf (ActRemDupUsr + 30)
|
||||||
#define ActCal1stClkTim (ActLstClk + 31)
|
#define ActCal1stClkTim (ActRemDupUsr + 31)
|
||||||
#define ActCalNumClk (ActLstClk + 32)
|
#define ActCalNumClk (ActRemDupUsr + 32)
|
||||||
#define ActCalNumFilVie (ActLstClk + 33)
|
#define ActCalNumFilVie (ActRemDupUsr + 33)
|
||||||
#define ActCalNumForPst (ActLstClk + 34)
|
#define ActCalNumForPst (ActRemDupUsr + 34)
|
||||||
#define ActCalNumMsgSnt (ActLstClk + 35)
|
#define ActCalNumMsgSnt (ActRemDupUsr + 35)
|
||||||
|
|
||||||
#define ActFolUsr (ActLstClk + 36)
|
#define ActFolUsr (ActRemDupUsr + 36)
|
||||||
#define ActUnfUsr (ActLstClk + 37)
|
#define ActUnfUsr (ActRemDupUsr + 37)
|
||||||
#define ActSeeFlg (ActLstClk + 38)
|
#define ActSeeFlg (ActRemDupUsr + 38)
|
||||||
#define ActSeeFlr (ActLstClk + 39)
|
#define ActSeeFlr (ActRemDupUsr + 39)
|
||||||
|
|
||||||
#define ActSeeForCrsUsr (ActLstClk + 40)
|
#define ActSeeForCrsUsr (ActRemDupUsr + 40)
|
||||||
#define ActSeeForCrsTch (ActLstClk + 41)
|
#define ActSeeForCrsTch (ActRemDupUsr + 41)
|
||||||
#define ActSeeForDegUsr (ActLstClk + 42)
|
#define ActSeeForDegUsr (ActRemDupUsr + 42)
|
||||||
#define ActSeeForDegTch (ActLstClk + 43)
|
#define ActSeeForDegTch (ActRemDupUsr + 43)
|
||||||
#define ActSeeForCtrUsr (ActLstClk + 44)
|
#define ActSeeForCtrUsr (ActRemDupUsr + 44)
|
||||||
#define ActSeeForCtrTch (ActLstClk + 45)
|
#define ActSeeForCtrTch (ActRemDupUsr + 45)
|
||||||
#define ActSeeForInsUsr (ActLstClk + 46)
|
#define ActSeeForInsUsr (ActRemDupUsr + 46)
|
||||||
#define ActSeeForInsTch (ActLstClk + 47)
|
#define ActSeeForInsTch (ActRemDupUsr + 47)
|
||||||
#define ActSeeForGenUsr (ActLstClk + 48)
|
#define ActSeeForGenUsr (ActRemDupUsr + 48)
|
||||||
#define ActSeeForGenTch (ActLstClk + 49)
|
#define ActSeeForGenTch (ActRemDupUsr + 49)
|
||||||
#define ActSeeForSWAUsr (ActLstClk + 50)
|
#define ActSeeForSWAUsr (ActRemDupUsr + 50)
|
||||||
#define ActSeeForSWATch (ActLstClk + 51)
|
#define ActSeeForSWATch (ActRemDupUsr + 51)
|
||||||
#define ActSeePstForCrsUsr (ActLstClk + 52)
|
#define ActSeePstForCrsUsr (ActRemDupUsr + 52)
|
||||||
#define ActSeePstForCrsTch (ActLstClk + 53)
|
#define ActSeePstForCrsTch (ActRemDupUsr + 53)
|
||||||
#define ActSeePstForDegUsr (ActLstClk + 54)
|
#define ActSeePstForDegUsr (ActRemDupUsr + 54)
|
||||||
#define ActSeePstForDegTch (ActLstClk + 55)
|
#define ActSeePstForDegTch (ActRemDupUsr + 55)
|
||||||
#define ActSeePstForCtrUsr (ActLstClk + 56)
|
#define ActSeePstForCtrUsr (ActRemDupUsr + 56)
|
||||||
#define ActSeePstForCtrTch (ActLstClk + 57)
|
#define ActSeePstForCtrTch (ActRemDupUsr + 57)
|
||||||
#define ActSeePstForInsUsr (ActLstClk + 58)
|
#define ActSeePstForInsUsr (ActRemDupUsr + 58)
|
||||||
#define ActSeePstForInsTch (ActLstClk + 59)
|
#define ActSeePstForInsTch (ActRemDupUsr + 59)
|
||||||
#define ActSeePstForGenUsr (ActLstClk + 60)
|
#define ActSeePstForGenUsr (ActRemDupUsr + 60)
|
||||||
#define ActSeePstForGenTch (ActLstClk + 61)
|
#define ActSeePstForGenTch (ActRemDupUsr + 61)
|
||||||
#define ActSeePstForSWAUsr (ActLstClk + 62)
|
#define ActSeePstForSWAUsr (ActRemDupUsr + 62)
|
||||||
#define ActSeePstForSWATch (ActLstClk + 63)
|
#define ActSeePstForSWATch (ActRemDupUsr + 63)
|
||||||
#define ActRcvThrForCrsUsr (ActLstClk + 64)
|
#define ActRcvThrForCrsUsr (ActRemDupUsr + 64)
|
||||||
#define ActRcvThrForCrsTch (ActLstClk + 65)
|
#define ActRcvThrForCrsTch (ActRemDupUsr + 65)
|
||||||
#define ActRcvThrForDegUsr (ActLstClk + 66)
|
#define ActRcvThrForDegUsr (ActRemDupUsr + 66)
|
||||||
#define ActRcvThrForDegTch (ActLstClk + 67)
|
#define ActRcvThrForDegTch (ActRemDupUsr + 67)
|
||||||
#define ActRcvThrForCtrUsr (ActLstClk + 68)
|
#define ActRcvThrForCtrUsr (ActRemDupUsr + 68)
|
||||||
#define ActRcvThrForCtrTch (ActLstClk + 69)
|
#define ActRcvThrForCtrTch (ActRemDupUsr + 69)
|
||||||
#define ActRcvThrForInsUsr (ActLstClk + 70)
|
#define ActRcvThrForInsUsr (ActRemDupUsr + 70)
|
||||||
#define ActRcvThrForInsTch (ActLstClk + 71)
|
#define ActRcvThrForInsTch (ActRemDupUsr + 71)
|
||||||
#define ActRcvThrForGenUsr (ActLstClk + 72)
|
#define ActRcvThrForGenUsr (ActRemDupUsr + 72)
|
||||||
#define ActRcvThrForGenTch (ActLstClk + 73)
|
#define ActRcvThrForGenTch (ActRemDupUsr + 73)
|
||||||
#define ActRcvThrForSWAUsr (ActLstClk + 74)
|
#define ActRcvThrForSWAUsr (ActRemDupUsr + 74)
|
||||||
#define ActRcvThrForSWATch (ActLstClk + 75)
|
#define ActRcvThrForSWATch (ActRemDupUsr + 75)
|
||||||
#define ActRcvRepForCrsUsr (ActLstClk + 76)
|
#define ActRcvRepForCrsUsr (ActRemDupUsr + 76)
|
||||||
#define ActRcvRepForCrsTch (ActLstClk + 77)
|
#define ActRcvRepForCrsTch (ActRemDupUsr + 77)
|
||||||
#define ActRcvRepForDegUsr (ActLstClk + 78)
|
#define ActRcvRepForDegUsr (ActRemDupUsr + 78)
|
||||||
#define ActRcvRepForDegTch (ActLstClk + 79)
|
#define ActRcvRepForDegTch (ActRemDupUsr + 79)
|
||||||
#define ActRcvRepForCtrUsr (ActLstClk + 80)
|
#define ActRcvRepForCtrUsr (ActRemDupUsr + 80)
|
||||||
#define ActRcvRepForCtrTch (ActLstClk + 81)
|
#define ActRcvRepForCtrTch (ActRemDupUsr + 81)
|
||||||
#define ActRcvRepForInsUsr (ActLstClk + 82)
|
#define ActRcvRepForInsUsr (ActRemDupUsr + 82)
|
||||||
#define ActRcvRepForInsTch (ActLstClk + 83)
|
#define ActRcvRepForInsTch (ActRemDupUsr + 83)
|
||||||
#define ActRcvRepForGenUsr (ActLstClk + 84)
|
#define ActRcvRepForGenUsr (ActRemDupUsr + 84)
|
||||||
#define ActRcvRepForGenTch (ActLstClk + 85)
|
#define ActRcvRepForGenTch (ActRemDupUsr + 85)
|
||||||
#define ActRcvRepForSWAUsr (ActLstClk + 86)
|
#define ActRcvRepForSWAUsr (ActRemDupUsr + 86)
|
||||||
#define ActRcvRepForSWATch (ActLstClk + 87)
|
#define ActRcvRepForSWATch (ActRemDupUsr + 87)
|
||||||
#define ActReqDelThrCrsUsr (ActLstClk + 88)
|
#define ActReqDelThrCrsUsr (ActRemDupUsr + 88)
|
||||||
#define ActReqDelThrCrsTch (ActLstClk + 89)
|
#define ActReqDelThrCrsTch (ActRemDupUsr + 89)
|
||||||
#define ActReqDelThrDegUsr (ActLstClk + 90)
|
#define ActReqDelThrDegUsr (ActRemDupUsr + 90)
|
||||||
#define ActReqDelThrDegTch (ActLstClk + 91)
|
#define ActReqDelThrDegTch (ActRemDupUsr + 91)
|
||||||
#define ActReqDelThrCtrUsr (ActLstClk + 92)
|
#define ActReqDelThrCtrUsr (ActRemDupUsr + 92)
|
||||||
#define ActReqDelThrCtrTch (ActLstClk + 93)
|
#define ActReqDelThrCtrTch (ActRemDupUsr + 93)
|
||||||
#define ActReqDelThrInsUsr (ActLstClk + 94)
|
#define ActReqDelThrInsUsr (ActRemDupUsr + 94)
|
||||||
#define ActReqDelThrInsTch (ActLstClk + 95)
|
#define ActReqDelThrInsTch (ActRemDupUsr + 95)
|
||||||
#define ActReqDelThrGenUsr (ActLstClk + 96)
|
#define ActReqDelThrGenUsr (ActRemDupUsr + 96)
|
||||||
#define ActReqDelThrGenTch (ActLstClk + 97)
|
#define ActReqDelThrGenTch (ActRemDupUsr + 97)
|
||||||
#define ActReqDelThrSWAUsr (ActLstClk + 98)
|
#define ActReqDelThrSWAUsr (ActRemDupUsr + 98)
|
||||||
#define ActReqDelThrSWATch (ActLstClk + 99)
|
#define ActReqDelThrSWATch (ActRemDupUsr + 99)
|
||||||
#define ActDelThrForCrsUsr (ActLstClk + 100)
|
#define ActDelThrForCrsUsr (ActRemDupUsr + 100)
|
||||||
#define ActDelThrForCrsTch (ActLstClk + 101)
|
#define ActDelThrForCrsTch (ActRemDupUsr + 101)
|
||||||
#define ActDelThrForDegUsr (ActLstClk + 102)
|
#define ActDelThrForDegUsr (ActRemDupUsr + 102)
|
||||||
#define ActDelThrForDegTch (ActLstClk + 103)
|
#define ActDelThrForDegTch (ActRemDupUsr + 103)
|
||||||
#define ActDelThrForCtrUsr (ActLstClk + 104)
|
#define ActDelThrForCtrUsr (ActRemDupUsr + 104)
|
||||||
#define ActDelThrForCtrTch (ActLstClk + 105)
|
#define ActDelThrForCtrTch (ActRemDupUsr + 105)
|
||||||
#define ActDelThrForInsUsr (ActLstClk + 106)
|
#define ActDelThrForInsUsr (ActRemDupUsr + 106)
|
||||||
#define ActDelThrForInsTch (ActLstClk + 107)
|
#define ActDelThrForInsTch (ActRemDupUsr + 107)
|
||||||
#define ActDelThrForGenUsr (ActLstClk + 108)
|
#define ActDelThrForGenUsr (ActRemDupUsr + 108)
|
||||||
#define ActDelThrForGenTch (ActLstClk + 109)
|
#define ActDelThrForGenTch (ActRemDupUsr + 109)
|
||||||
#define ActDelThrForSWAUsr (ActLstClk + 110)
|
#define ActDelThrForSWAUsr (ActRemDupUsr + 110)
|
||||||
#define ActDelThrForSWATch (ActLstClk + 111)
|
#define ActDelThrForSWATch (ActRemDupUsr + 111)
|
||||||
#define ActCutThrForCrsUsr (ActLstClk + 112)
|
#define ActCutThrForCrsUsr (ActRemDupUsr + 112)
|
||||||
#define ActCutThrForCrsTch (ActLstClk + 113)
|
#define ActCutThrForCrsTch (ActRemDupUsr + 113)
|
||||||
#define ActCutThrForDegUsr (ActLstClk + 114)
|
#define ActCutThrForDegUsr (ActRemDupUsr + 114)
|
||||||
#define ActCutThrForDegTch (ActLstClk + 115)
|
#define ActCutThrForDegTch (ActRemDupUsr + 115)
|
||||||
#define ActCutThrForCtrUsr (ActLstClk + 116)
|
#define ActCutThrForCtrUsr (ActRemDupUsr + 116)
|
||||||
#define ActCutThrForCtrTch (ActLstClk + 117)
|
#define ActCutThrForCtrTch (ActRemDupUsr + 117)
|
||||||
#define ActCutThrForInsUsr (ActLstClk + 118)
|
#define ActCutThrForInsUsr (ActRemDupUsr + 118)
|
||||||
#define ActCutThrForInsTch (ActLstClk + 119)
|
#define ActCutThrForInsTch (ActRemDupUsr + 119)
|
||||||
#define ActCutThrForGenUsr (ActLstClk + 120)
|
#define ActCutThrForGenUsr (ActRemDupUsr + 120)
|
||||||
#define ActCutThrForGenTch (ActLstClk + 121)
|
#define ActCutThrForGenTch (ActRemDupUsr + 121)
|
||||||
#define ActCutThrForSWAUsr (ActLstClk + 122)
|
#define ActCutThrForSWAUsr (ActRemDupUsr + 122)
|
||||||
#define ActCutThrForSWATch (ActLstClk + 123)
|
#define ActCutThrForSWATch (ActRemDupUsr + 123)
|
||||||
#define ActPasThrForCrsUsr (ActLstClk + 124)
|
#define ActPasThrForCrsUsr (ActRemDupUsr + 124)
|
||||||
#define ActPasThrForCrsTch (ActLstClk + 125)
|
#define ActPasThrForCrsTch (ActRemDupUsr + 125)
|
||||||
#define ActPasThrForDegUsr (ActLstClk + 126)
|
#define ActPasThrForDegUsr (ActRemDupUsr + 126)
|
||||||
#define ActPasThrForDegTch (ActLstClk + 127)
|
#define ActPasThrForDegTch (ActRemDupUsr + 127)
|
||||||
#define ActPasThrForCtrUsr (ActLstClk + 128)
|
#define ActPasThrForCtrUsr (ActRemDupUsr + 128)
|
||||||
#define ActPasThrForCtrTch (ActLstClk + 129)
|
#define ActPasThrForCtrTch (ActRemDupUsr + 129)
|
||||||
#define ActPasThrForInsUsr (ActLstClk + 130)
|
#define ActPasThrForInsUsr (ActRemDupUsr + 130)
|
||||||
#define ActPasThrForInsTch (ActLstClk + 131)
|
#define ActPasThrForInsTch (ActRemDupUsr + 131)
|
||||||
#define ActPasThrForGenUsr (ActLstClk + 132)
|
#define ActPasThrForGenUsr (ActRemDupUsr + 132)
|
||||||
#define ActPasThrForGenTch (ActLstClk + 133)
|
#define ActPasThrForGenTch (ActRemDupUsr + 133)
|
||||||
#define ActPasThrForSWAUsr (ActLstClk + 134)
|
#define ActPasThrForSWAUsr (ActRemDupUsr + 134)
|
||||||
#define ActPasThrForSWATch (ActLstClk + 135)
|
#define ActPasThrForSWATch (ActRemDupUsr + 135)
|
||||||
#define ActDelPstForCrsUsr (ActLstClk + 136)
|
#define ActDelPstForCrsUsr (ActRemDupUsr + 136)
|
||||||
#define ActDelPstForCrsTch (ActLstClk + 137)
|
#define ActDelPstForCrsTch (ActRemDupUsr + 137)
|
||||||
#define ActDelPstForDegUsr (ActLstClk + 138)
|
#define ActDelPstForDegUsr (ActRemDupUsr + 138)
|
||||||
#define ActDelPstForDegTch (ActLstClk + 139)
|
#define ActDelPstForDegTch (ActRemDupUsr + 139)
|
||||||
#define ActDelPstForCtrUsr (ActLstClk + 140)
|
#define ActDelPstForCtrUsr (ActRemDupUsr + 140)
|
||||||
#define ActDelPstForCtrTch (ActLstClk + 141)
|
#define ActDelPstForCtrTch (ActRemDupUsr + 141)
|
||||||
#define ActDelPstForInsUsr (ActLstClk + 142)
|
#define ActDelPstForInsUsr (ActRemDupUsr + 142)
|
||||||
#define ActDelPstForInsTch (ActLstClk + 143)
|
#define ActDelPstForInsTch (ActRemDupUsr + 143)
|
||||||
#define ActDelPstForGenUsr (ActLstClk + 144)
|
#define ActDelPstForGenUsr (ActRemDupUsr + 144)
|
||||||
#define ActDelPstForGenTch (ActLstClk + 145)
|
#define ActDelPstForGenTch (ActRemDupUsr + 145)
|
||||||
#define ActDelPstForSWAUsr (ActLstClk + 146)
|
#define ActDelPstForSWAUsr (ActRemDupUsr + 146)
|
||||||
#define ActDelPstForSWATch (ActLstClk + 147)
|
#define ActDelPstForSWATch (ActRemDupUsr + 147)
|
||||||
#define ActEnbPstForCrsUsr (ActLstClk + 148)
|
#define ActEnbPstForCrsUsr (ActRemDupUsr + 148)
|
||||||
#define ActEnbPstForCrsTch (ActLstClk + 149)
|
#define ActEnbPstForCrsTch (ActRemDupUsr + 149)
|
||||||
#define ActEnbPstForDegUsr (ActLstClk + 150)
|
#define ActEnbPstForDegUsr (ActRemDupUsr + 150)
|
||||||
#define ActEnbPstForDegTch (ActLstClk + 151)
|
#define ActEnbPstForDegTch (ActRemDupUsr + 151)
|
||||||
#define ActEnbPstForCtrUsr (ActLstClk + 152)
|
#define ActEnbPstForCtrUsr (ActRemDupUsr + 152)
|
||||||
#define ActEnbPstForCtrTch (ActLstClk + 153)
|
#define ActEnbPstForCtrTch (ActRemDupUsr + 153)
|
||||||
#define ActEnbPstForInsUsr (ActLstClk + 154)
|
#define ActEnbPstForInsUsr (ActRemDupUsr + 154)
|
||||||
#define ActEnbPstForInsTch (ActLstClk + 155)
|
#define ActEnbPstForInsTch (ActRemDupUsr + 155)
|
||||||
#define ActEnbPstForGenUsr (ActLstClk + 156)
|
#define ActEnbPstForGenUsr (ActRemDupUsr + 156)
|
||||||
#define ActEnbPstForGenTch (ActLstClk + 157)
|
#define ActEnbPstForGenTch (ActRemDupUsr + 157)
|
||||||
#define ActEnbPstForSWAUsr (ActLstClk + 158)
|
#define ActEnbPstForSWAUsr (ActRemDupUsr + 158)
|
||||||
#define ActEnbPstForSWATch (ActLstClk + 159)
|
#define ActEnbPstForSWATch (ActRemDupUsr + 159)
|
||||||
#define ActDisPstForCrsUsr (ActLstClk + 160)
|
#define ActDisPstForCrsUsr (ActRemDupUsr + 160)
|
||||||
#define ActDisPstForCrsTch (ActLstClk + 161)
|
#define ActDisPstForCrsTch (ActRemDupUsr + 161)
|
||||||
#define ActDisPstForDegUsr (ActLstClk + 162)
|
#define ActDisPstForDegUsr (ActRemDupUsr + 162)
|
||||||
#define ActDisPstForDegTch (ActLstClk + 163)
|
#define ActDisPstForDegTch (ActRemDupUsr + 163)
|
||||||
#define ActDisPstForCtrUsr (ActLstClk + 164)
|
#define ActDisPstForCtrUsr (ActRemDupUsr + 164)
|
||||||
#define ActDisPstForCtrTch (ActLstClk + 165)
|
#define ActDisPstForCtrTch (ActRemDupUsr + 165)
|
||||||
#define ActDisPstForInsUsr (ActLstClk + 166)
|
#define ActDisPstForInsUsr (ActRemDupUsr + 166)
|
||||||
#define ActDisPstForInsTch (ActLstClk + 167)
|
#define ActDisPstForInsTch (ActRemDupUsr + 167)
|
||||||
#define ActDisPstForGenUsr (ActLstClk + 168)
|
#define ActDisPstForGenUsr (ActRemDupUsr + 168)
|
||||||
#define ActDisPstForGenTch (ActLstClk + 169)
|
#define ActDisPstForGenTch (ActRemDupUsr + 169)
|
||||||
#define ActDisPstForSWAUsr (ActLstClk + 170)
|
#define ActDisPstForSWAUsr (ActRemDupUsr + 170)
|
||||||
#define ActDisPstForSWATch (ActLstClk + 171)
|
#define ActDisPstForSWATch (ActRemDupUsr + 171)
|
||||||
|
|
||||||
#define ActCht (ActLstClk + 172)
|
#define ActCht (ActRemDupUsr + 172)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************* Messages tab ********************************/
|
/******************************* Messages tab ********************************/
|
||||||
|
@ -1530,7 +1528,9 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
|
||||||
#define ActSeeAccCrs (ActUnbUsrLst + 12)
|
#define ActSeeAccCrs (ActUnbUsrLst + 12)
|
||||||
#define ActSeeAllStaCrs (ActUnbUsrLst + 13)
|
#define ActSeeAllStaCrs (ActUnbUsrLst + 13)
|
||||||
|
|
||||||
#define ActSeeMyUsgRep (ActUnbUsrLst + 14)
|
#define ActLstClk (ActUnbUsrLst + 14)
|
||||||
|
|
||||||
|
#define ActSeeMyUsgRep (ActUnbUsrLst + 15)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************** Profile tab ********************************/
|
/******************************** Profile tab ********************************/
|
||||||
|
|
|
@ -348,8 +348,6 @@ Buenos d
|
||||||
|
|
||||||
// TODO: Fix bug: un usuario no identificado no debería ver el icono para acceder a sus asignaturas en la opción de buscar.
|
// TODO: Fix bug: un usuario no identificado no debería ver el icono para acceder a sus asignaturas en la opción de buscar.
|
||||||
|
|
||||||
// TODO: La pestaña Evaluación debería estar visible para un usuario identificado sin asignatura seleccionada, al menos para ver las encuestas globales.
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -369,10 +367,11 @@ En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
ps2pdf source.ps destination.pdf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 18.31.3 (2019-01-11)"
|
#define Log_PLATFORM_VERSION "SWAD 18.31.4 (2019-01-11)"
|
||||||
#define CSS_FILE "swad18.31.css"
|
#define CSS_FILE "swad18.31.css"
|
||||||
#define JS_FILE "swad17.17.1.js"
|
#define JS_FILE "swad17.17.1.js"
|
||||||
/*
|
/*
|
||||||
|
Version 18.31.4: Jan 11, 2019 Option for last clicks is moved to analytics tab. (239587 lines)
|
||||||
Version 18.31.3: Jan 11, 2019 Changes in some icons. (239533 lines)
|
Version 18.31.3: Jan 11, 2019 Changes in some icons. (239533 lines)
|
||||||
Copy the following icons to icon public directory:
|
Copy the following icons to icon public directory:
|
||||||
sudo cp icon/chart-line.svg /var/www/html/swad/icon/
|
sudo cp icon/chart-line.svg /var/www/html/swad/icon/
|
||||||
|
|
238
swad_connected.c
238
swad_connected.c
|
@ -39,7 +39,6 @@
|
||||||
#include "swad_hierarchy.h"
|
#include "swad_hierarchy.h"
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
#include "swad_photo.h"
|
#include "swad_photo.h"
|
||||||
#include "swad_role.h"
|
|
||||||
#include "swad_string.h"
|
#include "swad_string.h"
|
||||||
#include "swad_table.h"
|
#include "swad_table.h"
|
||||||
#include "swad_user.h"
|
#include "swad_user.h"
|
||||||
|
@ -74,7 +73,6 @@ static void Con_ComputeConnectedUsrsWithARoleCurrentCrsOneByOne (Rol_Role_t Role
|
||||||
static void Con_ShowConnectedUsrsCurrentCrsOneByOneOnRightColumn (Rol_Role_t Role);
|
static void Con_ShowConnectedUsrsCurrentCrsOneByOneOnRightColumn (Rol_Role_t Role);
|
||||||
static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role);
|
static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role);
|
||||||
static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t Role);
|
static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t Role);
|
||||||
static void Con_WriteHoursMinutesSecondsFromSeconds (time_t Seconds);
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************************** Show connected users *****************************/
|
/************************** Show connected users *****************************/
|
||||||
|
@ -141,213 +139,6 @@ static void Con_PutIconToUpdateConnected (void)
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/*************** Put a link to show last clicks in real time *****************/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
void Con_PutLinkToLastClicks (void)
|
|
||||||
{
|
|
||||||
extern const char *Txt_Last_clicks;
|
|
||||||
|
|
||||||
Lay_PutContextualLink (ActLstClk,NULL,NULL,
|
|
||||||
"mouse-pointer.svg",
|
|
||||||
Txt_Last_clicks,Txt_Last_clicks,
|
|
||||||
NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/****************************** Show last clicks *****************************/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
void Con_ShowLastClicks (void)
|
|
||||||
{
|
|
||||||
extern const char *Hlp_USERS_Connected_last_clicks;
|
|
||||||
extern const char *Txt_Last_clicks_in_real_time;
|
|
||||||
|
|
||||||
/***** Start box *****/
|
|
||||||
Box_StartBox (NULL,Txt_Last_clicks_in_real_time,NULL,
|
|
||||||
Hlp_USERS_Connected_last_clicks,Box_NOT_CLOSABLE);
|
|
||||||
|
|
||||||
/***** Get and show last clicks *****/
|
|
||||||
fprintf (Gbl.F.Out,"<div id=\"lastclicks\"" // Used for AJAX based refresh
|
|
||||||
" class=\"CENTER_MIDDLE\">");
|
|
||||||
Con_GetAndShowLastClicks ();
|
|
||||||
fprintf (Gbl.F.Out,"</div>"); // Used for AJAX based refresh
|
|
||||||
|
|
||||||
/***** End box *****/
|
|
||||||
Box_EndBox ();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/**************** Get last clicks from database and show them ****************/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
void Con_GetAndShowLastClicks (void)
|
|
||||||
{
|
|
||||||
extern const char *Txt_Click;
|
|
||||||
extern const char *Txt_ELAPSED_TIME;
|
|
||||||
extern const char *Txt_Role;
|
|
||||||
extern const char *Txt_Country;
|
|
||||||
extern const char *Txt_Institution;
|
|
||||||
extern const char *Txt_Centre;
|
|
||||||
extern const char *Txt_Degree;
|
|
||||||
extern const char *Txt_Action;
|
|
||||||
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
|
||||||
MYSQL_RES *mysql_res;
|
|
||||||
MYSQL_ROW row;
|
|
||||||
unsigned long NumRow;
|
|
||||||
unsigned long NumRows;
|
|
||||||
long ActCod;
|
|
||||||
const char *ClassRow;
|
|
||||||
time_t TimeDiff;
|
|
||||||
struct Country Cty;
|
|
||||||
struct Instit Ins;
|
|
||||||
struct Centre Ctr;
|
|
||||||
struct Degree Deg;
|
|
||||||
|
|
||||||
/***** Get last clicks from database *****/
|
|
||||||
/* Important for maximum performance:
|
|
||||||
do the LIMIT in the big log table before the JOIN */
|
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get last clicks",
|
|
||||||
"SELECT last_logs.LogCod,last_logs.ActCod,"
|
|
||||||
"last_logs.Dif,last_logs.Role,"
|
|
||||||
"last_logs.CtyCod,last_logs.InsCod,"
|
|
||||||
"last_logs.CtrCod,last_logs.DegCod,"
|
|
||||||
"actions.Txt"
|
|
||||||
" FROM"
|
|
||||||
" (SELECT LogCod,ActCod,"
|
|
||||||
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(ClickTime) AS Dif,"
|
|
||||||
"Role,CtyCod,InsCod,CtrCod,DegCod"
|
|
||||||
" FROM log_recent ORDER BY LogCod DESC LIMIT 20)"
|
|
||||||
" AS last_logs,actions"
|
|
||||||
" WHERE last_logs.ActCod=actions.ActCod"
|
|
||||||
" AND actions.Language='es'");
|
|
||||||
|
|
||||||
/***** Write list of connected users *****/
|
|
||||||
Tbl_StartTableCenter (1);
|
|
||||||
fprintf (Gbl.F.Out,"<tr>"
|
|
||||||
"<th class=\"LEFT_MIDDLE\""
|
|
||||||
" style=\"width:85px;\">"
|
|
||||||
"%s" // Click
|
|
||||||
"</th>"
|
|
||||||
"<th class=\"RIGHT_MIDDLE\""
|
|
||||||
" style=\"width:50px;\">"
|
|
||||||
"%s" // Elapsed time
|
|
||||||
"</th>"
|
|
||||||
"<th class=\"LEFT_MIDDLE\""
|
|
||||||
" style=\"width:100px;\">"
|
|
||||||
"%s" // Role
|
|
||||||
"</th>"
|
|
||||||
"<th class=\"LEFT_MIDDLE\""
|
|
||||||
" style=\"width:100px;\">"
|
|
||||||
"%s" // Country
|
|
||||||
"</th>"
|
|
||||||
"<th class=\"LEFT_MIDDLE\""
|
|
||||||
" style=\"width:150px;\">"
|
|
||||||
"%s" // Institution
|
|
||||||
"</th>"
|
|
||||||
"<th class=\"LEFT_MIDDLE\""
|
|
||||||
" style=\"width:150px;\">"
|
|
||||||
"%s" // Centre
|
|
||||||
"</th>"
|
|
||||||
"<th class=\"LEFT_MIDDLE\""
|
|
||||||
" style=\"width:200px;\">"
|
|
||||||
"%s" // Degree
|
|
||||||
"</th>"
|
|
||||||
"<th class=\"LEFT_MIDDLE\""
|
|
||||||
" style=\"width:275px;\">"
|
|
||||||
"%s" // Action
|
|
||||||
"</th>"
|
|
||||||
"</tr>",
|
|
||||||
Txt_Click,
|
|
||||||
Txt_ELAPSED_TIME,
|
|
||||||
Txt_Role,
|
|
||||||
Txt_Country,
|
|
||||||
Txt_Institution,
|
|
||||||
Txt_Centre,
|
|
||||||
Txt_Degree,
|
|
||||||
Txt_Action);
|
|
||||||
|
|
||||||
for (NumRow = 0;
|
|
||||||
NumRow < NumRows;
|
|
||||||
NumRow++)
|
|
||||||
{
|
|
||||||
row = mysql_fetch_row (mysql_res);
|
|
||||||
|
|
||||||
/* Get action code (row[1]) */
|
|
||||||
ActCod = Str_ConvertStrCodToLongCod (row[1]);
|
|
||||||
|
|
||||||
/* Use a special color for this row depending on the action */
|
|
||||||
ClassRow = (Act_GetBrowserTab (Act_GetActionFromActCod (ActCod)) == Act_DOWNLD_FILE) ? "DAT_SMALL_YELLOW LEFT_MIDDLE" :
|
|
||||||
(ActCod == Act_GetActCod (ActLogIn ) ||
|
|
||||||
ActCod == Act_GetActCod (ActLogInNew)) ? "DAT_SMALL_GREEN" :
|
|
||||||
(ActCod == Act_GetActCod (ActLogOut )) ? "DAT_SMALL_RED" :
|
|
||||||
(ActCod == Act_GetActCod (ActWebSvc )) ? "DAT_SMALL_BLUE" :
|
|
||||||
"DAT_SMALL_GREY";
|
|
||||||
|
|
||||||
/* Compute elapsed time from last access */
|
|
||||||
if (sscanf (row[2],"%ld",&TimeDiff) != 1)
|
|
||||||
TimeDiff = (time_t) 0;
|
|
||||||
|
|
||||||
/* Get country code (row[4]) */
|
|
||||||
Cty.CtyCod = Str_ConvertStrCodToLongCod (row[4]);
|
|
||||||
Cty_GetCountryName (Cty.CtyCod,Cty.Name[Gbl.Prefs.Language]);
|
|
||||||
|
|
||||||
/* Get institution code (row[5]) */
|
|
||||||
Ins.InsCod = Str_ConvertStrCodToLongCod (row[5]);
|
|
||||||
Ins_GetShortNameOfInstitution (&Ins);
|
|
||||||
|
|
||||||
/* Get centre code (row[6]) */
|
|
||||||
Ctr.CtrCod = Str_ConvertStrCodToLongCod (row[6]);
|
|
||||||
Ctr_GetShortNameOfCentreByCod (&Ctr);
|
|
||||||
|
|
||||||
/* Get degree code (row[7]) */
|
|
||||||
Deg.DegCod = Str_ConvertStrCodToLongCod (row[7]);
|
|
||||||
Deg_GetShortNameOfDegreeByCod (&Deg);
|
|
||||||
|
|
||||||
/* Print table row */
|
|
||||||
fprintf (Gbl.F.Out,"<tr>"
|
|
||||||
"<td class=\"%s LEFT_MIDDLE\">"
|
|
||||||
"%s" // Click
|
|
||||||
"</td>"
|
|
||||||
"<td class=\"%s RIGHT_MIDDLE\">" // Elapsed time
|
|
||||||
"",
|
|
||||||
ClassRow,row[0],
|
|
||||||
ClassRow);
|
|
||||||
Con_WriteHoursMinutesSecondsFromSeconds (TimeDiff);
|
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
|
||||||
"<td class=\"%s LEFT_MIDDLE\">"
|
|
||||||
"%s" // Role
|
|
||||||
"</td>"
|
|
||||||
"<td class=\"%s LEFT_MIDDLE\">"
|
|
||||||
"%s" // Country
|
|
||||||
"</td>"
|
|
||||||
"<td class=\"%s LEFT_MIDDLE\">"
|
|
||||||
"%s" // Institution
|
|
||||||
"</td>"
|
|
||||||
"<td class=\"%s LEFT_MIDDLE\">"
|
|
||||||
"%s" // Centre
|
|
||||||
"</td>"
|
|
||||||
"<td class=\"%s LEFT_MIDDLE\">"
|
|
||||||
"%s" // Degree
|
|
||||||
"</td>"
|
|
||||||
"<td class=\"%s LEFT_MIDDLE\">"
|
|
||||||
"%s" // Action
|
|
||||||
"</td>"
|
|
||||||
"</tr>",
|
|
||||||
ClassRow,Txt_ROLES_SINGUL_Abc[Rol_ConvertUnsignedStrToRole (row[3])][Usr_SEX_UNKNOWN],
|
|
||||||
ClassRow,Cty.Name[Gbl.Prefs.Language],
|
|
||||||
ClassRow,Ins.ShrtName,
|
|
||||||
ClassRow,Ctr.ShrtName,
|
|
||||||
ClassRow,Deg.ShrtName,
|
|
||||||
ClassRow,row[8]);
|
|
||||||
}
|
|
||||||
Tbl_EndTable ();
|
|
||||||
|
|
||||||
/***** Free structure that stores the query result *****/
|
|
||||||
mysql_free_result (mysql_res);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************** Show total number of connected users *******************/
|
/******************** Show total number of connected users *******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -1071,7 +862,7 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role)
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<div id=\"hm%u\">",
|
fprintf (Gbl.F.Out,"<div id=\"hm%u\">",
|
||||||
Gbl.Usrs.Connected.NumUsr); // Used for automatic update, only when displayed on right column
|
Gbl.Usrs.Connected.NumUsr); // Used for automatic update, only when displayed on right column
|
||||||
Con_WriteHoursMinutesSecondsFromSeconds (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].TimeDiff);
|
Dat_WriteHoursMinutesSecondsFromSeconds (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].TimeDiff);
|
||||||
fprintf (Gbl.F.Out,"</div>"); // Used for automatic update, only when displayed on right column
|
fprintf (Gbl.F.Out,"</div>"); // Used for automatic update, only when displayed on right column
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
fprintf (Gbl.F.Out,"</td>"
|
||||||
|
@ -1288,7 +1079,7 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\""
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\""
|
||||||
" style=\"width:48px;\">",
|
" style=\"width:48px;\">",
|
||||||
Font,Gbl.RowEvenOdd);
|
Font,Gbl.RowEvenOdd);
|
||||||
Con_WriteHoursMinutesSecondsFromSeconds (TimeDiff);
|
Dat_WriteHoursMinutesSecondsFromSeconds (TimeDiff);
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
fprintf (Gbl.F.Out,"</td>"
|
||||||
"</tr>");
|
"</tr>");
|
||||||
|
|
||||||
|
@ -1304,31 +1095,6 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
||||||
DB_FreeMySQLResult (&mysql_res);
|
DB_FreeMySQLResult (&mysql_res);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/********* Write time difference in seconds as hours:minutes:seconds *********/
|
|
||||||
/*****************************************************************************/
|
|
||||||
// TimeDiff must be in seconds
|
|
||||||
|
|
||||||
static void Con_WriteHoursMinutesSecondsFromSeconds (time_t Seconds)
|
|
||||||
{
|
|
||||||
time_t Hours = Seconds / (60 * 60);
|
|
||||||
time_t Minutes = (Seconds / 60) % 60;
|
|
||||||
|
|
||||||
Seconds %= 60;
|
|
||||||
if (Hours)
|
|
||||||
fprintf (Gbl.F.Out,"%ld:%02ld'%02ld"",
|
|
||||||
(long) Hours,
|
|
||||||
(long) Minutes,
|
|
||||||
(long) Seconds);
|
|
||||||
else if (Minutes)
|
|
||||||
fprintf (Gbl.F.Out,"%ld'%02ld"",
|
|
||||||
(long) Minutes,
|
|
||||||
(long) Seconds);
|
|
||||||
else
|
|
||||||
fprintf (Gbl.F.Out,"%ld"",
|
|
||||||
(long) Seconds);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/****** Write script to automatically update clocks of connected users *******/
|
/****** Write script to automatically update clocks of connected users *******/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -51,9 +51,6 @@ struct ConnectedUsrs
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Con_ShowConnectedUsrs (void);
|
void Con_ShowConnectedUsrs (void);
|
||||||
void Con_PutLinkToLastClicks (void);
|
|
||||||
void Con_ShowLastClicks (void);
|
|
||||||
void Con_GetAndShowLastClicks (void);
|
|
||||||
void Con_ShowGlobalConnectedUsrs (void);
|
void Con_ShowGlobalConnectedUsrs (void);
|
||||||
void Con_ComputeConnectedUsrsBelongingToCurrentCrs (void);
|
void Con_ComputeConnectedUsrsBelongingToCurrentCrs (void);
|
||||||
void Con_ShowConnectedUsrsBelongingToCurrentCrs (void);
|
void Con_ShowConnectedUsrsBelongingToCurrentCrs (void);
|
||||||
|
|
26
swad_date.c
26
swad_date.c
|
@ -1537,3 +1537,29 @@ void Dat_WriteScriptMonths (void)
|
||||||
}
|
}
|
||||||
fprintf (Gbl.F.Out,"];\n");
|
fprintf (Gbl.F.Out,"];\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/********* Write time difference in seconds as hours:minutes:seconds *********/
|
||||||
|
/*****************************************************************************/
|
||||||
|
// TimeDiff must be in seconds
|
||||||
|
|
||||||
|
void Dat_WriteHoursMinutesSecondsFromSeconds (time_t Seconds)
|
||||||
|
{
|
||||||
|
time_t Hours = Seconds / (60 * 60);
|
||||||
|
time_t Minutes = (Seconds / 60) % 60;
|
||||||
|
|
||||||
|
Seconds %= 60;
|
||||||
|
if (Hours)
|
||||||
|
fprintf (Gbl.F.Out,"%ld:%02ld'%02ld"",
|
||||||
|
(long) Hours,
|
||||||
|
(long) Minutes,
|
||||||
|
(long) Seconds);
|
||||||
|
else if (Minutes)
|
||||||
|
fprintf (Gbl.F.Out,"%ld'%02ld"",
|
||||||
|
(long) Minutes,
|
||||||
|
(long) Seconds);
|
||||||
|
else
|
||||||
|
fprintf (Gbl.F.Out,"%ld"",
|
||||||
|
(long) Seconds);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -188,4 +188,6 @@ void Dat_AssignDate (struct Date *DateDst,struct Date *DateSrc);
|
||||||
|
|
||||||
void Dat_WriteScriptMonths (void);
|
void Dat_WriteScriptMonths (void);
|
||||||
|
|
||||||
|
void Dat_WriteHoursMinutesSecondsFromSeconds (time_t Seconds);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1404,7 +1404,7 @@ void Lay_RefreshLastClicks (void)
|
||||||
fprintf (Gbl.F.Out,"%lu|",Cfg_TIME_TO_REFRESH_LAST_CLICKS);
|
fprintf (Gbl.F.Out,"%lu|",Cfg_TIME_TO_REFRESH_LAST_CLICKS);
|
||||||
|
|
||||||
/***** Get and show last clicks *****/
|
/***** Get and show last clicks *****/
|
||||||
Con_GetAndShowLastClicks ();
|
Sta_GetAndShowLastClicks ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** All the output is made, so don't write anymore *****/
|
/***** All the output is made, so don't write anymore *****/
|
||||||
|
|
289
swad_statistic.c
289
swad_statistic.c
|
@ -54,6 +54,7 @@
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
#include "swad_profile.h"
|
#include "swad_profile.h"
|
||||||
#include "swad_project.h"
|
#include "swad_project.h"
|
||||||
|
#include "swad_role.h"
|
||||||
#include "swad_social.h"
|
#include "swad_social.h"
|
||||||
#include "swad_statistic.h"
|
#include "swad_statistic.h"
|
||||||
#include "swad_tab.h"
|
#include "swad_tab.h"
|
||||||
|
@ -139,6 +140,9 @@ typedef enum
|
||||||
/***************************** Internal prototypes ***************************/
|
/***************************** Internal prototypes ***************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Sta_PutLinkToCourseHits (void);
|
||||||
|
static void Sta_PutLinkToGlobalHits (void);
|
||||||
|
|
||||||
static void Sta_WriteSelectorCountType (void);
|
static void Sta_WriteSelectorCountType (void);
|
||||||
static void Sta_WriteSelectorAction (void);
|
static void Sta_WriteSelectorAction (void);
|
||||||
static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse);
|
static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse);
|
||||||
|
@ -425,6 +429,17 @@ void Sta_AskShowCrsHits (void)
|
||||||
Sta_ClicksGroupedBy_t ClicksGroupedBy;
|
Sta_ClicksGroupedBy_t ClicksGroupedBy;
|
||||||
unsigned long i;
|
unsigned long i;
|
||||||
|
|
||||||
|
/***** Contextual links *****/
|
||||||
|
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
||||||
|
|
||||||
|
/* Put form to go to test edition and configuration */
|
||||||
|
Sta_PutLinkToGlobalHits ();
|
||||||
|
|
||||||
|
/* Link to show last clicks in real time */
|
||||||
|
Con_PutLinkToLastClicks ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"</div>");
|
||||||
|
|
||||||
/***** Get and update type of list,
|
/***** Get and update type of list,
|
||||||
number of columns in class photo
|
number of columns in class photo
|
||||||
and preference about view photos *****/
|
and preference about view photos *****/
|
||||||
|
@ -602,7 +617,6 @@ void Sta_AskShowGblHits (void)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_ANALYTICS_Visits_global_visits;
|
extern const char *Hlp_ANALYTICS_Visits_global_visits;
|
||||||
extern const char *The_ClassForm[The_NUM_THEMES];
|
extern const char *The_ClassForm[The_NUM_THEMES];
|
||||||
extern const char *Txt_Visits_to_course;
|
|
||||||
extern const char *Txt_Statistics_of_all_visits;
|
extern const char *Txt_Statistics_of_all_visits;
|
||||||
extern const char *Txt_Users;
|
extern const char *Txt_Users;
|
||||||
extern const char *Txt_ROLE_STATS[Sta_NUM_ROLES_STAT];
|
extern const char *Txt_ROLE_STATS[Sta_NUM_ROLES_STAT];
|
||||||
|
@ -618,20 +632,7 @@ void Sta_AskShowGblHits (void)
|
||||||
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
||||||
|
|
||||||
/* Put form to go to test edition and configuration */
|
/* Put form to go to test edition and configuration */
|
||||||
if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected
|
Sta_PutLinkToCourseHits ();
|
||||||
switch (Gbl.Usrs.Me.Role.Logged)
|
|
||||||
{
|
|
||||||
case Rol_NET:
|
|
||||||
case Rol_TCH:
|
|
||||||
case Rol_SYS_ADM:
|
|
||||||
Lay_PutContextualLink (ActReqAccCrs,NULL,NULL,
|
|
||||||
"chart-line.svg",
|
|
||||||
Txt_Visits_to_course,Txt_Visits_to_course,
|
|
||||||
NULL);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Link to show last clicks in real time */
|
/* Link to show last clicks in real time */
|
||||||
Con_PutLinkToLastClicks ();
|
Con_PutLinkToLastClicks ();
|
||||||
|
@ -737,6 +738,44 @@ void Sta_AskShowGblHits (void)
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/*************** Put a link to show visits to current course *****************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Sta_PutLinkToCourseHits (void)
|
||||||
|
{
|
||||||
|
extern const char *Txt_Visits_to_course;
|
||||||
|
|
||||||
|
if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected
|
||||||
|
switch (Gbl.Usrs.Me.Role.Logged)
|
||||||
|
{
|
||||||
|
case Rol_NET:
|
||||||
|
case Rol_TCH:
|
||||||
|
case Rol_SYS_ADM:
|
||||||
|
Lay_PutContextualLink (ActReqAccCrs,NULL,NULL,
|
||||||
|
"chart-line.svg",
|
||||||
|
Txt_Visits_to_course,Txt_Visits_to_course,
|
||||||
|
NULL);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/********************* Put a link to show global visits **********************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Sta_PutLinkToGlobalHits (void)
|
||||||
|
{
|
||||||
|
extern const char *Txt_Global_visits;
|
||||||
|
|
||||||
|
Lay_PutContextualLink (ActReqAccGbl,NULL,NULL,
|
||||||
|
"chart-line.svg",
|
||||||
|
Txt_Global_visits,Txt_Global_visits,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/****** Put selectors for type of access count and for degree or course ******/
|
/****** Put selectors for type of access count and for degree or course ******/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -9616,3 +9655,223 @@ void Sta_WriteTime (char Str[Dat_MAX_BYTES_TIME],long TimeInMicroseconds)
|
||||||
TimeInMicroseconds / (60 * 1000000L),
|
TimeInMicroseconds / (60 * 1000000L),
|
||||||
(TimeInMicroseconds / 1000000L) % 60);
|
(TimeInMicroseconds / 1000000L) % 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/*************** Put a link to show last clicks in real time *****************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Con_PutLinkToLastClicks (void)
|
||||||
|
{
|
||||||
|
extern const char *Txt_Last_clicks;
|
||||||
|
|
||||||
|
Lay_PutContextualLink (ActLstClk,NULL,NULL,
|
||||||
|
"mouse-pointer.svg",
|
||||||
|
Txt_Last_clicks,Txt_Last_clicks,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/****************************** Show last clicks *****************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Sta_ShowLastClicks (void)
|
||||||
|
{
|
||||||
|
extern const char *Hlp_USERS_Connected_last_clicks;
|
||||||
|
extern const char *Txt_Last_clicks_in_real_time;
|
||||||
|
|
||||||
|
/***** Contextual links *****/
|
||||||
|
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
||||||
|
|
||||||
|
/* Put form to go to test edition and configuration */
|
||||||
|
Sta_PutLinkToGlobalHits ();
|
||||||
|
|
||||||
|
/* Put form to go to test edition and configuration */
|
||||||
|
Sta_PutLinkToCourseHits ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"</div>");
|
||||||
|
|
||||||
|
/***** Start box *****/
|
||||||
|
Box_StartBox (NULL,Txt_Last_clicks_in_real_time,NULL,
|
||||||
|
Hlp_USERS_Connected_last_clicks,Box_NOT_CLOSABLE);
|
||||||
|
|
||||||
|
/***** Get and show last clicks *****/
|
||||||
|
fprintf (Gbl.F.Out,"<div id=\"lastclicks\"" // Used for AJAX based refresh
|
||||||
|
" class=\"CENTER_MIDDLE\">");
|
||||||
|
Sta_GetAndShowLastClicks ();
|
||||||
|
fprintf (Gbl.F.Out,"</div>"); // Used for AJAX based refresh
|
||||||
|
|
||||||
|
/***** End box *****/
|
||||||
|
Box_EndBox ();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/**************** Get last clicks from database and show them ****************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Sta_GetAndShowLastClicks (void)
|
||||||
|
{
|
||||||
|
extern const char *Txt_Click;
|
||||||
|
extern const char *Txt_ELAPSED_TIME;
|
||||||
|
extern const char *Txt_Role;
|
||||||
|
extern const char *Txt_Country;
|
||||||
|
extern const char *Txt_Institution;
|
||||||
|
extern const char *Txt_Centre;
|
||||||
|
extern const char *Txt_Degree;
|
||||||
|
extern const char *Txt_Action;
|
||||||
|
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||||
|
MYSQL_RES *mysql_res;
|
||||||
|
MYSQL_ROW row;
|
||||||
|
unsigned long NumRow;
|
||||||
|
unsigned long NumRows;
|
||||||
|
long ActCod;
|
||||||
|
const char *ClassRow;
|
||||||
|
time_t TimeDiff;
|
||||||
|
struct Country Cty;
|
||||||
|
struct Instit Ins;
|
||||||
|
struct Centre Ctr;
|
||||||
|
struct Degree Deg;
|
||||||
|
|
||||||
|
/***** Get last clicks from database *****/
|
||||||
|
/* Important for maximum performance:
|
||||||
|
do the LIMIT in the big log table before the JOIN */
|
||||||
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get last clicks",
|
||||||
|
"SELECT last_logs.LogCod,last_logs.ActCod,"
|
||||||
|
"last_logs.Dif,last_logs.Role,"
|
||||||
|
"last_logs.CtyCod,last_logs.InsCod,"
|
||||||
|
"last_logs.CtrCod,last_logs.DegCod,"
|
||||||
|
"actions.Txt"
|
||||||
|
" FROM"
|
||||||
|
" (SELECT LogCod,ActCod,"
|
||||||
|
"UNIX_TIMESTAMP()-UNIX_TIMESTAMP(ClickTime) AS Dif,"
|
||||||
|
"Role,CtyCod,InsCod,CtrCod,DegCod"
|
||||||
|
" FROM log_recent ORDER BY LogCod DESC LIMIT 20)"
|
||||||
|
" AS last_logs,actions"
|
||||||
|
" WHERE last_logs.ActCod=actions.ActCod"
|
||||||
|
" AND actions.Language='es'");
|
||||||
|
|
||||||
|
/***** Write list of connected users *****/
|
||||||
|
Tbl_StartTableCenter (1);
|
||||||
|
fprintf (Gbl.F.Out,"<tr>"
|
||||||
|
"<th class=\"LEFT_MIDDLE\""
|
||||||
|
" style=\"width:85px;\">"
|
||||||
|
"%s" // Click
|
||||||
|
"</th>"
|
||||||
|
"<th class=\"RIGHT_MIDDLE\""
|
||||||
|
" style=\"width:50px;\">"
|
||||||
|
"%s" // Elapsed time
|
||||||
|
"</th>"
|
||||||
|
"<th class=\"LEFT_MIDDLE\""
|
||||||
|
" style=\"width:100px;\">"
|
||||||
|
"%s" // Role
|
||||||
|
"</th>"
|
||||||
|
"<th class=\"LEFT_MIDDLE\""
|
||||||
|
" style=\"width:100px;\">"
|
||||||
|
"%s" // Country
|
||||||
|
"</th>"
|
||||||
|
"<th class=\"LEFT_MIDDLE\""
|
||||||
|
" style=\"width:150px;\">"
|
||||||
|
"%s" // Institution
|
||||||
|
"</th>"
|
||||||
|
"<th class=\"LEFT_MIDDLE\""
|
||||||
|
" style=\"width:150px;\">"
|
||||||
|
"%s" // Centre
|
||||||
|
"</th>"
|
||||||
|
"<th class=\"LEFT_MIDDLE\""
|
||||||
|
" style=\"width:200px;\">"
|
||||||
|
"%s" // Degree
|
||||||
|
"</th>"
|
||||||
|
"<th class=\"LEFT_MIDDLE\""
|
||||||
|
" style=\"width:275px;\">"
|
||||||
|
"%s" // Action
|
||||||
|
"</th>"
|
||||||
|
"</tr>",
|
||||||
|
Txt_Click,
|
||||||
|
Txt_ELAPSED_TIME,
|
||||||
|
Txt_Role,
|
||||||
|
Txt_Country,
|
||||||
|
Txt_Institution,
|
||||||
|
Txt_Centre,
|
||||||
|
Txt_Degree,
|
||||||
|
Txt_Action);
|
||||||
|
|
||||||
|
for (NumRow = 0;
|
||||||
|
NumRow < NumRows;
|
||||||
|
NumRow++)
|
||||||
|
{
|
||||||
|
row = mysql_fetch_row (mysql_res);
|
||||||
|
|
||||||
|
/* Get action code (row[1]) */
|
||||||
|
ActCod = Str_ConvertStrCodToLongCod (row[1]);
|
||||||
|
|
||||||
|
/* Use a special color for this row depending on the action */
|
||||||
|
ClassRow = (Act_GetBrowserTab (Act_GetActionFromActCod (ActCod)) == Act_DOWNLD_FILE) ? "DAT_SMALL_YELLOW LEFT_MIDDLE" :
|
||||||
|
(ActCod == Act_GetActCod (ActLogIn ) ||
|
||||||
|
ActCod == Act_GetActCod (ActLogInNew)) ? "DAT_SMALL_GREEN" :
|
||||||
|
(ActCod == Act_GetActCod (ActLogOut )) ? "DAT_SMALL_RED" :
|
||||||
|
(ActCod == Act_GetActCod (ActWebSvc )) ? "DAT_SMALL_BLUE" :
|
||||||
|
"DAT_SMALL_GREY";
|
||||||
|
|
||||||
|
/* Compute elapsed time from last access */
|
||||||
|
if (sscanf (row[2],"%ld",&TimeDiff) != 1)
|
||||||
|
TimeDiff = (time_t) 0;
|
||||||
|
|
||||||
|
/* Get country code (row[4]) */
|
||||||
|
Cty.CtyCod = Str_ConvertStrCodToLongCod (row[4]);
|
||||||
|
Cty_GetCountryName (Cty.CtyCod,Cty.Name[Gbl.Prefs.Language]);
|
||||||
|
|
||||||
|
/* Get institution code (row[5]) */
|
||||||
|
Ins.InsCod = Str_ConvertStrCodToLongCod (row[5]);
|
||||||
|
Ins_GetShortNameOfInstitution (&Ins);
|
||||||
|
|
||||||
|
/* Get centre code (row[6]) */
|
||||||
|
Ctr.CtrCod = Str_ConvertStrCodToLongCod (row[6]);
|
||||||
|
Ctr_GetShortNameOfCentreByCod (&Ctr);
|
||||||
|
|
||||||
|
/* Get degree code (row[7]) */
|
||||||
|
Deg.DegCod = Str_ConvertStrCodToLongCod (row[7]);
|
||||||
|
Deg_GetShortNameOfDegreeByCod (&Deg);
|
||||||
|
|
||||||
|
/* Print table row */
|
||||||
|
fprintf (Gbl.F.Out,"<tr>"
|
||||||
|
"<td class=\"%s LEFT_MIDDLE\">"
|
||||||
|
"%s" // Click
|
||||||
|
"</td>"
|
||||||
|
"<td class=\"%s RIGHT_MIDDLE\">" // Elapsed time
|
||||||
|
"",
|
||||||
|
ClassRow,row[0],
|
||||||
|
ClassRow);
|
||||||
|
Dat_WriteHoursMinutesSecondsFromSeconds (TimeDiff);
|
||||||
|
fprintf (Gbl.F.Out,"</td>"
|
||||||
|
"<td class=\"%s LEFT_MIDDLE\">"
|
||||||
|
"%s" // Role
|
||||||
|
"</td>"
|
||||||
|
"<td class=\"%s LEFT_MIDDLE\">"
|
||||||
|
"%s" // Country
|
||||||
|
"</td>"
|
||||||
|
"<td class=\"%s LEFT_MIDDLE\">"
|
||||||
|
"%s" // Institution
|
||||||
|
"</td>"
|
||||||
|
"<td class=\"%s LEFT_MIDDLE\">"
|
||||||
|
"%s" // Centre
|
||||||
|
"</td>"
|
||||||
|
"<td class=\"%s LEFT_MIDDLE\">"
|
||||||
|
"%s" // Degree
|
||||||
|
"</td>"
|
||||||
|
"<td class=\"%s LEFT_MIDDLE\">"
|
||||||
|
"%s" // Action
|
||||||
|
"</td>"
|
||||||
|
"</tr>",
|
||||||
|
ClassRow,Txt_ROLES_SINGUL_Abc[Rol_ConvertUnsignedStrToRole (row[3])][Usr_SEX_UNKNOWN],
|
||||||
|
ClassRow,Cty.Name[Gbl.Prefs.Language],
|
||||||
|
ClassRow,Ins.ShrtName,
|
||||||
|
ClassRow,Ctr.ShrtName,
|
||||||
|
ClassRow,Deg.ShrtName,
|
||||||
|
ClassRow,row[8]);
|
||||||
|
}
|
||||||
|
Tbl_EndTable ();
|
||||||
|
|
||||||
|
/***** Free structure that stores the query result *****/
|
||||||
|
mysql_free_result (mysql_res);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -191,4 +191,8 @@ void Sta_ComputeTimeToSendPage (void);
|
||||||
void Sta_WriteTimeToGenerateAndSendPage (void);
|
void Sta_WriteTimeToGenerateAndSendPage (void);
|
||||||
void Sta_WriteTime (char Str[Dat_MAX_BYTES_TIME],long TimeInMicroseconds);
|
void Sta_WriteTime (char Str[Dat_MAX_BYTES_TIME],long TimeInMicroseconds);
|
||||||
|
|
||||||
|
void Con_PutLinkToLastClicks (void);
|
||||||
|
void Sta_ShowLastClicks (void);
|
||||||
|
void Sta_GetAndShowLastClicks (void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
39
swad_text.c
39
swad_text.c
|
@ -13567,6 +13567,27 @@ const char *Txt_Get_a_new_password =
|
||||||
"Obter uma nova senha";
|
"Obter uma nova senha";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Global_visits =
|
||||||
|
#if L==1 // ca
|
||||||
|
"Accessos globals";
|
||||||
|
#elif L==2 // de
|
||||||
|
"Globale Anmeldungen";
|
||||||
|
#elif L==3 // en
|
||||||
|
"Global visits";
|
||||||
|
#elif L==4 // es
|
||||||
|
"Accesos globales";
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Visites globales";
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Accesos globales"; // Okoteve traducción
|
||||||
|
#elif L==7 // it
|
||||||
|
"Accessi globali";
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Globalne wizyty";
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Visitas globais";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Go_back =
|
const char *Txt_Go_back =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Tornar enrere";
|
"Tornar enrere";
|
||||||
|
@ -41613,23 +41634,23 @@ const char *Txt_Statistics_of_all_visits =
|
||||||
|
|
||||||
const char *Txt_Statistics_of_visits_to_the_course_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Statistics_of_visits_to_the_course_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Estadística d'accessos a l'assignatura <strong>%s</strong>";
|
"Estadística d'accessos a l'assignatura %s";
|
||||||
#elif L==2 // de
|
#elif L==2 // de
|
||||||
"Statistics of visits to the course <strong>%s</strong>"; // Need Übersetzung
|
"Statistik der Besuche des Kurses %s";
|
||||||
#elif L==3 // en
|
#elif L==3 // en
|
||||||
"Statistics of visits to the course <strong>%s</strong>";
|
"Statistics of visits to the course %s";
|
||||||
#elif L==4 // es
|
#elif L==4 // es
|
||||||
"Estadística de accesos a la asignatura <strong>%s</strong>";
|
"Estadística de accesos a la asignatura %s";
|
||||||
#elif L==5 // fr
|
#elif L==5 // fr
|
||||||
"Statistics of visits to the course <strong>%s</strong>"; // Besoin de traduction
|
"Statistiques de visites a la matière %s";
|
||||||
#elif L==6 // gn
|
#elif L==6 // gn
|
||||||
"Estadística de accesos a la asignatura <strong>%s</strong>"; // Okoteve traducción
|
"Estadística de accesos a la asignatura %s"; // Okoteve traducción
|
||||||
#elif L==7 // it
|
#elif L==7 // it
|
||||||
"Statistiche degli accessi al corso <strong>%s</strong>";
|
"Statistiche delle visite al corso %s";
|
||||||
#elif L==8 // pl
|
#elif L==8 // pl
|
||||||
"Statistics of visits to the course <strong>%s</strong>"; // Potrzebujesz tlumaczenie
|
"Statystyki odwiedzin kursu %s";
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"Estatísticas de visitas à disciplina <strong>%s</strong>";
|
"Estatísticas de visitas à disciplina %s";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Status =
|
const char *Txt_Status =
|
||||||
|
|
Loading…
Reference in New Issue