mirror of https://github.com/acanas/swad-core.git
Version19.113
This commit is contained in:
parent
4d6c9c7587
commit
b5f15eed03
684
swad_action.c
684
swad_action.c
|
@ -93,664 +93,6 @@ extern struct Globals Gbl;
|
|||
/*****************************************************************************/
|
||||
/************************* Private global variables **************************/
|
||||
/*****************************************************************************/
|
||||
/*
|
||||
Files:
|
||||
706. ActAdmDocGrp Admin the files of the documents zone of a group
|
||||
707. ActReqRemFilDocGrp Request removal of a file in the documents zone of a group
|
||||
708. ActRemFilDocGrp Remove a file in the documents zone of a group
|
||||
709. ActRemFolDocGrp Remove a folder empty in the documents zone of a group
|
||||
710. ActCopDocGrp Set source of copy in the documents zone of a group
|
||||
711. ActPasDocGrp Paste a folder or file in the documents zone of a group
|
||||
712. ActRemTreDocGrp Remove a folder no empty in the documents zone of a group
|
||||
713. ActFrmCreDocGrp Form to crear a folder or file in the documents zone of a group
|
||||
714. ActCreFolDocGrp Create a new folder in the documents zone of a group
|
||||
715. ActCreLnkDocGrp Create a new link in the documents zone of a group
|
||||
716. ActRenFolDocGrp Rename a folder in the documents zone of a group
|
||||
717. ActRcvFilDocGrpDZ Receive a file in the documents zone of a group using Dropzone.js
|
||||
718. ActRcvFilDocGrpCla Receive a file in the documents zone of a group using the classic way
|
||||
719. ActExpAdmDocGrp Expand a folder when administrating the documents zone of a group
|
||||
720. ActConAdmDocGrp Contract a folder when administrating the documents zone of a group
|
||||
721. ActZIPAdmDocGrp Compress a folder when administrating the documents zone of a group
|
||||
722. ActShoDocGrp Show hidden folder or file of download
|
||||
723. ActHidDocGrp Hide folder or file of download
|
||||
724. ActReqDatAdmDocGrp Ask for metadata of a file of the documents zone of a group
|
||||
725. ActChgDatAdmDocGrp Change metadata of a file of the documents zone of a group
|
||||
726. ActDowAdmDocGrp Download a file of the documents zone of a group
|
||||
|
||||
727. ActChgToAdmTch Change to administrate teachers' files of the course/group
|
||||
|
||||
728. ActAdmTchCrs Admin the teachers' files zone of the course
|
||||
729. ActReqRemFilTchCrs Request removal of a teachers' file of the course
|
||||
730. ActRemFilTchCrs Remove a teachers' file of the course
|
||||
731. ActRemFolTchCrs Remove an empty teachers' folder of the course
|
||||
732. ActCopTchCrs Set source of teachers' zone of the course
|
||||
733. ActPasTchCrs Paste a folder or file in teachers' zone of the course
|
||||
734. ActRemTreTchCrs Remove a folder no empty of teachers' zone of the course
|
||||
735. ActFrmCreTchCrs Form to crear a folder or file in teachers' zone of the course
|
||||
736. ActCreFolTchCrs Create a new folder in teachers' zone of the course
|
||||
737. ActCreLnkTchCrs Create a new link in teachers' zone of the course
|
||||
738. ActRenFolTchCrs Rename a folder in teachers' zone of the course
|
||||
739. ActRcvFilTchCrsDZ Receive a file in teachers' zone of the course using Dropzone.js
|
||||
740. ActRcvFilTchCrsCla Receive a file in teachers' zone of the course using the classic way
|
||||
741. ActExpTchCrs Expand a folder in teachers' zone of the course
|
||||
742. ActConTchCrs Contract a folder in teachers' zone of the course
|
||||
743. ActZIPTchCrs Compress a folder in teachers' zone of the course
|
||||
744. ActReqDatTchCrs Ask for metadata of a file of the teachers' zone of the course
|
||||
745. ActChgDatTchCrs Change metadata of a file of the teachers' zone of the course
|
||||
746. ActDowTchCrs Download a file of the teachers' zone of the course
|
||||
|
||||
747. ActAdmTchGrp Admin the teachers' files zone of a group
|
||||
748. ActReqRemFilTchGrp Request removal of a teachers' file of a group
|
||||
749. ActRemFilTchGrp Remove a teachers' file of a group
|
||||
750. ActRemFolTchGrp Remove an empty teachers' folder of a group
|
||||
751. ActCopTchGrp Set source of copy in teachers' zone of a group
|
||||
752. ActPasTchGrp Paste a folder or file in teachers' zone of a group
|
||||
753. ActRemTreTchGrp Remove a folder no empty of teachers' zone of a group
|
||||
754. ActFrmCreTchGrp Form to crear a folder or file in teachers' zone of a group
|
||||
755. ActCreFolTchGrp Create a new folder in teachers' zone of a group
|
||||
756. ActCreLnkTchGrp Create a new link in teachers' zone of a group
|
||||
757. ActRenFolTchGrp Rename a folder in teachers' zone of a group
|
||||
758. ActRcvFilTchGrpDZ Receive a file in teachers' zone of a group using Dropzone.js
|
||||
759. ActRcvFilTchGrpCla Receive a file in teachers' zone of a group using the classic way
|
||||
760. ActExpTchGrp Expand a folder in teachers' zone of a group
|
||||
761. ActConTchGrp Contract a folder in teachers' zone of a group
|
||||
762. ActZIPTchGrp Compress a folder in teachers' zone of a group
|
||||
763. ActReqDatTchGrp Ask for metadata of a file of the teachers' zone of a group
|
||||
764. ActChgDatTchGrp Change metadata of a file of the teachers' zone of a group
|
||||
765. ActDowTchGrp Download a file of the teachers' zone of a group
|
||||
|
||||
766. ActChgToAdmSha Change to administrate shared files of the course/group
|
||||
|
||||
767. ActAdmShaCrs Admin the shared files zone of the course
|
||||
768. ActReqRemFilShaCrs Request removal of a shared file of the course
|
||||
769. ActRemFilShaCrs Remove a shared file of the course
|
||||
770. ActRemFolShaCrs Remove a empty shared folder of the course
|
||||
771. ActCopShaCrs Set source of copy in shared zone of the course
|
||||
772. ActPasShaCrs Paste a folder or file in shared zone of the course
|
||||
773. ActRemTreShaCrs Remove a folder no empty of shared zone of the course
|
||||
774. ActFrmCreShaCrs Form to crear a folder or file in shared zone of the course
|
||||
775. ActCreFolShaCrs Create a new folder in shared zone of the course
|
||||
776. ActCreLnkShaCrs Create a new link in shared zone of the course
|
||||
777. ActRenFolShaCrs Rename a folder in shared zone of the course
|
||||
778. ActRcvFilShaCrsDZ Receive a file in shared zone of the course using Dropzone.js
|
||||
779. ActRcvFilShaCrsCla Receive a file in shared zone of the course using the classic way
|
||||
780. ActExpShaCrs Expand a folder in shared zone of the course
|
||||
781. ActConShaCrs Contract a folder in shared zone of the course
|
||||
782. ActZIPShaCrs Compress a folder in shared zone of the course
|
||||
783. ActReqDatShaCrs Ask for metadata of a file of the shared zone of the course
|
||||
784. ActChgDatShaCrs Change metadata of a file of the shared zone of the course
|
||||
785. ActDowShaCrs Download a file of the shared zone of the course
|
||||
|
||||
786. ActAdmShaGrp Admin the shared files zone of a group
|
||||
787. ActReqRemFilShaGrp Request removal of a shared file of a group
|
||||
788. ActRemFilShaGrp Remove a shared file of a group
|
||||
789. ActRemFolShaGrp Remove a folder empty común of a group
|
||||
790. ActCopShaGrp Set source of copy in shared zone of a group
|
||||
791. ActPasShaGrp Paste a folder or file in shared zone of a group
|
||||
792. ActRemTreShaGrp Remove a folder no empty of shared zone of a group
|
||||
793. ActFrmCreShaGrp Form to crear a folder or file in shared zone of a group
|
||||
794. ActCreFolShaGrp Create a new folder in shared zone of a group
|
||||
795. ActCreLnkShaGrp Create a new link in shared zone of a group
|
||||
796. ActRenFolShaGrp Rename a folder in shared zone of a group
|
||||
797. ActRcvFilShaGrpDZ Receive a file in shared zone of a group using Dropzone.js
|
||||
798. ActRcvFilShaGrpCla Receive a file in shared zone of a group using the classic way
|
||||
799. ActExpShaGrp Expand a folder in shared zone of a group
|
||||
800. ActConShaGrp Contract a folder in shared zone of a group
|
||||
801. ActZIPShaGrp Compress a folder in shared zone of a group
|
||||
802. ActReqDatShaGrp Ask for metadata of a file of the shared zone of a group
|
||||
803. ActChgDatShaGrp Change metadata of a file of the shared zone of a group
|
||||
804. ActDowShaGrp Download a file of the shared zone of a group
|
||||
|
||||
805. ActAdmAsgWrkCrs Edit all the works sent to the course
|
||||
806. ActReqRemFilAsgUsr Request removal of a file of assignments from a user
|
||||
807. ActRemFilAsgUsr Remove a file of assignments from a user
|
||||
808. ActRemFolAsgUsr Remove an empty folder of assignments of a user
|
||||
809. ActCopAsgUsr Set origin of copy in assignments of a user
|
||||
810. ActPasAsgUsr Paste a file or folder of assignments of a user
|
||||
811. ActRemTreAsgUsr Remove a not empty folder of assignments of a user
|
||||
812. ActFrmCreAsgUsr Form to create a new folder or file of assignments of a user
|
||||
813. ActCreFolAsgUsr Create a new folder of assignments of a user
|
||||
814. ActCreLnkAsgUsr Create a new link of assignments of a user
|
||||
815. ActRenFolAsgUsr Rename a folder of assignments of a user
|
||||
816. ActRcvFilAsgUsrDZ Receive a new file of assignments of a user using Dropzone.js
|
||||
817. ActRcvFilAsgUsrCla Receive a new file of assignments of a user using the classic way
|
||||
818. ActExpAsgUsr Expand a folder of assignments of a user
|
||||
819. ActConAsgUsr Contract a folder of assignments of a user
|
||||
820. ActZIPAsgUsr Compress a folder of assignments of a user
|
||||
821. ActReqDatAsgUsr Ask for metadata of a file of assignments of a user
|
||||
822. ActChgDatAsgUsr Change metadata of a file of assignments of a user
|
||||
823. ActDowAsgUsr Download a file of assignments of a user
|
||||
824. ActReqRemFilWrkUsr Request removal of a file of works from a user
|
||||
825. ActRemFilWrkUsr Remove a file of works from a user
|
||||
826. ActRemFolWrkUsr Remove an empty folder of works of a user
|
||||
827. ActCopWrkUsr Set origin of copy in works of a user
|
||||
828. ActPasWrkUsr Paste a file or folder of works of a user
|
||||
829. ActRemTreWrkUsr Remove a not empty folder of works of a user
|
||||
830. ActFrmCreWrkUsr Form to create a new folder or file of works of a user
|
||||
831. ActCreFolWrkUsr Create a new folder of works of a user
|
||||
832. ActCreLnkWrkUsr Create a new link of works of a user
|
||||
833. ActRenFolWrkUsr Rename a folder of works of a user
|
||||
834. ActRcvFilWrkUsrDZ Receive a new file of works of a user using Dropzone.js
|
||||
835. ActRcvFilWrkUsrCla Receive a new file of works of a user using the classic way
|
||||
836. ActExpWrkUsr Expand a folder of works of a user
|
||||
837. ActConWrkUsr Contract a folder of works of a user
|
||||
838. ActZIPWrkUsr Compress a folder of works of a user
|
||||
839. ActReqDatWrkUsr Ask for metadata of a file of works of a user
|
||||
840. ActChgDatWrkUsr Change metadata of a file of works of a user
|
||||
841. ActDowWrkUsr Download a file of works of a user
|
||||
842. ActReqRemFilAsgCrs Request removal of a file of assignments in the course
|
||||
843. ActRemFilAsgCrs Remove a file of assignments in the course
|
||||
844. ActRemFolAsgCrs Remove an empty folder of assignments in the course
|
||||
845. ActCopAsgCrs Set origin of copy in assignments in the course
|
||||
846. ActPasAsgCrs Paste a file or folder of assignments in the course
|
||||
847. ActRemTreAsgCrs Remove a not empty folder of assignments in the course
|
||||
848. ActFrmCreAsgCrs Form to create a new folder or file of assignments in the course
|
||||
849. ActCreFolAsgCrs Create a new folder of assignments in the course
|
||||
850. ActCreLnkAsgCrs Create a new link of assignments in the course
|
||||
851. ActRenFolAsgCrs Rename a folder of assignments in the course
|
||||
852. ActRcvFilAsgCrsDZ Receive a file of assignments in the course using Dropzone.js
|
||||
853. ActRcvFilAsgCrsCla Receive a file of assignments in the course using the classic way
|
||||
854. ActExpAsgCrs Expand a folder of assignments in a course
|
||||
855. ActConAsgCrs Contract a folder of assignments in a course
|
||||
856. ActZIPAsgCrs Compress a folder of assignments in a course
|
||||
857. ActReqDatAsgCrs Ask for metadata of a file of assignments in a course
|
||||
858. ActChgDatAsgCrs Change metadata of a file of assignments in a course
|
||||
859. ActDowAsgCrs Download a file of assignments in a course
|
||||
860. ActReqRemFilWrkCrs Request removal of a file of works in the course
|
||||
861. ActRemFilWrkCrs Remove a file of works in the course
|
||||
862. ActRemFolWrkCrs Remove an empty folder of works in the course
|
||||
863. ActCopWrkCrs Set origin of copy in works in the course
|
||||
864. ActPasWrkCrs Paste a file or folder of works in the course
|
||||
865. ActRemTreWrkCrs Remove a not empty folder of works in the course
|
||||
866. ActFrmCreWrkCrs Form to create a new folder or file of works in the course
|
||||
867. ActCreFolWrkCrs Create a new folder of works in the course
|
||||
868. ActCreLnkWrkCrs Create a new link of works in the course
|
||||
869. ActRenFolWrkCrs Rename a folder of works in the course
|
||||
870. ActRcvFilWrkCrsDZ Receive a file of works in the course using Dropzone.js
|
||||
871. ActRcvFilWrkCrsCla Receive a file of works in the course using the classic way
|
||||
872. ActExpWrkCrs Expand a folder of works in a course
|
||||
873. ActConWrkCrs Contract a folder of works in a course
|
||||
874. ActZIPWrkCrs Compress a folder of works in a course
|
||||
875. ActReqDatWrkCrs Ask for metadata of a file of works in a course
|
||||
876. ActChgDatWrkCrs Change metadata of a file of works in a course
|
||||
877. ActDowWrkCrs Download a file of works in a course
|
||||
|
||||
878. ActChgToSeeMrk Change to see marks in course/group
|
||||
|
||||
879. ActSeeMrkCrs See marks in course
|
||||
880. ActExpSeeMrkCrs Expand a folder in marks in course
|
||||
881. ActConSeeMrkCrs Contract a folder in marks in course
|
||||
882. ActReqDatSeeMrkCrs Ask for metadata of a file of the marks zone of the course
|
||||
883. ActSeeMyMrkCrs Individualized access to marks in course
|
||||
|
||||
884. ActSeeMrkGrp See marks in group
|
||||
885. ActExpSeeMrkGrp Expand a folder in marks in group
|
||||
886. ActConSeeMrkGrp Contract a folder in marks in group
|
||||
887. ActReqDatSeeMrkGrp Ask for metadata of a file of the marks zone of a group
|
||||
888. ActSeeMyMrkGrp Individualized access to marks in group
|
||||
|
||||
889. ActChgToAdmMrk Change to admin marks in course/group
|
||||
|
||||
890. ActAdmMrkCrs Admin the files of the zone of marks in course
|
||||
891. ActReqRemFilMrkCrs Request removal of a file of marks in course
|
||||
892. ActRemFilMrkCrs Remove a file of marks in course
|
||||
893. ActRemFolMrkCrs Remove a folder empty of marks in course
|
||||
894. ActCopMrkCrs Set source of copy in marks in course
|
||||
895. ActPasMrkCrs Paste a folder or file in marks in course
|
||||
896. ActRemTreMrkCrs Remove a folder no empty of marks in course
|
||||
897. ActFrmCreMrkCrs Form to crear a folder or file in marks in course
|
||||
898. ActCreFolMrkCrs Create a new folder in marks in course
|
||||
899. ActRenFolMrkCrs Rename a folder in marks in course
|
||||
900. ActRcvFilMrkCrsDZ Receive a file of marks in course using Dropzone.js
|
||||
901. ActRcvFilMrkCrsCla Receive a file of marks in course using the classic way
|
||||
902. ActExpAdmMrkCrs Expand a folder in marks administration in course
|
||||
903. ActConAdmMrkCrs Contract a folder in marks administration in course
|
||||
904. ActZIPAdmMrkCrs Compress a folder in marks administration in course
|
||||
905. ActShoMrkCrs Show hidden folder or file of the marks administration in course
|
||||
906. ActHidMrkCrs Hide folder or file of the marks administration in course
|
||||
907. ActReqDatAdmMrkCrs Ask for metadata of a file in marks administration in course
|
||||
908. ActChgDatAdmMrkCrs Change metadata of a file in marks administration in course
|
||||
909. ActDowAdmMrkCrs Download a file in marks administration in course
|
||||
910. ActChgNumRowHeaCrs Change the number of rows of cabecera of a file of marks in course
|
||||
911. ActChgNumRowFooCrs Change the number of rows of pie of a file of marks in course
|
||||
|
||||
912. ActAdmMrkGrp Admin the files of the zone of marks in group
|
||||
913. ActReqRemFilMrkGrp Request removal of a file of marks in group
|
||||
914. ActRemFilMrkGrp Remove a file of marks in group
|
||||
915. ActRemFolMrkGrp Remove a folder empty of marks in group
|
||||
916. ActCopMrkGrp Set source of copy in marks in group
|
||||
917. ActPasMrkGrp Paste a folder or file in marks in group
|
||||
918. ActRemTreMrkGrp Remove a folder no empty of marks in group
|
||||
919. ActFrmCreMrkGrp Form to crear a folder or file in marks in group
|
||||
920. ActCreFolMrkGrp Create a new folder in marks in group
|
||||
921. ActRenFolMrkGrp Rename a folder in marks in group
|
||||
922. ActRcvFilMrkGrpDZ Receive a file to marks in group using Dropzone.js
|
||||
923. ActRcvFilMrkGrpCla Receive a file to marks in group using the classic way
|
||||
924. ActExpAdmMrkGrp Expand a folder in marks administration in group
|
||||
925. ActConAdmMrkGrp Contract a folder in marks administration in group
|
||||
926. ActZIPAdmMrkGrp Compress a folder in marks administration in group
|
||||
927. ActShoMrkGrp Show hidden folder or file of the marks administration in group
|
||||
928. ActHidMrkGrp Hide folder or file of the marks administration in group
|
||||
929. ActReqDatAdmMrkGrp Ask for metadata of a file in marks administration in group
|
||||
930. ActChgDatAdmMrkGrp Change metadata of a file in marks administration in group
|
||||
931. ActDowAdmMrkGrp Download a file in marks administration in group
|
||||
932. ActChgNumRowHeaGrp Change the number of rows of cabecera of a file of marks in group
|
||||
933. ActChgNumRowFooGrp Change the number of rows of pie of a file of marks in group
|
||||
|
||||
934. ActReqRemFilBrf Request removal of a file of the briefcase
|
||||
935. ActRemFilBrf Remove a file of the briefcase
|
||||
936. ActRemFolBrf Remove a folder empty of the briefcase
|
||||
937. ActCopBrf Set source of copy in the briefcase
|
||||
938. ActPasBrf Paste a folder or file in the briefcase
|
||||
939. ActRemTreBrf Remove a folder no empty of the briefcase
|
||||
940. ActFrmCreBrf Form to crear a folder or file in the briefcase
|
||||
941. ActCreFolBrf Create a new folder in the briefcase
|
||||
942. ActCreLnkBrf Create a new link in the briefcase
|
||||
943. ActRenFolBrf Rename a folder of the briefcase
|
||||
944. ActRcvFilBrfDZ Receive a file in the briefcase using Dropzone.js
|
||||
945. ActRcvFilBrfCla Receive a file in the briefcase using the classic way
|
||||
946. ActExpBrf Expand a folder in briefcase
|
||||
947. ActConBrf Contract a folder in briefcase
|
||||
948. ActZIPBrf Compress a folder in briefcase
|
||||
949. ActReqDatBrf Ask for metadata of a file in the briefcase
|
||||
950. ActChgDatBrf Change metadata of a file in the briefcase
|
||||
951. ActDowBrf Download a file in the briefcase
|
||||
952. ActReqRemOldBrf Ask for removing old files in the briefcase
|
||||
953. ActRemOldBrf Remove old files in the briefcase
|
||||
Users:
|
||||
954. ActReqSelGrp Request the selection of groups of students
|
||||
955. ActLstStd Show class photo or list of students
|
||||
956. ActLstTch Show class photo or list of teachers
|
||||
957. ActLstOth Show class photo or list of guests
|
||||
958. ActSeeAtt Show attendance events
|
||||
959. ActReqSignUp Apply for my enrolment
|
||||
960. ActSeeSignUpReq Show pending requests for inscription in the current course
|
||||
961. ActLstCon List connected users
|
||||
|
||||
962. ActChgGrp Change my groups
|
||||
963. ActReqEdiGrp Request the edition of groups
|
||||
964. ActNewGrpTyp Request the creation of a type of group
|
||||
965. ActReqRemGrpTyp Request the removal of a type of group
|
||||
966. ActRemGrpTyp Remove a type of group of students
|
||||
967. ActRenGrpTyp Request renaming of a type of group of students
|
||||
968. ActChgMdtGrpTyp Request change if it is mandatory to register in groups of a type
|
||||
969. ActChgMulGrpTyp Request change if it is possible to register in multiple groups of a type
|
||||
970. ActChgTimGrpTyp Request change when the groups of a type will be open
|
||||
971. ActNewGrp Request the creation of a group
|
||||
972. ActReqRemGrp Request the removal of a group
|
||||
973. ActRemGrp Remove a group
|
||||
974. ActOpeGrp Open a group
|
||||
975. ActCloGrp Close a group
|
||||
976. ActEnaFilZonGrp Enable filezones of a group
|
||||
977. ActDisFilZonGrp Disable filezones of a group
|
||||
978. ActChgGrpTyp Change the type of group of a group
|
||||
979. ActRenGrp Rename a group
|
||||
980. ActChgGrpCla Change the classroom of a group
|
||||
981. ActChgMaxStdGrp Change the maximum number of students in a group
|
||||
|
||||
982. ActLstGst List main data of administrators
|
||||
|
||||
983. ActPrnGstPho Show the class photo of guests ready to be printed
|
||||
984. ActPrnStdPho Show the class photo of students ready to be printed
|
||||
985. ActPrnTchPho Show the class photo of teachers ready to be printed
|
||||
986. ActLstGstAll List in another window the full data of guests
|
||||
987. ActLstStdAll List in another window the full data of students
|
||||
988. ActLstTchAll List in another window the full data of teachers
|
||||
|
||||
989. ActSeeRecOneStd Show record of one selected student
|
||||
990. ActSeeRecOneTch Show record of one selected teacher
|
||||
991. ActDoActOnSevGst Do action on several selected guests
|
||||
992. ActDoActOnSevStd Do action on several selected students
|
||||
993. ActDoActOnSevTch Do action on several selected teachers
|
||||
994. ActPrnRecSevGst Show records of several selected guests
|
||||
995. ActPrnRecSevStd Show records of several selected students
|
||||
996. ActPrnRecSevTch Show records of several selected teachers
|
||||
997. ActPrnRecSevGst Show records of several selected guests ready to be printed
|
||||
998. ActPrnRecSevStd Show records of several selected students ready to be printed
|
||||
999. ActPrnRecSevTch Show records of several selected teachers ready to be printed
|
||||
1000. ActRcvRecOthUsr Update record fields of a student in this course
|
||||
1001. ActEdiRecFie Request the edition of record fields of students
|
||||
1002. ActNewFie Request the creation of a record field
|
||||
1003. ActReqRemFie Request the removal of record field
|
||||
1004. ActRemFie Remove a record field
|
||||
1005. ActRenFie Request renaming of record field
|
||||
1006. ActChgRowFie Request change in number of lines of form of a record field
|
||||
1007. ActChgVisFie Request change in visibility of a record field
|
||||
1008. ActRcvRecCrs Receive and update fields of my record in this course
|
||||
|
||||
1009. ActFrmLogInUsrAgd Put form to log in to show another user's public agenda
|
||||
1010. ActLogInUsrAgd Show another user's public agenda after log in
|
||||
1011. ActLogInUsrAgdLan Show another user's public agenda after change language
|
||||
1012. ActSeeUsrAgd Show another user's public agenda
|
||||
|
||||
1013. ActReqEnrSevStd Request the enrolment/removing of several students to / from current course
|
||||
1014. ActReqEnrSevNET Request the enrolment/removing of several non-editing teachers to / from current course
|
||||
1015. ActReqEnrSevTch Request the enrolment/removing of several teachers to / from current course
|
||||
|
||||
1016. ActReqLstUsrAtt Request listing of attendance of several students to several events
|
||||
1017. ActSeeLstMyAtt List my attendance as student to several events
|
||||
1018. ActPrnLstMyAtt Print my attendance as student to several events
|
||||
1019. ActSeeLstUsrAtt List attendance of several students to several events
|
||||
1020. ActPrnLstUsrAtt Print attendance of several students to several events
|
||||
1021. ActFrmNewAtt Form to create a new attendance event
|
||||
1022. ActEdiOneAtt Edit one attendance event
|
||||
1023. ActNewAtt Create new attendance event
|
||||
1024. ActChgAtt Modify data of an existing attendance event
|
||||
1025. ActReqRemAtt Request the removal of an attendance event
|
||||
1026. ActRemAtt Remove attendance event
|
||||
1027. ActHidAtt Hide attendance event
|
||||
1028. ActShoAtt Show attendance event
|
||||
1029. ActSeeOneAtt List students who attended to an event
|
||||
1030. ActRecAttStd Save students who attended to an event and comments
|
||||
1031. ActRecAttMe Save my comments as student in an attendance event
|
||||
|
||||
1032. ActSignUp Apply for my enrolment
|
||||
1033. ActUpdSignUpReq Update pending requests for inscription in the current course
|
||||
1034. ActReqRejSignUp Ask if reject the enrolment of a user in a course
|
||||
1035. ActRejSignUp Reject the enrolment of a user in a course
|
||||
|
||||
1036. ActReqMdfOneOth Request a user's ID for enrolment/removing
|
||||
1037. ActReqMdfOneStd Request a student's ID for enrolment/removing
|
||||
1038. ActReqMdfOneTch Request a teacher's ID for enrolment/removing
|
||||
1039. ActReqMdfOth Request enrolment/removing of a user
|
||||
1040. ActReqMdfStd Request enrolment/removing of a student
|
||||
1041. ActReqMdfNET Request enrolment/removing of a non-editing teacher
|
||||
1042. ActReqMdfTch Request enrolment/removing of a teacher
|
||||
1043. ActReqOthPho Show form to send the photo of another user
|
||||
1044. ActReqStdPho Show form to send the photo of another user
|
||||
1045. ActReqTchPho Show form to send the photo of another user
|
||||
1046. ActDetOthPho Receive other user's photo and detect faces on it
|
||||
1047. ActDetStdPho Receive other user's photo and detect faces on it
|
||||
1048. ActDetTchPho Receive other user's photo and detect faces on it
|
||||
1049. ActUpdOthPho Update other user's photo
|
||||
1050. ActUpdStdPho Update other user's photo
|
||||
1051. ActUpdTchPho Update other user's photo
|
||||
1052. ActRemOthPho Request the removal of other user's photo
|
||||
1053. ActRemStdPho Request the removal of student's photo
|
||||
1054. ActRemTchPho Request the removal of teacher's photo
|
||||
1055. ActRemOthPho Remove other user's photo
|
||||
1056. ActRemStdPho Remove student's photo
|
||||
1057. ActRemTchPho Remove teacher's photo
|
||||
1058. ActCreOth Create a new guest
|
||||
1059. ActCreStd Create a new student
|
||||
1060. ActCreNET Create a new non.editing teacher
|
||||
1061. ActCreTch Create a new teacher
|
||||
1062. ActUpdOth Update another user's data and groups
|
||||
1063. ActUpdStd Update another student's data and groups
|
||||
1064. ActUpdNET Update another non-editing teacher's data and groups
|
||||
1065. ActUpdTch Update another teacher's data and groups
|
||||
1066. ActReqAccEnrStd Confirm acceptation / refusion of enrolment as student in current course
|
||||
1067. ActReqAccEnrNET Confirm acceptation / refusion of enrolment as non-editing teacher in current course
|
||||
1068. ActReqAccEnrTch Confirm acceptation / refusion of enrolment as teacher in current course
|
||||
1069. ActAccEnrStd Accept enrolment as student in current course
|
||||
1070. ActAccEnrNET Accept enrolment as non-editing teacher in current course
|
||||
1071. ActAccEnrTch Accept enrolment as teacher in current course
|
||||
1072. ActRemMe_Std Reject enrolment as student in current course
|
||||
1073. ActRemMe_NET Reject enrolment as non-editing teacher in current course
|
||||
1074. ActRemMe_Tch Reject enrolment as teacher in current course
|
||||
|
||||
1075. ActNewAdmIns Register an administrador in this institution
|
||||
1076. ActRemAdmIns Remove an administrador of this institution
|
||||
1077. ActNewAdmCtr Register an administrador in this centre
|
||||
1078. ActRemAdmCtr Remove an administrador of this centre
|
||||
1079. ActNewAdmDeg Register an administrador in this degree
|
||||
1080. ActRemAdmDeg Remove an administrador of this degree
|
||||
|
||||
1081. ActRcvFrmEnrSevStd Receive a form with IDs of students to be registered/removed to/from current course
|
||||
1082. ActRcvFrmEnrSevNET Receive a form with IDs of non-editing teachers to be registered/removed to/from current course
|
||||
1083. ActRcvFrmEnrSevTch Receive a form with IDs of teachers to be registered/removed to/from current course
|
||||
|
||||
1084. ActCnfID_Oth Confirm another user's ID
|
||||
1085. ActCnfID_Std Confirm another user's ID
|
||||
1086. ActCnfID_Tch Confirm another user's ID
|
||||
|
||||
1087. ActFrmAccOth Show forms to the change another user's account
|
||||
1088. ActFrmAccStd Show forms to the change another user's account
|
||||
1089. ActFrmAccTch Show forms to the change another user's account
|
||||
|
||||
1090. ActRemOldNicOth Remove one of another user's old nicknames
|
||||
1091. ActRemOldNicStd Remove one of another user's old nicknames
|
||||
1092. ActRemOldNicTch Remove one of another user's old nicknames
|
||||
1093. ActChgNicOth Change another user's nickname
|
||||
1094. ActChgNicStd Change another user's nickname
|
||||
1095. ActChgNicTch Change another user's nickname
|
||||
|
||||
1096. ActRemID_Oth Remove one of the IDs of another user
|
||||
1097. ActRemID_Std Remove one of the IDs of another user
|
||||
1098. ActRemID_Tch Remove one of the IDs of another user
|
||||
1099. ActNewID_Oth Create a new user's ID for another user
|
||||
1100. ActNewID_Std Create a new user's ID for another user
|
||||
1101. ActNewID_Tch Create a new user's ID for another user
|
||||
|
||||
1102. ActChgPwdOth Change the password of another user
|
||||
1103. ActChgPwdStd Change the password of another user
|
||||
1104. ActChgPwdTch Change the password of another user
|
||||
|
||||
1105. ActRemMaiOth Remove one of the email of another user
|
||||
1106. ActRemMaiStd Remove one of the email of another user
|
||||
1107. ActRemMaiTch Remove one of the email of another user
|
||||
1108. ActNewMaiOth Create a new user's email for another user
|
||||
1109. ActNewMaiStd Create a new user's email for another user
|
||||
1110. ActNewMaiTch Create a new user's email for another user
|
||||
|
||||
1111. ActRemStdCrs Remove a student from the current course
|
||||
1112. ActRemNETCrs Remove a non-editing teacher from the current course
|
||||
1113. ActRemTchCrs Remove a teacher from the current course
|
||||
1114. ActRemUsrGbl Eliminate completely a user from the platform
|
||||
1115. ActReqRemAllStdCrs Request the removal of all the students from the current course
|
||||
1116. ActRemAllStdCrs Remove all the students from the current course
|
||||
1117. ActReqRemOldUsr Request the complete elimination of old users
|
||||
1118. ActRemOldUsr Eliminate completely old users
|
||||
|
||||
1119. ActLstDupUsr List possible duplicate users
|
||||
1120. ActLstSimUsr List users similar to a given one (possible duplicates)
|
||||
1121. ActRemDupUsr Remove user from list of possible duplicate users
|
||||
|
||||
1122. ActReqFolSevStd Request follow several students
|
||||
1123. ActReqFolSevTch Request follow several teachers
|
||||
1124. ActReqUnfSevStd Request unfollow several students
|
||||
1125. ActReqUnfSevTch Request unfollow several teachers
|
||||
1126. ActFolSevStd Follow several students
|
||||
1127. ActFolSevTch Follow several teachers
|
||||
1128. ActUnfSevStd Unfollow several students
|
||||
1129. ActUnfSevTch Unfollow several teachers
|
||||
|
||||
Messages:
|
||||
1130. ActSeeAnn Show global announcements
|
||||
1131. ActSeeAllNot Show all notices
|
||||
1132. ActSeeFor Show the level superior of the forums
|
||||
1133. ActSeeChtRms Show the chat rooms
|
||||
1134. ActReqMsgUsr Write message to several users
|
||||
1135. ActSeeRcvMsg Show the messages received from other users (link in menu)
|
||||
1136. ActSeeSntMsg Show the messages sent to other users
|
||||
1137. ActReqMaiUsr Select users to send an email to them
|
||||
1138. ActMaiUsr Send an email to users
|
||||
1139. ActWriAnn Show form to create a new global announcement
|
||||
1140. ActRcvAnn Receive and create a new global announcement
|
||||
1141. ActHidAnn Hide a global announcement that was active
|
||||
1142. ActRevAnn Reveal a global announcement that was hidden
|
||||
1143. ActRemAnn Remove global announcement
|
||||
1144. ActSeeOneNot Show (expand) a notice
|
||||
1145. ActWriNot Write a new notice
|
||||
1146. ActRcvNot Receive and create a new notice
|
||||
1147. ActHidNot Hide a notice that was active
|
||||
1148. ActRevNot Reveal a notice that was hidden
|
||||
1149. ActReqRemNot Request removal of a notice
|
||||
1150. ActRemNot Remove a notice
|
||||
|
||||
1151. ActSeeForCrsUsr Show top level of forum of users of the course
|
||||
1152. ActSeeForCrsTch Show top level of forum of teachers of the course
|
||||
1153. ActSeeForDegUsr Show top level of forum of users of the degree
|
||||
1154. ActSeeForDegTch Show top level of forum of teachers of the degree
|
||||
1155. ActSeeForCtrUsr Show top level of forum of users of the centre
|
||||
1156. ActSeeForCtrTch Show top level of forum of teachers of the centre
|
||||
1157. ActSeeForInsUsr Show top level of forum of users of the institution
|
||||
1158. ActSeeForInsTch Show top level of forum of teachers of the institution
|
||||
1159. ActSeeForGenUsr Show top level of forum of users general
|
||||
1160. ActSeeForGenTch Show top level of forum of teachers general
|
||||
1161. ActSeeForSWAUsr Show top level of forum of users of the platform
|
||||
1162. ActSeeForSWATch Show top level of forum of teachers of the platform
|
||||
1163. ActSeePstForCrsUsr Show the messages of a thread of the forum of users of the course
|
||||
1164. ActSeePstForCrsTch Show the messages of a thread of the forum of teachers of the course
|
||||
1165. ActSeePstForDegUsr Show the messages of a thread of the forum of users of the degree
|
||||
1166. ActSeePstForDegTch Show the messages of a thread of the forum of teachers of the degree
|
||||
1167. ActSeePstForCtrUsr Show the messages of a thread of the forum of users of the centre
|
||||
1168. ActSeePstForCtrTch Show the messages of a thread of the forum of teachers of the centre
|
||||
1169. ActSeePstForInsUsr Show the messages of a thread of the forum of users of the institution
|
||||
1170. ActSeePstForInsTch Show the messages of a thread of the forum of teachers of the institution
|
||||
1171. ActSeePstForGenUsr Show the messages of a thread of the forum of users general
|
||||
1172. ActSeePstForGenTch Show the messages of a thread of the forum of teachers general
|
||||
1173. ActSeePstForSWAUsr Show the messages of a thread of the forum of users of the platform
|
||||
1174. ActSeePstForSWATch Show the messages of a thread of the forum of teachers of the platform
|
||||
1175. ActRcvThrForCrsUsr Receive the first message of a new thread of forum of users of the course
|
||||
1176. ActRcvThrForCrsTch Receive the first message of a new thread of forum of teachers of the course
|
||||
1177. ActRcvThrForDegUsr Receive the first message of a new thread of forum of users of the degree
|
||||
1178. ActRcvThrForDegTch Receive the first message of a new thread of forum of teachers of the degree
|
||||
1179. ActRcvThrForCtrUsr Receive the first message of a new thread of forum of users of centre
|
||||
1180. ActRcvThrForCtrTch Receive the first message of a new thread of forum of teachers of centre
|
||||
1181. ActRcvThrForInsUsr Receive the first message of a new thread of forum of users of the institution
|
||||
1182. ActRcvThrForInsTch Receive the first message of a new thread of forum of teachers of the institution
|
||||
1183. ActRcvThrForGenUsr Receive the first message of a new thread of forum of users general
|
||||
1184. ActRcvThrForGenTch Receive the first message of a new thread of forum of teachers general
|
||||
1185. ActRcvThrForSWAUsr Receive the first message of a new thread of forum of users of the platform
|
||||
1186. ActRcvThrForSWATch Receive the first message of a new thread of forum of teachers of the platform
|
||||
1187. ActRcvRepForCrsUsr Receive a message of answer in a thread existente in the forum of users of the course
|
||||
1188. ActRcvRepForCrsTch Receive a message of answer in a thread existente in the forum of teachers of the course
|
||||
1189. ActRcvRepForDegUsr Receive a message of answer in a thread existente in the forum of users of the degree
|
||||
1190. ActRcvRepForDegTch Receive a message of answer in a thread existente in the forum of teachers of the degree
|
||||
1191. ActRcvRepForCtrUsr Receive a message of answer in a thread existente in the forum of users of centre
|
||||
1192. ActRcvRepForCtrTch Receive a message of answer in a thread existente in the forum of teachers of centre
|
||||
1193. ActRcvRepForInsUsr Receive a message of answer in a thread existente in the forum of users of the institution
|
||||
1194. ActRcvRepForInsTch Receive a message of answer in a thread existente in the forum of teachers of the institution
|
||||
1195. ActRcvRepForGenUsr Receive a message of answer in a thread existente in the forum of users general
|
||||
1196. ActRcvRepForGenTch Receive a message of answer in a thread existente in the forum of teachers general
|
||||
1197. ActRcvRepForSWAUsr Receive a message of answer in a thread existente in the forum of users of the platform
|
||||
1198. ActRcvRepForSWATch Receive a message of answer in a thread existente in the forum of teachers of the platform
|
||||
1199. ActReqDelThrCrsUsr Request the removal of a thread of forum of users of the course
|
||||
1200. ActReqDelThrCrsTch Request the removal of a thread of forum of teachers of the course
|
||||
1201. ActReqDelThrDegUsr Request the removal of a thread of forum of users of the degree
|
||||
1202. ActReqDelThrDegTch Request the removal of a thread of forum of teachers of the degree
|
||||
1203. ActReqDelThrCtrUsr Request the removal of a thread of forum of users of centre
|
||||
1204. ActReqDelThrCtrTch Request the removal of a thread of forum of teachers of centre
|
||||
1205. ActReqDelThrInsUsr Request the removal of a thread of forum of users of the institution
|
||||
1206. ActReqDelThrInsTch Request the removal of a thread of forum of teachers of the institution
|
||||
1207. ActReqDelThrGenUsr Request the removal of a thread of forum of users general
|
||||
1208. ActReqDelThrGenTch Request the removal of a thread of forum of teachers general
|
||||
1209. ActReqDelThrSWAUsr Request the removal of a thread of forum of users of the platform
|
||||
1210. ActReqDelThrSWATch Request the removal of a thread of forum of teachers of the platform
|
||||
1211. ActDelThrForCrsUsr Remove a thread of forum of users of the course
|
||||
1212. ActDelThrForCrsTch Remove a thread of forum of teachers of the course
|
||||
1213. ActDelThrForDegUsr Remove a thread of forum of users of the degree
|
||||
1214. ActDelThrForDegTch Remove a thread of forum of teachers of the degree
|
||||
1215. ActDelThrForCtrUsr Remove a thread of forum of users of centre
|
||||
1216. ActDelThrForCtrTch Remove a thread of forum of teachers of centre
|
||||
1217. ActDelThrForInsUsr Remove a thread of forum of users of the institution
|
||||
1218. ActDelThrForInsTch Remove a thread of forum of teachers of the institution
|
||||
1219. ActDelThrForGenUsr Remove a thread of forum of users general
|
||||
1220. ActDelThrForGenTch Remove a thread of forum of teachers general
|
||||
1221. ActDelThrForSWAUsr Remove a thread of forum of users of the platform
|
||||
1222. ActDelThrForSWATch Remove a thread of forum of teachers of the platform
|
||||
1223. ActCutThrForCrsUsr Cut a thread of forum of users of the course
|
||||
1224. ActCutThrForCrsTch Cut a thread of forum of teachers of the course
|
||||
1225. ActCutThrForDegUsr Cut a thread of forum of users of the degree
|
||||
1226. ActCutThrForDegTch Cut a thread of forum of teachers of the degree
|
||||
1227. ActCutThrForCtrUsr Cut a thread of forum of users of centre
|
||||
1228. ActCutThrForCtrTch Cut a thread of forum of teachers of centre
|
||||
1229. ActCutThrForInsUsr Cut a thread of forum of users of the institution
|
||||
1230. ActCutThrForInsTch Cut a thread of forum of teachers of the institution
|
||||
1231. ActCutThrForGenUsr Cut a thread of forum of users general
|
||||
1232. ActCutThrForGenTch Cut a thread of forum of teachers general
|
||||
1233. ActCutThrForSWAUsr Cut a thread of forum of users of the platform
|
||||
1234. ActCutThrForSWATch Cut a thread of forum of teachers of the platform
|
||||
1235. ActPasThrForCrsUsr Paste a thread of forum of users of the course
|
||||
1236. ActPasThrForCrsTch Paste a thread of forum of teachers of the course
|
||||
1237. ActPasThrForDegUsr Paste a thread of forum of users of the degree
|
||||
1238. ActPasThrForDegTch Paste a thread of forum of teachers of the degree
|
||||
1239. ActPasThrForCtrUsr Paste a thread of forum of users of centre
|
||||
1240. ActPasThrForCtrTch Paste a thread of forum of teachers of centre
|
||||
1241. ActPasThrForInsUsr Paste a thread of forum of users of the institution
|
||||
1242. ActPasThrForInsTch Paste a thread of forum of teachers of the institution
|
||||
1243. ActPasThrForGenUsr Paste a thread of forum of users general
|
||||
1244. ActPasThrForGenTch Paste a thread of forum of teachers general
|
||||
1245. ActPasThrForSWAUsr Paste a thread of forum of users of the platform
|
||||
1246. ActPasThrForSWATch Paste a thread of forum of teachers of the platform
|
||||
1247. ActDelPstForCrsUsr Remove a message of forum of users of the course
|
||||
1248. ActDelPstForCrsTch Remove a message of forum of teachers of the course
|
||||
1249. ActDelPstForDegUsr Remove a message of forum of users of the degree
|
||||
1250. ActDelPstForDegTch Remove a message of forum of teachers of the degree
|
||||
1251. ActDelPstForCtrUsr Remove a message of forum of users of centre
|
||||
1252. ActDelPstForCtrTch Remove a message of forum of teachers of centre
|
||||
1253. ActDelPstForInsUsr Remove a message of forum of users of the institution
|
||||
1254. ActDelPstForInsTch Remove a message of forum of teachers of the institution
|
||||
1255. ActDelPstForGenUsr Remove a message of forum of users general
|
||||
1256. ActDelPstForGenTch Remove a message of forum of teachers general
|
||||
1257. ActDelPstForSWAUsr Remove a message of forum of users of the platform
|
||||
1258. ActDelPstForSWATch Remove a message of forum of teachers of the platform
|
||||
1259. ActEnbPstForCrsUsr Enable a message of forum of users of the course
|
||||
1260. ActEnbPstForCrsTch Enable a message of forum of teachers of the course
|
||||
1261. ActEnbPstForDegUsr Enable a message of forum of users of the degree
|
||||
1262. ActEnbPstForDegTch Enable a message of forum of teachers of the degree
|
||||
1263. ActEnbPstForCtrUsr Enable a message of forum of users of centre
|
||||
1264. ActEnbPstForCtrTch Enable a message of forum of teachers of centre
|
||||
1265. ActEnbPstForInsUsr Enable a message of forum of users of the institution
|
||||
1266. ActEnbPstForInsTch Enable a message of forum of teachers of the institution
|
||||
1267. ActEnbPstForGenUsr Enable a message of forum of users general
|
||||
1268. ActEnbPstForGenTch Enable a message of forum of teachers general
|
||||
1269. ActEnbPstForSWAUsr Enable a message of forum of users of the platform
|
||||
1270. ActEnbPstForSWATch Enable a message of forum of teachers of the platform
|
||||
1271. ActDisPstForCrsUsr Disable a message of forum of users of the course
|
||||
1272. ActDisPstForCrsTch Disable a message of forum of teachers of the course
|
||||
1273. ActDisPstForDegUsr Disable a message of forum of users of the degree
|
||||
1274. ActDisPstForDegTch Disable a message of forum of teachers of the degree
|
||||
1275. ActDisPstForCtrUsr Disable a message of forum of users of centre
|
||||
1276. ActDisPstForCtrTch Disable a message of forum of teachers of centre
|
||||
1277. ActDisPstForInsUsr Disable a message of forum of users of the institution
|
||||
1278. ActDisPstForInsTch Disable a message of forum of teachers of the institution
|
||||
1279. ActDisPstForGenUsr Disable a message of forum of users general
|
||||
1280. ActDisPstForGenTch Disable a message of forum of teachers general
|
||||
1281. ActDisPstForSWAUsr Disable a message of forum of users of the platform
|
||||
1282. ActDisPstForSWATch Disable a message of forum of teachers of the platform
|
||||
|
||||
1283. ActCht Enter in a chat room to chat
|
||||
|
||||
1284. ActRcvMsgUsr Sent/Receive a message of a user
|
||||
1285. ActReqDelAllSntMsg Request the removal of todos the messages sent to other users
|
||||
1286. ActReqDelAllRcvMsg Request the removal of todos the messages received from other users
|
||||
1287. ActDelAllSntMsg Remove todos the messages sent to other users
|
||||
1288. ActDelAllRcvMsg Remove todos the messages received from other users
|
||||
1289. ActDelSntMsg Remove a message sent to other users
|
||||
1290. ActDelRcvMsg Remove a message received from other user
|
||||
1291. ActExpSntMsg See (expand) sent message
|
||||
1292. ActExpRcvMsg See (expand) received message
|
||||
1293. ActConSntMsg Hide (contract) sent message
|
||||
1294. ActConRcvMsg Hide (contract) received message
|
||||
1295. ActLstBanUsr List banned users
|
||||
1296. ActBanUsrMsg Ban the sender of a message when showing received messages
|
||||
1297. ActUnbUsrMsg Unban the sender of a message when showing received messages
|
||||
1298. ActUnbUsrLst Unban a user when listing banned users
|
||||
|
||||
Statistics:
|
||||
1299. ActReqUseGbl Request showing use of the platform
|
||||
1300. ActSeePhoDeg Show a class photo with the average photos of the students of each degree
|
||||
1301. ActReqStaCrs Request statistics of courses
|
||||
1302. ActReqAccGbl Request query of clicks to the complete platform
|
||||
1303. ActReqMyUsgRep Request my usage report
|
||||
1304. ActMFUAct Show most frequently used actions
|
||||
|
||||
1305. ActSeeUseGbl Show use of the platform
|
||||
1306. ActPrnPhoDeg Show vista of impresión of the class photo with the average photos of the students of each degree.
|
||||
1307. ActCalPhoDeg Compute the average photos of the students of each degree
|
||||
1308. ActSeeAccGbl Query clicks to the complete platform
|
||||
1309. ActReqAccCrs Request query of clicks in the course
|
||||
1310. ActSeeAccCrs Query clicks to current course
|
||||
1311. ActSeeAllStaCrs Show statistics of courses
|
||||
|
||||
1312. ActLstClk List last clicks
|
||||
1313. ActRefLstClk Refresh last clicks in real time via AJAX
|
||||
|
||||
1314. ActSeeMyUsgRep Show my usage report
|
||||
|
||||
*/
|
||||
|
||||
#define Act_DEFAULT_ACTION_AFTER_LOGIN ActSeeSocTmlGbl
|
||||
|
||||
|
@ -2289,7 +1631,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
[ActSeeMyAgd ] = {1602, 3,TabPrf,ActSeeMyAgd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Agd_ShowMyAgenda ,"calendar" },
|
||||
[ActFrmMyAcc ] = { 36, 4,TabPrf,ActFrmMyAcc ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Acc_ShowFormMyAccount ,"at" },
|
||||
[ActReqEdiRecSha ] = { 285, 5,TabPrf,ActReqEdiRecSha ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rec_ShowMySharedRecordAndMore ,"card" },
|
||||
[ActReqEdiSet ] = { 673, 6,TabPrf,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Set_EditSettings ,"cog" },
|
||||
[ActReqEdiSet ] = { 673, 6,TabPrf,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Set_EditSettings ,"cog" },
|
||||
|
||||
// Actions not in menu:
|
||||
[ActChgMyRol ] = { 589,-1,TabUnk,ActFrmRolSes ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,Rol_ChangeMyRole ,Usr_ShowFormsLogoutAndRole ,NULL},
|
||||
|
@ -2343,19 +1685,19 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
[ActReqEdiMyNet ] = {1172,-1,TabUnk,ActReqEdiRecSha ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rec_ShowMySharedRecordAndMore ,NULL},
|
||||
[ActChgMyNet ] = {1173,-1,TabUnk,ActReqEdiRecSha ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Net_UpdateMyWebsAndSocialNets ,NULL},
|
||||
|
||||
[ActChgThe ] = { 841,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,The_ChangeTheme ,Set_EditSettings ,NULL},
|
||||
[ActChgThe ] = { 841,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,The_ChangeTheme ,Set_EditSettings ,NULL},
|
||||
[ActReqChgLan ] = { 992,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Lan_AskChangeLanguage ,NULL},
|
||||
[ActChgLan ] = { 654,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Lan_ChangeLanguage ,Set_EditSettings ,NULL},
|
||||
[ActChg1stDay ] = {1484,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Cal_ChangeFirstDayOfWeek ,Set_EditSettings ,NULL},
|
||||
[ActChgDatFmt ] = {1638,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Dat_ChangeDateFormat ,Set_EditSettings ,NULL},
|
||||
[ActChgCol ] = { 674,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Set_ChangeSideCols ,Set_EditSettings ,NULL},
|
||||
[ActChgIco ] = {1092,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Ico_ChangeIconSet ,Set_EditSettings ,NULL},
|
||||
[ActChgMnu ] = {1243,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Mnu_ChangeMenu ,Set_EditSettings ,NULL},
|
||||
[ActChgLan ] = { 654,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Lan_ChangeLanguage ,Set_EditSettings ,NULL},
|
||||
[ActChg1stDay ] = {1484,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Cal_ChangeFirstDayOfWeek ,Set_EditSettings ,NULL},
|
||||
[ActChgDatFmt ] = {1638,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Dat_ChangeDateFormat ,Set_EditSettings ,NULL},
|
||||
[ActChgCol ] = { 674,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Set_ChangeSideCols ,Set_EditSettings ,NULL},
|
||||
[ActChgIco ] = {1092,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Ico_ChangeIconSet ,Set_EditSettings ,NULL},
|
||||
[ActChgMnu ] = {1243,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Mnu_ChangeMenu ,Set_EditSettings ,NULL},
|
||||
[ActChgPriPho ] = { 774,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Pho_ChangePhotoVisibility ,NULL},
|
||||
[ActChgBasPriPrf ] = {1404,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prf_ChangeBasicProfileVis ,NULL},
|
||||
[ActChgExtPriPrf ] = {1765,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prf_ChangeExtendedProfileVis ,NULL},
|
||||
[ActChgCooPrf ] = {1764,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Coo_ChangeMyPrefsCookies ,NULL},
|
||||
[ActChgNtfPrf ] = { 775,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,Ntf_ChangeNotifyEvents ,Set_EditSettings ,NULL},
|
||||
[ActChgNtfPrf ] = { 775,-1,TabUnk,ActReqEdiSet ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,Ntf_ChangeNotifyEvents ,Set_EditSettings ,NULL},
|
||||
|
||||
[ActPrnUsrQR ] = {1022,-1,TabUnk,ActFrmMyAcc ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Usr_PrintUsrQRCode ,NULL},
|
||||
|
||||
|
@ -2412,7 +1754,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
ActLstStdAll, // #42
|
||||
-1, // #43 (obsolete action)
|
||||
ActEdiSylLec, // #44
|
||||
ActEdiCrsTT, // #45
|
||||
ActEdiCrsTT, // #45
|
||||
-1, // #46 (obsolete action)
|
||||
-1, // #47 (obsolete action)
|
||||
ActChgTut, // #48
|
||||
|
@ -2420,7 +1762,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
-1, // #50 (obsolete action)
|
||||
ActSeeChtRms, // #51
|
||||
ActCht, // #52
|
||||
ActChgCrsTT, // #53
|
||||
ActChgCrsTT, // #53
|
||||
ActSeeFAQ, // #54
|
||||
-1, // #55 (obsolete action)
|
||||
-1, // #56 (obsolete action)
|
||||
|
@ -2452,7 +1794,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
-1, // #82 (obsolete action)
|
||||
-1, // #83 (obsolete action)
|
||||
ActSeeUseGbl, // #84
|
||||
ActSeeAllExaAnn, // #85
|
||||
ActSeeAllExaAnn, // #85
|
||||
-1, // #86 (obsolete action)
|
||||
ActRemAllStdCrs, // #87
|
||||
ActReqRemAllStdCrs, // #88
|
||||
|
@ -2519,7 +1861,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
-1, // #149 (obsolete action)
|
||||
ActFrmCreWrkUsr, // #150
|
||||
-1, // #151 (obsolete action)
|
||||
ActPrnCrsTT, // #152
|
||||
ActPrnCrsTT, // #152
|
||||
ActRcvFilBrfCla, // #153
|
||||
-1, // #154 (obsolete action)
|
||||
ActRemFilBrf, // #155
|
||||
|
|
|
@ -271,7 +271,7 @@ static void Ctr_ListCentres (void)
|
|||
Hlp_INSTITUTION_Centres,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
|
||||
if (Gbl.Hierarchy.Ins.Ctrs.Num) // There are centres in the current institution
|
||||
if (Gbl.Hierarchy.Ctrs.Num) // There are centres in the current institution
|
||||
{
|
||||
/***** Begin table *****/
|
||||
HTM_TABLE_BeginWideMarginPadding (2);
|
||||
|
@ -279,9 +279,9 @@ static void Ctr_ListCentres (void)
|
|||
|
||||
/***** Write all the centres and their nuber of teachers *****/
|
||||
for (NumCtr = 0;
|
||||
NumCtr < Gbl.Hierarchy.Ins.Ctrs.Num;
|
||||
NumCtr < Gbl.Hierarchy.Ctrs.Num;
|
||||
NumCtr++)
|
||||
Ctr_ListOneCentreForSeeing (&(Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr]),NumCtr + 1);
|
||||
Ctr_ListOneCentreForSeeing (&(Gbl.Hierarchy.Ctrs.Lst[NumCtr]),NumCtr + 1);
|
||||
|
||||
/***** End table *****/
|
||||
HTM_TABLE_End ();
|
||||
|
@ -293,7 +293,7 @@ static void Ctr_ListCentres (void)
|
|||
if (Ctr_CheckIfICanCreateCentres ())
|
||||
{
|
||||
Frm_StartForm (ActEdiCtr);
|
||||
Btn_PutConfirmButton (Gbl.Hierarchy.Ins.Ctrs.Num ? Txt_Create_another_centre :
|
||||
Btn_PutConfirmButton (Gbl.Hierarchy.Ctrs.Num ? Txt_Create_another_centre :
|
||||
Txt_Create_centre);
|
||||
Frm_EndForm ();
|
||||
}
|
||||
|
@ -438,11 +438,11 @@ static void Ctr_ListOneCentreForSeeing (struct Centre *Ctr,unsigned NumCtr)
|
|||
|
||||
static void Ctr_GetParamCtrOrder (void)
|
||||
{
|
||||
Gbl.Hierarchy.Ins.Ctrs.SelectedOrder = (Ctr_Order_t)
|
||||
Par_GetParToUnsignedLong ("Order",
|
||||
0,
|
||||
Ctr_NUM_ORDERS - 1,
|
||||
(unsigned long) Ctr_ORDER_DEFAULT);
|
||||
Gbl.Hierarchy.Ctrs.SelectedOrder = (Ctr_Order_t)
|
||||
Par_GetParToUnsignedLong ("Order",
|
||||
0,
|
||||
Ctr_NUM_ORDERS - 1,
|
||||
(unsigned long) Ctr_ORDER_DEFAULT);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -471,7 +471,7 @@ static void Ctr_EditCentresInternal (void)
|
|||
Plc_GetListPlaces ();
|
||||
|
||||
/***** Get list of centres *****/
|
||||
Gbl.Hierarchy.Ins.Ctrs.SelectedOrder = Ctr_ORDER_BY_CENTRE;
|
||||
Gbl.Hierarchy.Ctrs.SelectedOrder = Ctr_ORDER_BY_CENTRE;
|
||||
Ctr_GetFullListOfCentres (Gbl.Hierarchy.Ins.InsCod);
|
||||
|
||||
/***** Write menu to select country and institution *****/
|
||||
|
@ -488,7 +488,7 @@ static void Ctr_EditCentresInternal (void)
|
|||
Ctr_PutFormToCreateCentre ();
|
||||
|
||||
/***** List current centres *****/
|
||||
if (Gbl.Hierarchy.Ins.Ctrs.Num)
|
||||
if (Gbl.Hierarchy.Ctrs.Num)
|
||||
Ctr_ListCentresForEdition ();
|
||||
|
||||
/***** End box *****/
|
||||
|
@ -560,19 +560,19 @@ void Ctr_GetBasicListOfCentres (long InsCod)
|
|||
if (NumRows) // Centres found...
|
||||
{
|
||||
// NumRows should be equal to Deg->NumCourses
|
||||
Gbl.Hierarchy.Ins.Ctrs.Num = (unsigned) NumRows;
|
||||
Gbl.Hierarchy.Ctrs.Num = (unsigned) NumRows;
|
||||
|
||||
/***** Create list with courses in degree *****/
|
||||
if ((Gbl.Hierarchy.Ins.Ctrs.Lst = (struct Centre *) calloc (NumRows,
|
||||
if ((Gbl.Hierarchy.Ctrs.Lst = (struct Centre *) calloc (NumRows,
|
||||
sizeof (struct Centre))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
/***** Get the centres *****/
|
||||
for (NumCtr = 0;
|
||||
NumCtr < Gbl.Hierarchy.Ins.Ctrs.Num;
|
||||
NumCtr < Gbl.Hierarchy.Ctrs.Num;
|
||||
NumCtr++)
|
||||
{
|
||||
Ctr = &(Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr]);
|
||||
Ctr = &(Gbl.Hierarchy.Ctrs.Lst[NumCtr]);
|
||||
|
||||
/* Get centre data */
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
@ -580,14 +580,10 @@ void Ctr_GetBasicListOfCentres (long InsCod)
|
|||
|
||||
/* Reset number of users who claim to belong to this centre */
|
||||
Ctr->NumUsrsWhoClaimToBelongToCtr.Valid = false;
|
||||
|
||||
/* Reset other fields */
|
||||
Ctr->Degs.Num = 0;
|
||||
Ctr->Degs.Lst = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
Gbl.Hierarchy.Ins.Ctrs.Num = 0;
|
||||
Gbl.Hierarchy.Ctrs.Num = 0;
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
|
@ -648,24 +644,24 @@ void Ctr_GetFullListOfCentres (long InsCod)
|
|||
" (SELECT DISTINCT CtrCod FROM usr_data))"
|
||||
" ORDER BY %s",
|
||||
InsCod,InsCod,
|
||||
OrderBySubQuery[Gbl.Hierarchy.Ins.Ctrs.SelectedOrder]);
|
||||
OrderBySubQuery[Gbl.Hierarchy.Ctrs.SelectedOrder]);
|
||||
|
||||
if (NumRows) // Centres found...
|
||||
{
|
||||
// NumRows should be equal to Deg->NumCourses
|
||||
Gbl.Hierarchy.Ins.Ctrs.Num = (unsigned) NumRows;
|
||||
Gbl.Hierarchy.Ctrs.Num = (unsigned) NumRows;
|
||||
|
||||
/***** Create list with courses in degree *****/
|
||||
if ((Gbl.Hierarchy.Ins.Ctrs.Lst = (struct Centre *) calloc (NumRows,
|
||||
if ((Gbl.Hierarchy.Ctrs.Lst = (struct Centre *) calloc (NumRows,
|
||||
sizeof (struct Centre))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
/***** Get the centres *****/
|
||||
for (NumCtr = 0;
|
||||
NumCtr < Gbl.Hierarchy.Ins.Ctrs.Num;
|
||||
NumCtr < Gbl.Hierarchy.Ctrs.Num;
|
||||
NumCtr++)
|
||||
{
|
||||
Ctr = &(Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr]);
|
||||
Ctr = &(Gbl.Hierarchy.Ctrs.Lst[NumCtr]);
|
||||
|
||||
/* Get centre data */
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
@ -675,14 +671,10 @@ void Ctr_GetFullListOfCentres (long InsCod)
|
|||
Ctr->NumUsrsWhoClaimToBelongToCtr.Valid = false;
|
||||
if (sscanf (row[11],"%u",&(Ctr->NumUsrsWhoClaimToBelongToCtr.NumUsrs)) == 1)
|
||||
Ctr->NumUsrsWhoClaimToBelongToCtr.Valid = true;
|
||||
|
||||
/* Reset other fields */
|
||||
Ctr->Degs.Num = 0;
|
||||
Ctr->Degs.Lst = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
Gbl.Hierarchy.Ins.Ctrs.Num = 0;
|
||||
Gbl.Hierarchy.Ctrs.Num = 0;
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
|
@ -707,8 +699,6 @@ bool Ctr_GetDataOfCentreByCod (struct Centre *Ctr)
|
|||
Ctr->ShrtName[0] = '\0';
|
||||
Ctr->FullName[0] = '\0';
|
||||
Ctr->WWW[0] = '\0';
|
||||
Ctr->Degs.Num = 0;
|
||||
Ctr->Degs.Lst = NULL;
|
||||
Ctr->NumUsrsWhoClaimToBelongToCtr.Valid = false;
|
||||
|
||||
/***** Check if centre code is correct *****/
|
||||
|
@ -857,12 +847,12 @@ void Ctr_GetShortNameOfCentreByCod (struct Centre *Ctr)
|
|||
|
||||
void Ctr_FreeListCentres (void)
|
||||
{
|
||||
if (Gbl.Hierarchy.Ins.Ctrs.Lst)
|
||||
if (Gbl.Hierarchy.Ctrs.Lst)
|
||||
{
|
||||
/***** Free memory used by the list of courses in degree *****/
|
||||
free (Gbl.Hierarchy.Ins.Ctrs.Lst);
|
||||
Gbl.Hierarchy.Ins.Ctrs.Lst = NULL;
|
||||
Gbl.Hierarchy.Ins.Ctrs.Num = 0;
|
||||
free (Gbl.Hierarchy.Ctrs.Lst);
|
||||
Gbl.Hierarchy.Ctrs.Lst = NULL;
|
||||
Gbl.Hierarchy.Ctrs.Num = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -958,10 +948,10 @@ static void Ctr_ListCentresForEdition (void)
|
|||
|
||||
/***** Write all the centres *****/
|
||||
for (NumCtr = 0;
|
||||
NumCtr < Gbl.Hierarchy.Ins.Ctrs.Num;
|
||||
NumCtr < Gbl.Hierarchy.Ctrs.Num;
|
||||
NumCtr++)
|
||||
{
|
||||
Ctr = &Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr];
|
||||
Ctr = &Gbl.Hierarchy.Ctrs.Lst[NumCtr];
|
||||
|
||||
ICanEdit = Ctr_CheckIfICanEditACentre (Ctr);
|
||||
NumUsrsInCrssOfCtr = Usr_GetNumUsrsInCrssOfCtr (Rol_UNK,Ctr->CtrCod); // Here Rol_UNK means "all users"
|
||||
|
@ -1734,13 +1724,13 @@ static void Ctr_PutHeadCentresForSeeing (bool OrderSelectable)
|
|||
Order == Ctr_ORDER_BY_CENTRE ? "BT_LINK LM TIT_TBL" :
|
||||
"BT_LINK RM TIT_TBL",
|
||||
NULL);
|
||||
if (Order == Gbl.Hierarchy.Ins.Ctrs.SelectedOrder)
|
||||
if (Order == Gbl.Hierarchy.Ctrs.SelectedOrder)
|
||||
HTM_U_Begin ();
|
||||
}
|
||||
HTM_Txt (Txt_CENTRES_ORDER[Order]);
|
||||
if (OrderSelectable)
|
||||
{
|
||||
if (Order == Gbl.Hierarchy.Ins.Ctrs.SelectedOrder)
|
||||
if (Order == Gbl.Hierarchy.Ctrs.SelectedOrder)
|
||||
HTM_U_End ();
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
@ -2122,8 +2112,6 @@ static void Ctr_EditingCentreConstructor (void)
|
|||
Ctr_EditingCtr->ShrtName[0] = '\0';
|
||||
Ctr_EditingCtr->FullName[0] = '\0';
|
||||
Ctr_EditingCtr->WWW[0] = '\0';
|
||||
Ctr_EditingCtr->Degs.Num = 0;
|
||||
Ctr_EditingCtr->Degs.Lst = NULL;
|
||||
}
|
||||
|
||||
static void Ctr_EditingCentreDestructor (void)
|
||||
|
|
|
@ -71,7 +71,6 @@ struct Centre
|
|||
char ShrtName[Hie_MAX_BYTES_SHRT_NAME + 1];
|
||||
char FullName[Hie_MAX_BYTES_FULL_NAME + 1];
|
||||
char WWW[Cns_MAX_BYTES_WWW + 1];
|
||||
struct ListDegrees Degs; // List of degrees in this centre
|
||||
struct
|
||||
{
|
||||
bool Valid;
|
||||
|
@ -87,6 +86,13 @@ typedef enum
|
|||
} Ctr_Order_t;
|
||||
#define Ctr_ORDER_DEFAULT Ctr_ORDER_BY_CENTRE
|
||||
|
||||
struct ListCentres
|
||||
{
|
||||
unsigned Num; // Number of centres
|
||||
struct Centre *Lst; // List of centres
|
||||
Ctr_Order_t SelectedOrder; // Order of centres
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Public prototypes ****************************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -591,11 +591,11 @@ static void CtrCfg_Institution (bool PrintView,bool PutForm)
|
|||
"id=\"OthInsCod\" name=\"OthInsCod\""
|
||||
" class=\"INPUT_SHORT_NAME\"");
|
||||
for (NumIns = 0;
|
||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
||||
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||
NumIns++)
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod,
|
||||
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod == Gbl.Hierarchy.Ins.InsCod,false,
|
||||
"%s",Gbl.Hierarchy.Cty.Inss.Lst[NumIns].ShrtName);
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Inss.Lst[NumIns].InsCod,
|
||||
Gbl.Hierarchy.Inss.Lst[NumIns].InsCod == Gbl.Hierarchy.Ins.InsCod,false,
|
||||
"%s",Gbl.Hierarchy.Inss.Lst[NumIns].ShrtName);
|
||||
HTM_SELECT_End ();
|
||||
Frm_EndForm ();
|
||||
|
||||
|
|
|
@ -492,7 +492,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
|||
En OpenSWAD:
|
||||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.112.26 (2020-01-08)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.113 (2020-01-08)"
|
||||
#define CSS_FILE "swad19.112.css"
|
||||
#define JS_FILE "swad19.91.1.js"
|
||||
/*
|
||||
|
@ -501,6 +501,9 @@ ps2pdf source.ps destination.pdf
|
|||
// TODO: No se puede entrar con DNI '1' suponiendo que no tenga password ¿por qué?
|
||||
// TODO: Mapas más estrechos en móvil
|
||||
|
||||
Version 19.113: Jan 08, 2020 Code refactoring related to hierarchy.
|
||||
Changing action descriptions from database to swad-core. Not finished. (278076 lines)
|
||||
Version 19.112.27:Jan 08, 2020 Changing action descriptions from database to swad-core. Not finished. (278715 lines)
|
||||
Version 19.112.26:Jan 08, 2020 Fixed bug in list of centres. (278755 lines)
|
||||
Version 19.112.25:Jan 07, 2020 Changing action descriptions from database to swad-core. Not finished. (278670 lines)
|
||||
Version 19.112.24:Jan 07, 2020 Fixed bug in edition of institutions. (278815 lines)
|
||||
|
|
|
@ -235,9 +235,9 @@ void Cty_ListCountries2 (void)
|
|||
|
||||
/***** Write all the countries and their number of users and institutions *****/
|
||||
for (NumCty = 0;
|
||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
||||
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||
NumCty++)
|
||||
Cty_ListOneCountryForSeeing (&Gbl.Hierarchy.Sys.Ctys.Lst[NumCty],NumCty + 1);
|
||||
Cty_ListOneCountryForSeeing (&Gbl.Hierarchy.Ctys.Lst[NumCty],NumCty + 1);
|
||||
|
||||
/***** Separation row *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -361,13 +361,13 @@ static void Cty_PutHeadCountriesForSeeing (bool OrderSelectable)
|
|||
Frm_StartForm (ActSeeCty);
|
||||
Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order);
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_COUNTRIES_HELP_ORDER[Order],"BT_LINK TIT_TBL",NULL);
|
||||
if (Order == Gbl.Hierarchy.Sys.Ctys.SelectedOrder)
|
||||
if (Order == Gbl.Hierarchy.Ctys.SelectedOrder)
|
||||
HTM_U_Begin ();
|
||||
}
|
||||
HTM_Txt (Txt_COUNTRIES_ORDER[Order]);
|
||||
if (OrderSelectable)
|
||||
{
|
||||
if (Order == Gbl.Hierarchy.Sys.Ctys.SelectedOrder)
|
||||
if (Order == Gbl.Hierarchy.Ctys.SelectedOrder)
|
||||
HTM_U_End ();
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
@ -589,17 +589,17 @@ void Cty_WriteScriptGoogleGeochart (void)
|
|||
|
||||
/***** Write all the countries and their number of users and institutions *****/
|
||||
for (NumCty = 0;
|
||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
||||
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||
NumCty++)
|
||||
{
|
||||
NumUsrsWhoClaimToBelongToCty = Usr_GetNumUsrsWhoClaimToBelongToCty (&Gbl.Hierarchy.Sys.Ctys.Lst[NumCty]);
|
||||
NumUsrsWhoClaimToBelongToCty = Usr_GetNumUsrsWhoClaimToBelongToCty (&Gbl.Hierarchy.Ctys.Lst[NumCty]);
|
||||
if (NumUsrsWhoClaimToBelongToCty)
|
||||
{
|
||||
/* Write data of this country */
|
||||
HTM_TxtF (" ['%s', %u, %u],\n",
|
||||
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Alpha2,
|
||||
Gbl.Hierarchy.Ctys.Lst[NumCty].Alpha2,
|
||||
NumUsrsWhoClaimToBelongToCty,
|
||||
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Inss.Num);
|
||||
Ins_GetNumInssInCty (Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod));
|
||||
if (NumUsrsWhoClaimToBelongToCty > MaxUsrsInCountry)
|
||||
MaxUsrsInCountry = NumUsrsWhoClaimToBelongToCty;
|
||||
NumCtysWithUsrs++;
|
||||
|
@ -628,11 +628,11 @@ void Cty_WriteScriptGoogleGeochart (void)
|
|||
|
||||
static void Cty_GetParamCtyOrder (void)
|
||||
{
|
||||
Gbl.Hierarchy.Sys.Ctys.SelectedOrder = (Cty_Order_t)
|
||||
Par_GetParToUnsignedLong ("Order",
|
||||
0,
|
||||
Cty_NUM_ORDERS - 1,
|
||||
(unsigned long) Cty_ORDER_DEFAULT);
|
||||
Gbl.Hierarchy.Ctys.SelectedOrder = (Cty_Order_t)
|
||||
Par_GetParToUnsignedLong ("Order",
|
||||
0,
|
||||
Cty_NUM_ORDERS - 1,
|
||||
(unsigned long) Cty_ORDER_DEFAULT);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -657,7 +657,7 @@ static void Cty_EditCountriesInternal (void)
|
|||
extern const char *Txt_Countries;
|
||||
|
||||
/***** Get list of countries *****/
|
||||
Gbl.Hierarchy.Sys.Ctys.SelectedOrder = Cty_ORDER_BY_COUNTRY;
|
||||
Gbl.Hierarchy.Ctys.SelectedOrder = Cty_ORDER_BY_COUNTRY;
|
||||
Cty_GetFullListOfCountries ();
|
||||
|
||||
/***** Write menu to select country *****/
|
||||
|
@ -671,7 +671,7 @@ static void Cty_EditCountriesInternal (void)
|
|||
Cty_PutFormToCreateCountry ();
|
||||
|
||||
/***** Forms to edit current countries *****/
|
||||
if (Gbl.Hierarchy.Sys.Ctys.Num)
|
||||
if (Gbl.Hierarchy.Ctys.Num)
|
||||
Cty_ListCountriesForEdition ();
|
||||
|
||||
/***** End box *****/
|
||||
|
@ -730,19 +730,19 @@ void Cty_GetBasicListOfCountries (void)
|
|||
Lan_STR_LANG_ID[Gbl.Prefs.Language]);
|
||||
if (NumRows) // Countries found...
|
||||
{
|
||||
Gbl.Hierarchy.Sys.Ctys.Num = (unsigned) NumRows;
|
||||
Gbl.Hierarchy.Ctys.Num = (unsigned) NumRows;
|
||||
|
||||
/***** Create list with countries *****/
|
||||
if ((Gbl.Hierarchy.Sys.Ctys.Lst = (struct Country *)
|
||||
if ((Gbl.Hierarchy.Ctys.Lst = (struct Country *)
|
||||
calloc (NumRows,sizeof (struct Country))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
/***** Get the countries *****/
|
||||
for (NumCty = 0;
|
||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
||||
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||
NumCty++)
|
||||
{
|
||||
Cty = &(Gbl.Hierarchy.Sys.Ctys.Lst[NumCty]);
|
||||
Cty = &(Gbl.Hierarchy.Ctys.Lst[NumCty]);
|
||||
|
||||
/* Get next country */
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
@ -769,14 +769,10 @@ void Cty_GetBasicListOfCountries (void)
|
|||
|
||||
/* Reset number of users who claim to belong to country */
|
||||
Cty->NumUsrsWhoClaimToBelongToCty.Valid = false;
|
||||
|
||||
/* Reset other fields */
|
||||
Cty->Inss.Num = 0;
|
||||
Cty->Inss.Lst = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
Gbl.Hierarchy.Sys.Ctys.Num = 0;
|
||||
Gbl.Hierarchy.Ctys.Num = 0;
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
|
@ -843,7 +839,7 @@ void Cty_GetFullListOfCountries (void)
|
|||
}
|
||||
|
||||
/* Build order subquery */
|
||||
if (asprintf (&OrderBySubQuery,OrderBySubQueryFmt[Gbl.Hierarchy.Sys.Ctys.SelectedOrder],
|
||||
if (asprintf (&OrderBySubQuery,OrderBySubQueryFmt[Gbl.Hierarchy.Ctys.SelectedOrder],
|
||||
Lan_STR_LANG_ID[Gbl.Prefs.Language]) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
|
@ -868,19 +864,19 @@ void Cty_GetFullListOfCountries (void)
|
|||
|
||||
if (NumRows) // Countries found...
|
||||
{
|
||||
Gbl.Hierarchy.Sys.Ctys.Num = (unsigned) NumRows;
|
||||
Gbl.Hierarchy.Ctys.Num = (unsigned) NumRows;
|
||||
|
||||
/***** Create list with countries *****/
|
||||
if ((Gbl.Hierarchy.Sys.Ctys.Lst = (struct Country *)
|
||||
if ((Gbl.Hierarchy.Ctys.Lst = (struct Country *)
|
||||
calloc (NumRows,sizeof (struct Country))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
/***** Get the countries *****/
|
||||
for (NumCty = 0;
|
||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
||||
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||
NumCty++)
|
||||
{
|
||||
Cty = &(Gbl.Hierarchy.Sys.Ctys.Lst[NumCty]);
|
||||
Cty = &(Gbl.Hierarchy.Ctys.Lst[NumCty]);
|
||||
|
||||
/* Get next country */
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
@ -909,14 +905,10 @@ void Cty_GetFullListOfCountries (void)
|
|||
if (sscanf (row[1 + Lan_NUM_LANGUAGES * 2 + 1],"%u",
|
||||
&(Cty->NumUsrsWhoClaimToBelongToCty.NumUsrs)) == 1)
|
||||
Cty->NumUsrsWhoClaimToBelongToCty.Valid = true;
|
||||
|
||||
/* Reset other fields */
|
||||
Cty->Inss.Num = 0;
|
||||
Cty->Inss.Lst = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
Gbl.Hierarchy.Sys.Ctys.Num = 0;
|
||||
Gbl.Hierarchy.Ctys.Num = 0;
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
|
@ -1032,9 +1024,6 @@ bool Cty_GetDataOfCountryByCod (struct Country *Cty)
|
|||
Cty->Name[Lan][0] = '\0';
|
||||
Cty->WWW[Lan][0] = '\0';
|
||||
}
|
||||
Cty->Inss.Num = 0;
|
||||
Cty->Inss.Lst = NULL;
|
||||
Cty->Inss.SelectedOrder = Ins_ORDER_DEFAULT;
|
||||
Cty->NumUsrsWhoClaimToBelongToCty.Valid = false;
|
||||
|
||||
/***** Check if country code is correct *****/
|
||||
|
@ -1154,12 +1143,12 @@ void Cty_GetCountryName (long CtyCod,Lan_Language_t Language,
|
|||
|
||||
void Cty_FreeListCountries (void)
|
||||
{
|
||||
if (Gbl.Hierarchy.Sys.Ctys.Lst)
|
||||
if (Gbl.Hierarchy.Ctys.Lst)
|
||||
{
|
||||
/***** Free memory used by the list of courses in institution *****/
|
||||
free (Gbl.Hierarchy.Sys.Ctys.Lst);
|
||||
Gbl.Hierarchy.Sys.Ctys.Lst = NULL;
|
||||
Gbl.Hierarchy.Sys.Ctys.Num = 0;
|
||||
free (Gbl.Hierarchy.Ctys.Lst);
|
||||
Gbl.Hierarchy.Ctys.Lst = NULL;
|
||||
Gbl.Hierarchy.Ctys.Num = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1181,10 +1170,10 @@ static void Cty_ListCountriesForEdition (void)
|
|||
|
||||
/***** Write all countries *****/
|
||||
for (NumCty = 0;
|
||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
||||
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||
NumCty++)
|
||||
{
|
||||
Cty = &Gbl.Hierarchy.Sys.Ctys.Lst[NumCty];
|
||||
Cty = &Gbl.Hierarchy.Ctys.Lst[NumCty];
|
||||
NumInssInCty = Ins_GetNumInssInCty (Cty->CtyCod);
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -2059,9 +2048,6 @@ static void Cty_EditingCountryConstructor (void)
|
|||
Cty_EditingCty->Name[Lan][0] = '\0';
|
||||
Cty_EditingCty->WWW [Lan][0] = '\0';
|
||||
}
|
||||
Cty_EditingCty->Inss.Num = 0;
|
||||
Cty_EditingCty->Inss.Lst = NULL;
|
||||
Cty_EditingCty->Inss.SelectedOrder = Ins_ORDER_DEFAULT;
|
||||
Cty_EditingCty->NumUsrsWhoClaimToBelongToCty.Valid = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -51,12 +51,6 @@ struct Country
|
|||
char Alpha2[2 + 1];
|
||||
char Name[1 + Lan_NUM_LANGUAGES][Cty_MAX_BYTES_NAME + 1];
|
||||
char WWW [1 + Lan_NUM_LANGUAGES][Cns_MAX_BYTES_WWW + 1];
|
||||
struct
|
||||
{
|
||||
unsigned Num; // Number of institutions in this country
|
||||
struct Instit *Lst; // List of institutions in this country
|
||||
Ins_Order_t SelectedOrder;
|
||||
} Inss;
|
||||
struct
|
||||
{
|
||||
bool Valid;
|
||||
|
@ -72,6 +66,13 @@ typedef enum
|
|||
} Cty_Order_t;
|
||||
#define Cty_ORDER_DEFAULT Cty_ORDER_BY_NUM_USRS
|
||||
|
||||
struct ListCountries
|
||||
{
|
||||
unsigned Num; // Number of countries
|
||||
struct Country *Lst; // List of countries
|
||||
Cty_Order_t SelectedOrder; // Order of countries
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -676,7 +676,7 @@ static void Crs_GetListCrssInCurrentDeg (Crs_WhatCourses_t WhatCourses)
|
|||
if (NumCrss) // Courses found...
|
||||
{
|
||||
/***** Create list with courses in degree *****/
|
||||
if ((Gbl.Hierarchy.Deg.Crss.Lst = (struct Course *) calloc ((size_t) NumCrss,
|
||||
if ((Gbl.Hierarchy.Crss.Lst = (struct Course *) calloc ((size_t) NumCrss,
|
||||
sizeof (struct Course))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
|
@ -685,7 +685,7 @@ static void Crs_GetListCrssInCurrentDeg (Crs_WhatCourses_t WhatCourses)
|
|||
NumCrs < NumCrss;
|
||||
NumCrs++)
|
||||
{
|
||||
Crs = &Gbl.Hierarchy.Deg.Crss.Lst[NumCrs];
|
||||
Crs = &Gbl.Hierarchy.Crss.Lst[NumCrs];
|
||||
|
||||
/* Get next course */
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
@ -693,7 +693,7 @@ static void Crs_GetListCrssInCurrentDeg (Crs_WhatCourses_t WhatCourses)
|
|||
}
|
||||
}
|
||||
|
||||
Gbl.Hierarchy.Deg.Crss.Num = NumCrss;
|
||||
Gbl.Hierarchy.Crss.Num = NumCrss;
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
|
@ -705,11 +705,11 @@ static void Crs_GetListCrssInCurrentDeg (Crs_WhatCourses_t WhatCourses)
|
|||
|
||||
void Crs_FreeListCoursesInCurrentDegree (void)
|
||||
{
|
||||
if (Gbl.Hierarchy.Deg.Crss.Lst)
|
||||
if (Gbl.Hierarchy.Crss.Lst)
|
||||
{
|
||||
/***** Free memory used by the list of courses in degree *****/
|
||||
free (Gbl.Hierarchy.Deg.Crss.Lst);
|
||||
Gbl.Hierarchy.Deg.Crss.Lst = NULL;
|
||||
free (Gbl.Hierarchy.Crss.Lst);
|
||||
Gbl.Hierarchy.Crss.Lst = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -805,7 +805,7 @@ static void Crs_ListCourses (void)
|
|||
Hlp_DEGREE_Courses,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
|
||||
if (Gbl.Hierarchy.Deg.Crss.Num) // There are courses in the current degree
|
||||
if (Gbl.Hierarchy.Crss.Num) // There are courses in the current degree
|
||||
{
|
||||
/***** Begin table *****/
|
||||
HTM_TABLE_BeginWideMarginPadding (2);
|
||||
|
@ -829,7 +829,7 @@ static void Crs_ListCourses (void)
|
|||
if (Crs_CheckIfICanCreateCourses ())
|
||||
{
|
||||
Frm_StartForm (ActEdiCrs);
|
||||
Btn_PutConfirmButton (Gbl.Hierarchy.Deg.Crss.Num ? Txt_Create_another_course :
|
||||
Btn_PutConfirmButton (Gbl.Hierarchy.Crss.Num ? Txt_Create_another_course :
|
||||
Txt_Create_course);
|
||||
Frm_EndForm ();
|
||||
}
|
||||
|
@ -893,10 +893,10 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
|
|||
|
||||
/***** Write all the courses of this year *****/
|
||||
for (NumCrs = 0;
|
||||
NumCrs < Gbl.Hierarchy.Deg.Crss.Num;
|
||||
NumCrs < Gbl.Hierarchy.Crss.Num;
|
||||
NumCrs++)
|
||||
{
|
||||
Crs = &(Gbl.Hierarchy.Deg.Crss.Lst[NumCrs]);
|
||||
Crs = &(Gbl.Hierarchy.Crss.Lst[NumCrs]);
|
||||
if (Crs->Year == Year) // The year of the course is this?
|
||||
{
|
||||
ThisYearHasCourses = true;
|
||||
|
@ -1020,7 +1020,7 @@ static void Crs_EditCoursesInternal (void)
|
|||
Crs_PutFormToCreateCourse ();
|
||||
|
||||
/***** Forms to edit current courses *****/
|
||||
if (Gbl.Hierarchy.Deg.Crss.Num)
|
||||
if (Gbl.Hierarchy.Crss.Num)
|
||||
Crs_ListCoursesForEdition ();
|
||||
|
||||
/***** End box *****/
|
||||
|
@ -1030,7 +1030,7 @@ static void Crs_EditCoursesInternal (void)
|
|||
Crs_FreeListCoursesInCurrentDegree ();
|
||||
|
||||
/***** Free list of degrees in this centre *****/
|
||||
Deg_FreeListDegs (&Gbl.Hierarchy.Ctr.Degs);
|
||||
Deg_FreeListDegs (&Gbl.Hierarchy.Degs);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1105,10 +1105,10 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
|||
|
||||
/***** List courses of a given year *****/
|
||||
for (NumCrs = 0;
|
||||
NumCrs < Gbl.Hierarchy.Deg.Crss.Num;
|
||||
NumCrs < Gbl.Hierarchy.Crss.Num;
|
||||
NumCrs++)
|
||||
{
|
||||
Crs = &(Gbl.Hierarchy.Deg.Crss.Lst[NumCrs]);
|
||||
Crs = &(Gbl.Hierarchy.Crss.Lst[NumCrs]);
|
||||
if (Crs->Year == Year)
|
||||
{
|
||||
ICanEdit = Crs_CheckIfICanEdit (Crs);
|
||||
|
|
|
@ -87,6 +87,12 @@ struct Course
|
|||
char FullName[Hie_MAX_BYTES_FULL_NAME + 1]; // Full name of course
|
||||
};
|
||||
|
||||
struct ListCourses
|
||||
{
|
||||
unsigned Num; // Number of courses
|
||||
struct Course *Lst; // List of courses
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -237,16 +237,16 @@ static void CrsCfg_Degree (bool PrintView,bool PutForm)
|
|||
"id=\"OthDegCod\" name=\"OthDegCod\""
|
||||
" class=\"INPUT_SHORT_NAME\"");
|
||||
for (NumDeg = 0;
|
||||
NumDeg < Gbl.Hierarchy.Ctr.Degs.Num;
|
||||
NumDeg < Gbl.Hierarchy.Degs.Num;
|
||||
NumDeg++)
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg].DegCod,
|
||||
Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg].DegCod == Gbl.Hierarchy.Deg.DegCod,false,
|
||||
"%s",Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg].ShrtName);
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Degs.Lst[NumDeg].DegCod,
|
||||
Gbl.Hierarchy.Degs.Lst[NumDeg].DegCod == Gbl.Hierarchy.Deg.DegCod,false,
|
||||
"%s",Gbl.Hierarchy.Degs.Lst[NumDeg].ShrtName);
|
||||
HTM_SELECT_End ();
|
||||
Frm_EndForm ();
|
||||
|
||||
/* Free list of degrees of the current centre */
|
||||
Deg_FreeListDegs (&Gbl.Hierarchy.Ctr.Degs);
|
||||
Deg_FreeListDegs (&Gbl.Hierarchy.Degs);
|
||||
}
|
||||
else // I can not move course to another degree
|
||||
{
|
||||
|
|
|
@ -319,7 +319,7 @@ void Deg_ShowDegsOfCurrentCtr (void)
|
|||
Deg_ListDegrees ();
|
||||
|
||||
/***** Free list of degrees and centres *****/
|
||||
Deg_FreeListDegs (&Gbl.Hierarchy.Ctr.Degs);
|
||||
Deg_FreeListDegs (&Gbl.Hierarchy.Degs);
|
||||
Ctr_FreeListCentres ();
|
||||
}
|
||||
|
||||
|
@ -350,10 +350,10 @@ static void Deg_ListDegreesForEdition (void)
|
|||
|
||||
/***** List the degrees *****/
|
||||
for (NumDeg = 0;
|
||||
NumDeg < Gbl.Hierarchy.Ctr.Degs.Num;
|
||||
NumDeg < Gbl.Hierarchy.Degs.Num;
|
||||
NumDeg++)
|
||||
{
|
||||
Deg = &(Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg]);
|
||||
Deg = &(Gbl.Hierarchy.Degs.Lst[NumDeg]);
|
||||
|
||||
NumCrss = Crs_GetNumCrssInDeg (Deg->DegCod);
|
||||
|
||||
|
@ -770,7 +770,7 @@ static void Deg_ListDegrees (void)
|
|||
Hlp_CENTRE_Degrees,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
|
||||
if (Gbl.Hierarchy.Ctr.Degs.Num) // There are degrees in the current centre
|
||||
if (Gbl.Hierarchy.Degs.Num) // There are degrees in the current centre
|
||||
{
|
||||
/***** Write heading *****/
|
||||
HTM_TABLE_BeginWideMarginPadding (2);
|
||||
|
@ -778,9 +778,9 @@ static void Deg_ListDegrees (void)
|
|||
|
||||
/***** List the degrees *****/
|
||||
for (NumDeg = 0;
|
||||
NumDeg < Gbl.Hierarchy.Ctr.Degs.Num;
|
||||
NumDeg < Gbl.Hierarchy.Degs.Num;
|
||||
NumDeg++)
|
||||
Deg_ListOneDegreeForSeeing (&(Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg]),NumDeg + 1);
|
||||
Deg_ListOneDegreeForSeeing (&(Gbl.Hierarchy.Degs.Lst[NumDeg]),NumDeg + 1);
|
||||
|
||||
/***** End table *****/
|
||||
HTM_TABLE_End ();
|
||||
|
@ -792,7 +792,7 @@ static void Deg_ListDegrees (void)
|
|||
if (Deg_CheckIfICanCreateDegrees ())
|
||||
{
|
||||
Frm_StartForm (ActEdiDeg);
|
||||
Btn_PutConfirmButton (Gbl.Hierarchy.Ctr.Degs.Num ? Txt_Create_another_degree :
|
||||
Btn_PutConfirmButton (Gbl.Hierarchy.Degs.Num ? Txt_Create_another_degree :
|
||||
Txt_Create_degree);
|
||||
Frm_EndForm ();
|
||||
}
|
||||
|
@ -959,7 +959,7 @@ static void Deg_EditDegreesInternal (void)
|
|||
Deg_PutFormToCreateDegree ();
|
||||
|
||||
/***** Forms to edit current degrees *****/
|
||||
if (Gbl.Hierarchy.Ctr.Degs.Num)
|
||||
if (Gbl.Hierarchy.Degs.Num)
|
||||
Deg_ListDegreesForEdition ();
|
||||
}
|
||||
else // No degree types
|
||||
|
@ -979,7 +979,7 @@ static void Deg_EditDegreesInternal (void)
|
|||
DT_FreeListDegreeTypes ();
|
||||
|
||||
/***** Free list of degrees in the current centre *****/
|
||||
Deg_FreeListDegs (&Gbl.Hierarchy.Ctr.Degs);
|
||||
Deg_FreeListDegs (&Gbl.Hierarchy.Degs);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1080,19 +1080,19 @@ void Deg_GetListDegsInCurrentCtr (void)
|
|||
/***** Count number of rows in result *****/
|
||||
if (NumRows) // Degrees found...
|
||||
{
|
||||
Gbl.Hierarchy.Ctr.Degs.Num = (unsigned) NumRows;
|
||||
Gbl.Hierarchy.Degs.Num = (unsigned) NumRows;
|
||||
|
||||
/***** Create list with degrees of this centre *****/
|
||||
if ((Gbl.Hierarchy.Ctr.Degs.Lst = (struct Degree *) calloc (Gbl.Hierarchy.Ctr.Degs.Num,
|
||||
if ((Gbl.Hierarchy.Degs.Lst = (struct Degree *) calloc (Gbl.Hierarchy.Degs.Num,
|
||||
sizeof (struct Degree))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
/***** Get the degrees of this centre *****/
|
||||
for (NumDeg = 0;
|
||||
NumDeg < Gbl.Hierarchy.Ctr.Degs.Num;
|
||||
NumDeg < Gbl.Hierarchy.Degs.Num;
|
||||
NumDeg++)
|
||||
{
|
||||
Deg = &Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg];
|
||||
Deg = &Gbl.Hierarchy.Degs.Lst[NumDeg];
|
||||
|
||||
/* Get next degree */
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
@ -1100,7 +1100,7 @@ void Deg_GetListDegsInCurrentCtr (void)
|
|||
}
|
||||
}
|
||||
else
|
||||
Gbl.Hierarchy.Ctr.Degs.Num = 0;
|
||||
Gbl.Hierarchy.Degs.Num = 0;
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
|
@ -1294,8 +1294,6 @@ bool Deg_GetDataOfDegreeByCod (struct Degree *Deg)
|
|||
Deg->ShrtName[0] = '\0';
|
||||
Deg->FullName[0] = '\0';
|
||||
Deg->WWW[0] = '\0';
|
||||
Deg->Crss.Num = 0;
|
||||
Deg->Crss.Lst = NULL;
|
||||
|
||||
/***** Check if degree code is correct *****/
|
||||
if (Deg->DegCod > 0)
|
||||
|
@ -2061,8 +2059,6 @@ static void Deg_EditingDegreeConstructor (void)
|
|||
Deg_EditingDeg->ShrtName[0] = '\0';
|
||||
Deg_EditingDeg->FullName[0] = '\0';
|
||||
Deg_EditingDeg->WWW[0] = '\0';
|
||||
Deg_EditingDeg->Crss.Num = 0;
|
||||
Deg_EditingDeg->Crss.Lst = NULL;
|
||||
}
|
||||
|
||||
static void Deg_EditingDegreeDestructor (void)
|
||||
|
|
|
@ -76,11 +76,6 @@ struct Degree
|
|||
char ShrtName[Hie_MAX_BYTES_SHRT_NAME + 1]; // Short name of degree
|
||||
char FullName[Hie_MAX_BYTES_FULL_NAME + 1]; // Full name of degree
|
||||
char WWW[Cns_MAX_BYTES_WWW + 1];
|
||||
struct
|
||||
{
|
||||
unsigned Num; // Number of courses in this degree
|
||||
struct Course *Lst; // List of courses in this degree
|
||||
} Crss;
|
||||
};
|
||||
|
||||
struct ListDegrees
|
||||
|
|
|
@ -231,11 +231,11 @@ static void DegCfg_Centre (bool PrintView,bool PutForm)
|
|||
"id=\"OthCtrCod\" name=\"OthCtrCod\""
|
||||
" class=\"INPUT_SHORT_NAME\"");
|
||||
for (NumCtr = 0;
|
||||
NumCtr < Gbl.Hierarchy.Ins.Ctrs.Num;
|
||||
NumCtr < Gbl.Hierarchy.Ctrs.Num;
|
||||
NumCtr++)
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].CtrCod,
|
||||
Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].CtrCod == Gbl.Hierarchy.Ctr.CtrCod,false,
|
||||
"%s",Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].ShrtName);
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctrs.Lst[NumCtr].CtrCod,
|
||||
Gbl.Hierarchy.Ctrs.Lst[NumCtr].CtrCod == Gbl.Hierarchy.Ctr.CtrCod,false,
|
||||
"%s",Gbl.Hierarchy.Ctrs.Lst[NumCtr].ShrtName);
|
||||
HTM_SELECT_End ();
|
||||
Frm_EndForm ();
|
||||
|
||||
|
|
|
@ -541,11 +541,11 @@ static void Dpt_ListDepartmentsForEdition (void)
|
|||
HTM_OPTION (HTM_Type_STRING,"0",Dpt->InsCod == 0,false,
|
||||
"%s",Txt_Another_institution);
|
||||
for (NumIns = 0;
|
||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
||||
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||
NumIns++)
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod,
|
||||
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod == Dpt->InsCod,false,
|
||||
"%s",Gbl.Hierarchy.Cty.Inss.Lst[NumIns].ShrtName);
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Inss.Lst[NumIns].InsCod,
|
||||
Gbl.Hierarchy.Inss.Lst[NumIns].InsCod == Dpt->InsCod,false,
|
||||
"%s",Gbl.Hierarchy.Inss.Lst[NumIns].ShrtName);
|
||||
HTM_SELECT_End ();
|
||||
Frm_EndForm ();
|
||||
HTM_TD_End ();
|
||||
|
@ -910,11 +910,11 @@ static void Dpt_PutFormToCreateDepartment (void)
|
|||
HTM_OPTION (HTM_Type_STRING,"0",Dpt_EditingDpt->InsCod == 0,false,
|
||||
"%s",Txt_Another_institution);
|
||||
for (NumIns = 0;
|
||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
||||
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||
NumIns++)
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod,
|
||||
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod == Dpt_EditingDpt->InsCod,false,
|
||||
"%s",Gbl.Hierarchy.Cty.Inss.Lst[NumIns].ShrtName);
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Inss.Lst[NumIns].InsCod,
|
||||
Gbl.Hierarchy.Inss.Lst[NumIns].InsCod == Dpt_EditingDpt->InsCod,false,
|
||||
"%s",Gbl.Hierarchy.Inss.Lst[NumIns].ShrtName);
|
||||
HTM_SELECT_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
/********************************** Headers **********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#include "swad_course.h"
|
||||
#include "swad_notification.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include <linux/limits.h> // For PATH_MAX
|
||||
|
||||
#include "swad_course.h"
|
||||
#include "swad_group.h"
|
||||
#include "swad_notification.h"
|
||||
|
||||
|
|
|
@ -217,29 +217,33 @@ void Gbl_InitializeGlobals (void)
|
|||
/***** Reset current hierarchy *****/
|
||||
Hie_ResetHierarchy ();
|
||||
|
||||
Gbl.Hierarchy.Sys.Ctys.Num = 0;
|
||||
Gbl.Hierarchy.Sys.Ctys.Lst = NULL;
|
||||
Gbl.Hierarchy.Sys.Ctys.SelectedOrder = Cty_ORDER_DEFAULT;
|
||||
Gbl.Hierarchy.Ctys.Num = 0;
|
||||
Gbl.Hierarchy.Ctys.Lst = NULL;
|
||||
Gbl.Hierarchy.Ctys.SelectedOrder = Cty_ORDER_DEFAULT;
|
||||
|
||||
Gbl.Hierarchy.Cty.Inss.Num = 0;
|
||||
Gbl.Hierarchy.Cty.Inss.Lst = NULL;
|
||||
Gbl.Hierarchy.Cty.Inss.SelectedOrder = Ins_ORDER_DEFAULT;
|
||||
Gbl.Hierarchy.Inss.Num = 0;
|
||||
Gbl.Hierarchy.Inss.Lst = NULL;
|
||||
Gbl.Hierarchy.Inss.SelectedOrder = Ins_ORDER_DEFAULT;
|
||||
|
||||
Gbl.Hierarchy.Ins.ShrtName[0] = '\0';
|
||||
Gbl.Hierarchy.Ins.FullName[0] = '\0';
|
||||
Gbl.Hierarchy.Ins.WWW[0] = '\0';
|
||||
Gbl.Hierarchy.Ins.Ctrs.Num = 0;
|
||||
Gbl.Hierarchy.Ins.Ctrs.Lst = NULL;
|
||||
Gbl.Hierarchy.Ins.Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
||||
|
||||
Gbl.Hierarchy.Ctrs.Num = 0;
|
||||
Gbl.Hierarchy.Ctrs.Lst = NULL;
|
||||
Gbl.Hierarchy.Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
||||
|
||||
Gbl.Hierarchy.Ctr.ShrtName[0] = '\0';
|
||||
Gbl.Hierarchy.Ctr.FullName[0] = '\0';
|
||||
Gbl.Hierarchy.Ctr.Degs.Num = 0;
|
||||
Gbl.Hierarchy.Ctr.Degs.Lst = NULL;
|
||||
|
||||
Gbl.Hierarchy.Deg.ShrtName[0] = Gbl.Hierarchy.Deg.FullName[0] = '\0';
|
||||
Gbl.Hierarchy.Degs.Num = 0;
|
||||
Gbl.Hierarchy.Degs.Lst = NULL;
|
||||
|
||||
Gbl.Hierarchy.Crs.ShrtName[0] = Gbl.Hierarchy.Crs.FullName[0] = '\0';
|
||||
Gbl.Hierarchy.Deg.ShrtName[0] =
|
||||
Gbl.Hierarchy.Deg.FullName[0] = '\0';
|
||||
|
||||
Gbl.Hierarchy.Crs.ShrtName[0] =
|
||||
Gbl.Hierarchy.Crs.FullName[0] = '\0';
|
||||
|
||||
Gbl.Dpts.Num = 0;
|
||||
Gbl.Dpts.Lst = NULL;
|
||||
|
@ -469,7 +473,7 @@ void Gbl_Cleanup (void)
|
|||
Grp_FreeListGrpTypesAndGrps ();
|
||||
Grp_FreeListCodSelectedGrps ();
|
||||
Crs_FreeListCoursesInCurrentDegree ();
|
||||
Deg_FreeListDegs (&Gbl.Hierarchy.Ctr.Degs);
|
||||
Deg_FreeListDegs (&Gbl.Hierarchy.Degs);
|
||||
DT_FreeListDegreeTypes ();
|
||||
Ins_FreeListInstitutions ();
|
||||
Ctr_FreeListCentres ();
|
||||
|
|
|
@ -77,7 +77,6 @@
|
|||
#include "swad_session.h"
|
||||
#include "swad_survey.h"
|
||||
#include "swad_syllabus.h"
|
||||
#include "swad_system.h"
|
||||
#include "swad_test.h"
|
||||
#include "swad_timeline.h"
|
||||
#include "swad_timetable.h"
|
||||
|
@ -213,11 +212,15 @@ struct Globals
|
|||
{
|
||||
Hie_Level_t Level; // Current level in the hierarchy: system, country, institution, centre, degree or course
|
||||
long Cod; // Code of the current country, institution, centre, degree or course
|
||||
struct System Sys; // Top level of the hierarchy (system or platform)
|
||||
struct ListCountries Ctys;// List of countries
|
||||
struct Country Cty; // Current country
|
||||
struct ListInstits Inss; // List of institutions in current country
|
||||
struct Instit Ins; // Current institution
|
||||
struct ListCentres Ctrs; // List of centres in current institution
|
||||
struct Centre Ctr; // Current centre
|
||||
struct ListDegrees Degs; // List of degrees in current centre
|
||||
struct Degree Deg; // Current degree
|
||||
struct ListCourses Crss; // List of courses in current degree
|
||||
struct Course Crs; // Current course. Aditional info about course is stored in Gbl.Crs.
|
||||
} Hierarchy;
|
||||
struct
|
||||
|
|
|
@ -300,7 +300,7 @@ static void Ins_ListInstitutions (void)
|
|||
Hlp_COUNTRY_Institutions,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
|
||||
if (Gbl.Hierarchy.Cty.Inss.Num) // There are institutions in the current country
|
||||
if (Gbl.Hierarchy.Inss.Num) // There are institutions in the current country
|
||||
{
|
||||
/***** Begin table *****/
|
||||
HTM_TABLE_BeginWideMarginPadding (2);
|
||||
|
@ -308,9 +308,9 @@ static void Ins_ListInstitutions (void)
|
|||
|
||||
/***** Write all the institutions and their nuber of users *****/
|
||||
for (NumIns = 0;
|
||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
||||
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||
NumIns++)
|
||||
Ins_ListOneInstitutionForSeeing (&(Gbl.Hierarchy.Cty.Inss.Lst[NumIns]),NumIns + 1);
|
||||
Ins_ListOneInstitutionForSeeing (&(Gbl.Hierarchy.Inss.Lst[NumIns]),NumIns + 1);
|
||||
|
||||
/***** End table *****/
|
||||
HTM_TABLE_End ();
|
||||
|
@ -322,7 +322,7 @@ static void Ins_ListInstitutions (void)
|
|||
if (Ins_CheckIfICanCreateInstitutions ())
|
||||
{
|
||||
Frm_StartForm (ActEdiIns);
|
||||
Btn_PutConfirmButton (Gbl.Hierarchy.Cty.Inss.Num ? Txt_Create_another_institution :
|
||||
Btn_PutConfirmButton (Gbl.Hierarchy.Inss.Num ? Txt_Create_another_institution :
|
||||
Txt_Create_institution);
|
||||
Frm_EndForm ();
|
||||
}
|
||||
|
@ -481,13 +481,13 @@ static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable)
|
|||
Frm_StartForm (ActSeeIns);
|
||||
Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order);
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_INSTITUTIONS_HELP_ORDER[Order],ClassButton[Order],NULL);
|
||||
if (Order == Gbl.Hierarchy.Cty.Inss.SelectedOrder)
|
||||
if (Order == Gbl.Hierarchy.Inss.SelectedOrder)
|
||||
HTM_U_Begin ();
|
||||
}
|
||||
HTM_Txt (Txt_INSTITUTIONS_ORDER[Order]);
|
||||
if (OrderSelectable)
|
||||
{
|
||||
if (Order == Gbl.Hierarchy.Cty.Inss.SelectedOrder)
|
||||
if (Order == Gbl.Hierarchy.Inss.SelectedOrder)
|
||||
HTM_U_End ();
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
@ -515,11 +515,11 @@ static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable)
|
|||
|
||||
static void Ins_GetParamInsOrder (void)
|
||||
{
|
||||
Gbl.Hierarchy.Cty.Inss.SelectedOrder = (Ins_Order_t)
|
||||
Par_GetParToUnsignedLong ("Order",
|
||||
0,
|
||||
Ins_NUM_ORDERS - 1,
|
||||
(unsigned long) Ins_ORDER_DEFAULT);
|
||||
Gbl.Hierarchy.Inss.SelectedOrder = (Ins_Order_t)
|
||||
Par_GetParToUnsignedLong ("Order",
|
||||
0,
|
||||
Ins_NUM_ORDERS - 1,
|
||||
(unsigned long) Ins_ORDER_DEFAULT);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -560,7 +560,7 @@ static void Ins_EditInstitutionsInternal (void)
|
|||
Ins_PutFormToCreateInstitution ();
|
||||
|
||||
/***** Forms to edit current institutions *****/
|
||||
if (Gbl.Hierarchy.Cty.Inss.Num)
|
||||
if (Gbl.Hierarchy.Inss.Num)
|
||||
Ins_ListInstitutionsForEdition ();
|
||||
|
||||
/***** End box *****/
|
||||
|
@ -626,19 +626,19 @@ void Ins_GetBasicListOfInstitutions (long CtyCod)
|
|||
if (NumRows) // Institutions found...
|
||||
{
|
||||
// NumRows should be equal to Deg->NumCourses
|
||||
Gbl.Hierarchy.Cty.Inss.Num = (unsigned) NumRows;
|
||||
Gbl.Hierarchy.Inss.Num = (unsigned) NumRows;
|
||||
|
||||
/***** Create list with institutions *****/
|
||||
if ((Gbl.Hierarchy.Cty.Inss.Lst = (struct Instit *)
|
||||
if ((Gbl.Hierarchy.Inss.Lst = (struct Instit *)
|
||||
calloc (NumRows,sizeof (struct Instit))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
/***** Get the institutions *****/
|
||||
for (NumIns = 0;
|
||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
||||
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||
NumIns++)
|
||||
{
|
||||
Ins = &(Gbl.Hierarchy.Cty.Inss.Lst[NumIns]);
|
||||
Ins = &(Gbl.Hierarchy.Inss.Lst[NumIns]);
|
||||
|
||||
/* Get institution data */
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
@ -646,17 +646,12 @@ void Ins_GetBasicListOfInstitutions (long CtyCod)
|
|||
|
||||
/* Reset number of users who claim to belong to this institution */
|
||||
Ins->NumUsrsWhoClaimToBelongToIns.Valid = false;
|
||||
|
||||
/* Reset other fields */
|
||||
Ins->Ctrs.Num = 0;
|
||||
Ins->Ctrs.Lst = NULL;
|
||||
Ins->Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Gbl.Hierarchy.Cty.Inss.Num = 0;
|
||||
Gbl.Hierarchy.Cty.Inss.Lst = NULL;
|
||||
Gbl.Hierarchy.Inss.Num = 0;
|
||||
Gbl.Hierarchy.Inss.Lst = NULL;
|
||||
}
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
|
@ -710,24 +705,24 @@ void Ins_GetFullListOfInstitutions (long CtyCod)
|
|||
" AND InsCod NOT IN"
|
||||
" (SELECT DISTINCT InsCod FROM usr_data))"
|
||||
" ORDER BY %s",
|
||||
CtyCod,CtyCod,OrderBySubQuery[Gbl.Hierarchy.Cty.Inss.SelectedOrder]);
|
||||
CtyCod,CtyCod,OrderBySubQuery[Gbl.Hierarchy.Inss.SelectedOrder]);
|
||||
|
||||
if (NumRows) // Institutions found...
|
||||
{
|
||||
// NumRows should be equal to Deg->NumCourses
|
||||
Gbl.Hierarchy.Cty.Inss.Num = (unsigned) NumRows;
|
||||
Gbl.Hierarchy.Inss.Num = (unsigned) NumRows;
|
||||
|
||||
/***** Create list with institutions *****/
|
||||
if ((Gbl.Hierarchy.Cty.Inss.Lst = (struct Instit *)
|
||||
if ((Gbl.Hierarchy.Inss.Lst = (struct Instit *)
|
||||
calloc (NumRows,sizeof (struct Instit))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
/***** Get the institutions *****/
|
||||
for (NumIns = 0;
|
||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
||||
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||
NumIns++)
|
||||
{
|
||||
Ins = &(Gbl.Hierarchy.Cty.Inss.Lst[NumIns]);
|
||||
Ins = &(Gbl.Hierarchy.Inss.Lst[NumIns]);
|
||||
|
||||
/* Get institution data */
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
@ -737,17 +732,12 @@ void Ins_GetFullListOfInstitutions (long CtyCod)
|
|||
Ins->NumUsrsWhoClaimToBelongToIns.Valid = false;
|
||||
if (sscanf (row[7],"%u",&(Ins->NumUsrsWhoClaimToBelongToIns.NumUsrs)) == 1)
|
||||
Ins->NumUsrsWhoClaimToBelongToIns.Valid = true;
|
||||
|
||||
/* Reset other fields */
|
||||
Ins->Ctrs.Num = 0;
|
||||
Ins->Ctrs.Lst = NULL;
|
||||
Ins->Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Gbl.Hierarchy.Cty.Inss.Num = 0;
|
||||
Gbl.Hierarchy.Cty.Inss.Lst = NULL;
|
||||
Gbl.Hierarchy.Inss.Num = 0;
|
||||
Gbl.Hierarchy.Inss.Lst = NULL;
|
||||
}
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
|
@ -789,9 +779,6 @@ bool Ins_GetDataOfInstitutionByCod (struct Instit *Ins)
|
|||
Ins->ShrtName[0] =
|
||||
Ins->FullName[0] =
|
||||
Ins->WWW[0] = '\0';
|
||||
Ins->Ctrs.Num = 0;
|
||||
Ins->Ctrs.Lst = NULL;
|
||||
Ins->Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
||||
Ins->NumUsrsWhoClaimToBelongToIns.Valid = false;
|
||||
|
||||
/***** Check if institution code is correct *****/
|
||||
|
@ -991,12 +978,12 @@ static void Ins_GetShrtNameAndCtyOfInstitution (struct Instit *Ins,
|
|||
|
||||
void Ins_FreeListInstitutions (void)
|
||||
{
|
||||
if (Gbl.Hierarchy.Cty.Inss.Lst)
|
||||
if (Gbl.Hierarchy.Inss.Lst)
|
||||
{
|
||||
/***** Free memory used by the list of institutions *****/
|
||||
free (Gbl.Hierarchy.Cty.Inss.Lst);
|
||||
Gbl.Hierarchy.Cty.Inss.Num = 0;
|
||||
Gbl.Hierarchy.Cty.Inss.Lst = NULL;
|
||||
free (Gbl.Hierarchy.Inss.Lst);
|
||||
Gbl.Hierarchy.Inss.Num = 0;
|
||||
Gbl.Hierarchy.Inss.Lst = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1092,10 +1079,10 @@ static void Ins_ListInstitutionsForEdition (void)
|
|||
|
||||
/***** Write all the institutions *****/
|
||||
for (NumIns = 0;
|
||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
||||
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||
NumIns++)
|
||||
{
|
||||
Ins = &Gbl.Hierarchy.Cty.Inss.Lst[NumIns];
|
||||
Ins = &Gbl.Hierarchy.Inss.Lst[NumIns];
|
||||
|
||||
ICanEdit = Ins_CheckIfICanEdit (Ins);
|
||||
NumCtrss = Ctr_GetNumCtrsInIns (Ins->InsCod);
|
||||
|
@ -2092,9 +2079,6 @@ static void Ins_EditingInstitutionConstructor (void)
|
|||
Ins_EditingIns->ShrtName[0] = '\0';
|
||||
Ins_EditingIns->FullName[0] = '\0';
|
||||
Ins_EditingIns->WWW[0] = '\0';
|
||||
Ins_EditingIns->Ctrs.Num = 0;
|
||||
Ins_EditingIns->Ctrs.Lst = NULL;
|
||||
Ins_EditingIns->Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
||||
}
|
||||
|
||||
static void Ins_EditingInstitutionDestructor (void)
|
||||
|
|
|
@ -65,12 +65,6 @@ struct Instit
|
|||
char ShrtName[Hie_MAX_BYTES_SHRT_NAME + 1];
|
||||
char FullName[Hie_MAX_BYTES_FULL_NAME + 1];
|
||||
char WWW[Cns_MAX_BYTES_WWW + 1];
|
||||
struct
|
||||
{
|
||||
unsigned Num; // Number of centres
|
||||
struct Centre *Lst; // List of centres
|
||||
Ctr_Order_t SelectedOrder;
|
||||
} Ctrs;
|
||||
struct
|
||||
{
|
||||
bool Valid;
|
||||
|
@ -86,6 +80,13 @@ typedef enum
|
|||
} Ins_Order_t;
|
||||
#define Ins_ORDER_DEFAULT Ins_ORDER_BY_NUM_USRS
|
||||
|
||||
struct ListInstits
|
||||
{
|
||||
unsigned Num; // Number of institutions
|
||||
struct Instit *Lst; // List of institutions
|
||||
Ins_Order_t SelectedOrder; // Order of institutions
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -384,11 +384,11 @@ static void InsCfg_Country (bool PrintView,bool PutForm)
|
|||
"id=\"OthCtyCod\" name=\"OthCtyCod\""
|
||||
" class=\"INPUT_SHORT_NAME\"");
|
||||
for (NumCty = 0;
|
||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
||||
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||
NumCty++)
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod,
|
||||
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod == Gbl.Hierarchy.Cty.CtyCod,false,
|
||||
"%s",Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod,
|
||||
Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod == Gbl.Hierarchy.Cty.CtyCod,false,
|
||||
"%s",Gbl.Hierarchy.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
|
||||
HTM_SELECT_End ();
|
||||
Frm_EndForm ();
|
||||
|
||||
|
|
|
@ -3216,7 +3216,7 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,bool PutForm)
|
|||
unsigned NumCty;
|
||||
|
||||
/***** If list of countries is empty, try to get it *****/
|
||||
if (!Gbl.Hierarchy.Sys.Ctys.Num)
|
||||
if (!Gbl.Hierarchy.Ctys.Num)
|
||||
Cty_GetBasicListOfCountries ();
|
||||
|
||||
/***** Selector of country *****/
|
||||
|
@ -3242,11 +3242,11 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,bool PutForm)
|
|||
HTM_OPTION (HTM_Type_STRING,"0",UsrDat->CtyCod == 0,false,
|
||||
"%s",Txt_Another_country);
|
||||
for (NumCty = 0;
|
||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
||||
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||
NumCty++)
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod,
|
||||
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod == UsrDat->CtyCod,false,
|
||||
"%s",Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod,
|
||||
Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod == UsrDat->CtyCod,false,
|
||||
"%s",Gbl.Hierarchy.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
|
||||
HTM_SELECT_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -3951,7 +3951,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
|
|||
HTM_TD_Begin ("class=\"REC_C2_BOT LM\"");
|
||||
|
||||
/* If list of countries is empty, try to get it */
|
||||
if (!Gbl.Hierarchy.Sys.Ctys.Num)
|
||||
if (!Gbl.Hierarchy.Ctys.Num)
|
||||
Cty_GetBasicListOfCountries ();
|
||||
|
||||
/* Begin form to select the country of my institution */
|
||||
|
@ -3963,11 +3963,11 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
|
|||
Gbl.Usrs.Me.UsrDat.InsCtyCod <= 0,true,
|
||||
NULL);
|
||||
for (NumCty = 0;
|
||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
||||
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||
NumCty++)
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod,
|
||||
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod == Gbl.Usrs.Me.UsrDat.InsCtyCod,false,
|
||||
"%s",Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod,
|
||||
Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod == Gbl.Usrs.Me.UsrDat.InsCtyCod,false,
|
||||
"%s",Gbl.Hierarchy.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
|
||||
HTM_SELECT_End ();
|
||||
Frm_EndForm ();
|
||||
HTM_TD_End ();
|
||||
|
@ -4002,11 +4002,11 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
|
|||
Gbl.Usrs.Me.UsrDat.InsCod == 0,false,
|
||||
"%s",Txt_Another_institution);
|
||||
for (NumIns = 0;
|
||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
||||
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||
NumIns++)
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod,
|
||||
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod == Gbl.Usrs.Me.UsrDat.InsCod,false,
|
||||
"%s",Gbl.Hierarchy.Cty.Inss.Lst[NumIns].FullName);
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Inss.Lst[NumIns].InsCod,
|
||||
Gbl.Hierarchy.Inss.Lst[NumIns].InsCod == Gbl.Usrs.Me.UsrDat.InsCod,false,
|
||||
"%s",Gbl.Hierarchy.Inss.Lst[NumIns].FullName);
|
||||
HTM_SELECT_End ();
|
||||
Frm_EndForm ();
|
||||
HTM_TD_End ();
|
||||
|
@ -4043,11 +4043,11 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
|
|||
Gbl.Usrs.Me.UsrDat.Tch.CtrCod == 0,false,
|
||||
Txt_Another_centre);
|
||||
for (NumCtr = 0;
|
||||
NumCtr < Gbl.Hierarchy.Ins.Ctrs.Num;
|
||||
NumCtr < Gbl.Hierarchy.Ctrs.Num;
|
||||
NumCtr++)
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].CtrCod,
|
||||
Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].CtrCod == Gbl.Usrs.Me.UsrDat.Tch.CtrCod,false,
|
||||
Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].FullName);
|
||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctrs.Lst[NumCtr].CtrCod,
|
||||
Gbl.Hierarchy.Ctrs.Lst[NumCtr].CtrCod == Gbl.Usrs.Me.UsrDat.Tch.CtrCod,false,
|
||||
Gbl.Hierarchy.Ctrs.Lst[NumCtr].FullName);
|
||||
HTM_SELECT_End ();
|
||||
Frm_EndForm ();
|
||||
HTM_TD_End ();
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
// swad_system.h: top level of the hierarchy (system > countries > institutions > centres > degrees > courses)
|
||||
|
||||
#ifndef _SWAD_SYS
|
||||
#define _SWAD_SYS
|
||||
/*
|
||||
SWAD (Shared Workspace At a Distance in Spanish),
|
||||
is a web platform developed at the University of Granada (Spain),
|
||||
and used to support university teaching.
|
||||
|
||||
This file is part of SWAD core.
|
||||
Copyright (C) 1999-2020 Antonio Cañas Vargas
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*****************************************************************************/
|
||||
/********************************* Headers ***********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************** Public types and constants ***********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
struct System
|
||||
{
|
||||
struct
|
||||
{
|
||||
unsigned Num; // Number of countries
|
||||
struct Country *Lst; // List of countries
|
||||
Cty_Order_t SelectedOrder;
|
||||
} Ctys;
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#endif
|
1216
swad_text_action.c
1216
swad_text_action.c
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue