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 **************************/
|
/************************* 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
|
#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" },
|
[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" },
|
[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" },
|
[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:
|
// 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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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},
|
[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
|
ActLstStdAll, // #42
|
||||||
-1, // #43 (obsolete action)
|
-1, // #43 (obsolete action)
|
||||||
ActEdiSylLec, // #44
|
ActEdiSylLec, // #44
|
||||||
ActEdiCrsTT, // #45
|
ActEdiCrsTT, // #45
|
||||||
-1, // #46 (obsolete action)
|
-1, // #46 (obsolete action)
|
||||||
-1, // #47 (obsolete action)
|
-1, // #47 (obsolete action)
|
||||||
ActChgTut, // #48
|
ActChgTut, // #48
|
||||||
|
@ -2420,7 +1762,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
||||||
-1, // #50 (obsolete action)
|
-1, // #50 (obsolete action)
|
||||||
ActSeeChtRms, // #51
|
ActSeeChtRms, // #51
|
||||||
ActCht, // #52
|
ActCht, // #52
|
||||||
ActChgCrsTT, // #53
|
ActChgCrsTT, // #53
|
||||||
ActSeeFAQ, // #54
|
ActSeeFAQ, // #54
|
||||||
-1, // #55 (obsolete action)
|
-1, // #55 (obsolete action)
|
||||||
-1, // #56 (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, // #82 (obsolete action)
|
||||||
-1, // #83 (obsolete action)
|
-1, // #83 (obsolete action)
|
||||||
ActSeeUseGbl, // #84
|
ActSeeUseGbl, // #84
|
||||||
ActSeeAllExaAnn, // #85
|
ActSeeAllExaAnn, // #85
|
||||||
-1, // #86 (obsolete action)
|
-1, // #86 (obsolete action)
|
||||||
ActRemAllStdCrs, // #87
|
ActRemAllStdCrs, // #87
|
||||||
ActReqRemAllStdCrs, // #88
|
ActReqRemAllStdCrs, // #88
|
||||||
|
@ -2519,7 +1861,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
||||||
-1, // #149 (obsolete action)
|
-1, // #149 (obsolete action)
|
||||||
ActFrmCreWrkUsr, // #150
|
ActFrmCreWrkUsr, // #150
|
||||||
-1, // #151 (obsolete action)
|
-1, // #151 (obsolete action)
|
||||||
ActPrnCrsTT, // #152
|
ActPrnCrsTT, // #152
|
||||||
ActRcvFilBrfCla, // #153
|
ActRcvFilBrfCla, // #153
|
||||||
-1, // #154 (obsolete action)
|
-1, // #154 (obsolete action)
|
||||||
ActRemFilBrf, // #155
|
ActRemFilBrf, // #155
|
||||||
|
|
|
@ -271,7 +271,7 @@ static void Ctr_ListCentres (void)
|
||||||
Hlp_INSTITUTION_Centres,Box_NOT_CLOSABLE);
|
Hlp_INSTITUTION_Centres,Box_NOT_CLOSABLE);
|
||||||
Str_FreeString ();
|
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 *****/
|
/***** Begin table *****/
|
||||||
HTM_TABLE_BeginWideMarginPadding (2);
|
HTM_TABLE_BeginWideMarginPadding (2);
|
||||||
|
@ -279,9 +279,9 @@ static void Ctr_ListCentres (void)
|
||||||
|
|
||||||
/***** Write all the centres and their nuber of teachers *****/
|
/***** Write all the centres and their nuber of teachers *****/
|
||||||
for (NumCtr = 0;
|
for (NumCtr = 0;
|
||||||
NumCtr < Gbl.Hierarchy.Ins.Ctrs.Num;
|
NumCtr < Gbl.Hierarchy.Ctrs.Num;
|
||||||
NumCtr++)
|
NumCtr++)
|
||||||
Ctr_ListOneCentreForSeeing (&(Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr]),NumCtr + 1);
|
Ctr_ListOneCentreForSeeing (&(Gbl.Hierarchy.Ctrs.Lst[NumCtr]),NumCtr + 1);
|
||||||
|
|
||||||
/***** End table *****/
|
/***** End table *****/
|
||||||
HTM_TABLE_End ();
|
HTM_TABLE_End ();
|
||||||
|
@ -293,7 +293,7 @@ static void Ctr_ListCentres (void)
|
||||||
if (Ctr_CheckIfICanCreateCentres ())
|
if (Ctr_CheckIfICanCreateCentres ())
|
||||||
{
|
{
|
||||||
Frm_StartForm (ActEdiCtr);
|
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);
|
Txt_Create_centre);
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
}
|
}
|
||||||
|
@ -438,11 +438,11 @@ static void Ctr_ListOneCentreForSeeing (struct Centre *Ctr,unsigned NumCtr)
|
||||||
|
|
||||||
static void Ctr_GetParamCtrOrder (void)
|
static void Ctr_GetParamCtrOrder (void)
|
||||||
{
|
{
|
||||||
Gbl.Hierarchy.Ins.Ctrs.SelectedOrder = (Ctr_Order_t)
|
Gbl.Hierarchy.Ctrs.SelectedOrder = (Ctr_Order_t)
|
||||||
Par_GetParToUnsignedLong ("Order",
|
Par_GetParToUnsignedLong ("Order",
|
||||||
0,
|
0,
|
||||||
Ctr_NUM_ORDERS - 1,
|
Ctr_NUM_ORDERS - 1,
|
||||||
(unsigned long) Ctr_ORDER_DEFAULT);
|
(unsigned long) Ctr_ORDER_DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -471,7 +471,7 @@ static void Ctr_EditCentresInternal (void)
|
||||||
Plc_GetListPlaces ();
|
Plc_GetListPlaces ();
|
||||||
|
|
||||||
/***** Get list of centres *****/
|
/***** 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);
|
Ctr_GetFullListOfCentres (Gbl.Hierarchy.Ins.InsCod);
|
||||||
|
|
||||||
/***** Write menu to select country and institution *****/
|
/***** Write menu to select country and institution *****/
|
||||||
|
@ -488,7 +488,7 @@ static void Ctr_EditCentresInternal (void)
|
||||||
Ctr_PutFormToCreateCentre ();
|
Ctr_PutFormToCreateCentre ();
|
||||||
|
|
||||||
/***** List current centres *****/
|
/***** List current centres *****/
|
||||||
if (Gbl.Hierarchy.Ins.Ctrs.Num)
|
if (Gbl.Hierarchy.Ctrs.Num)
|
||||||
Ctr_ListCentresForEdition ();
|
Ctr_ListCentresForEdition ();
|
||||||
|
|
||||||
/***** End box *****/
|
/***** End box *****/
|
||||||
|
@ -560,19 +560,19 @@ void Ctr_GetBasicListOfCentres (long InsCod)
|
||||||
if (NumRows) // Centres found...
|
if (NumRows) // Centres found...
|
||||||
{
|
{
|
||||||
// NumRows should be equal to Deg->NumCourses
|
// 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 *****/
|
/***** 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)
|
sizeof (struct Centre))) == NULL)
|
||||||
Lay_NotEnoughMemoryExit ();
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
|
||||||
/***** Get the centres *****/
|
/***** Get the centres *****/
|
||||||
for (NumCtr = 0;
|
for (NumCtr = 0;
|
||||||
NumCtr < Gbl.Hierarchy.Ins.Ctrs.Num;
|
NumCtr < Gbl.Hierarchy.Ctrs.Num;
|
||||||
NumCtr++)
|
NumCtr++)
|
||||||
{
|
{
|
||||||
Ctr = &(Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr]);
|
Ctr = &(Gbl.Hierarchy.Ctrs.Lst[NumCtr]);
|
||||||
|
|
||||||
/* Get centre data */
|
/* Get centre data */
|
||||||
row = mysql_fetch_row (mysql_res);
|
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 */
|
/* Reset number of users who claim to belong to this centre */
|
||||||
Ctr->NumUsrsWhoClaimToBelongToCtr.Valid = false;
|
Ctr->NumUsrsWhoClaimToBelongToCtr.Valid = false;
|
||||||
|
|
||||||
/* Reset other fields */
|
|
||||||
Ctr->Degs.Num = 0;
|
|
||||||
Ctr->Degs.Lst = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Gbl.Hierarchy.Ins.Ctrs.Num = 0;
|
Gbl.Hierarchy.Ctrs.Num = 0;
|
||||||
|
|
||||||
/***** Free structure that stores the query result *****/
|
/***** Free structure that stores the query result *****/
|
||||||
DB_FreeMySQLResult (&mysql_res);
|
DB_FreeMySQLResult (&mysql_res);
|
||||||
|
@ -648,24 +644,24 @@ void Ctr_GetFullListOfCentres (long InsCod)
|
||||||
" (SELECT DISTINCT CtrCod FROM usr_data))"
|
" (SELECT DISTINCT CtrCod FROM usr_data))"
|
||||||
" ORDER BY %s",
|
" ORDER BY %s",
|
||||||
InsCod,InsCod,
|
InsCod,InsCod,
|
||||||
OrderBySubQuery[Gbl.Hierarchy.Ins.Ctrs.SelectedOrder]);
|
OrderBySubQuery[Gbl.Hierarchy.Ctrs.SelectedOrder]);
|
||||||
|
|
||||||
if (NumRows) // Centres found...
|
if (NumRows) // Centres found...
|
||||||
{
|
{
|
||||||
// NumRows should be equal to Deg->NumCourses
|
// 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 *****/
|
/***** 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)
|
sizeof (struct Centre))) == NULL)
|
||||||
Lay_NotEnoughMemoryExit ();
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
|
||||||
/***** Get the centres *****/
|
/***** Get the centres *****/
|
||||||
for (NumCtr = 0;
|
for (NumCtr = 0;
|
||||||
NumCtr < Gbl.Hierarchy.Ins.Ctrs.Num;
|
NumCtr < Gbl.Hierarchy.Ctrs.Num;
|
||||||
NumCtr++)
|
NumCtr++)
|
||||||
{
|
{
|
||||||
Ctr = &(Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr]);
|
Ctr = &(Gbl.Hierarchy.Ctrs.Lst[NumCtr]);
|
||||||
|
|
||||||
/* Get centre data */
|
/* Get centre data */
|
||||||
row = mysql_fetch_row (mysql_res);
|
row = mysql_fetch_row (mysql_res);
|
||||||
|
@ -675,14 +671,10 @@ void Ctr_GetFullListOfCentres (long InsCod)
|
||||||
Ctr->NumUsrsWhoClaimToBelongToCtr.Valid = false;
|
Ctr->NumUsrsWhoClaimToBelongToCtr.Valid = false;
|
||||||
if (sscanf (row[11],"%u",&(Ctr->NumUsrsWhoClaimToBelongToCtr.NumUsrs)) == 1)
|
if (sscanf (row[11],"%u",&(Ctr->NumUsrsWhoClaimToBelongToCtr.NumUsrs)) == 1)
|
||||||
Ctr->NumUsrsWhoClaimToBelongToCtr.Valid = true;
|
Ctr->NumUsrsWhoClaimToBelongToCtr.Valid = true;
|
||||||
|
|
||||||
/* Reset other fields */
|
|
||||||
Ctr->Degs.Num = 0;
|
|
||||||
Ctr->Degs.Lst = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Gbl.Hierarchy.Ins.Ctrs.Num = 0;
|
Gbl.Hierarchy.Ctrs.Num = 0;
|
||||||
|
|
||||||
/***** Free structure that stores the query result *****/
|
/***** Free structure that stores the query result *****/
|
||||||
DB_FreeMySQLResult (&mysql_res);
|
DB_FreeMySQLResult (&mysql_res);
|
||||||
|
@ -707,8 +699,6 @@ bool Ctr_GetDataOfCentreByCod (struct Centre *Ctr)
|
||||||
Ctr->ShrtName[0] = '\0';
|
Ctr->ShrtName[0] = '\0';
|
||||||
Ctr->FullName[0] = '\0';
|
Ctr->FullName[0] = '\0';
|
||||||
Ctr->WWW[0] = '\0';
|
Ctr->WWW[0] = '\0';
|
||||||
Ctr->Degs.Num = 0;
|
|
||||||
Ctr->Degs.Lst = NULL;
|
|
||||||
Ctr->NumUsrsWhoClaimToBelongToCtr.Valid = false;
|
Ctr->NumUsrsWhoClaimToBelongToCtr.Valid = false;
|
||||||
|
|
||||||
/***** Check if centre code is correct *****/
|
/***** Check if centre code is correct *****/
|
||||||
|
@ -857,12 +847,12 @@ void Ctr_GetShortNameOfCentreByCod (struct Centre *Ctr)
|
||||||
|
|
||||||
void Ctr_FreeListCentres (void)
|
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 memory used by the list of courses in degree *****/
|
||||||
free (Gbl.Hierarchy.Ins.Ctrs.Lst);
|
free (Gbl.Hierarchy.Ctrs.Lst);
|
||||||
Gbl.Hierarchy.Ins.Ctrs.Lst = NULL;
|
Gbl.Hierarchy.Ctrs.Lst = NULL;
|
||||||
Gbl.Hierarchy.Ins.Ctrs.Num = 0;
|
Gbl.Hierarchy.Ctrs.Num = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -958,10 +948,10 @@ static void Ctr_ListCentresForEdition (void)
|
||||||
|
|
||||||
/***** Write all the centres *****/
|
/***** Write all the centres *****/
|
||||||
for (NumCtr = 0;
|
for (NumCtr = 0;
|
||||||
NumCtr < Gbl.Hierarchy.Ins.Ctrs.Num;
|
NumCtr < Gbl.Hierarchy.Ctrs.Num;
|
||||||
NumCtr++)
|
NumCtr++)
|
||||||
{
|
{
|
||||||
Ctr = &Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr];
|
Ctr = &Gbl.Hierarchy.Ctrs.Lst[NumCtr];
|
||||||
|
|
||||||
ICanEdit = Ctr_CheckIfICanEditACentre (Ctr);
|
ICanEdit = Ctr_CheckIfICanEditACentre (Ctr);
|
||||||
NumUsrsInCrssOfCtr = Usr_GetNumUsrsInCrssOfCtr (Rol_UNK,Ctr->CtrCod); // Here Rol_UNK means "all users"
|
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" :
|
Order == Ctr_ORDER_BY_CENTRE ? "BT_LINK LM TIT_TBL" :
|
||||||
"BT_LINK RM TIT_TBL",
|
"BT_LINK RM TIT_TBL",
|
||||||
NULL);
|
NULL);
|
||||||
if (Order == Gbl.Hierarchy.Ins.Ctrs.SelectedOrder)
|
if (Order == Gbl.Hierarchy.Ctrs.SelectedOrder)
|
||||||
HTM_U_Begin ();
|
HTM_U_Begin ();
|
||||||
}
|
}
|
||||||
HTM_Txt (Txt_CENTRES_ORDER[Order]);
|
HTM_Txt (Txt_CENTRES_ORDER[Order]);
|
||||||
if (OrderSelectable)
|
if (OrderSelectable)
|
||||||
{
|
{
|
||||||
if (Order == Gbl.Hierarchy.Ins.Ctrs.SelectedOrder)
|
if (Order == Gbl.Hierarchy.Ctrs.SelectedOrder)
|
||||||
HTM_U_End ();
|
HTM_U_End ();
|
||||||
HTM_BUTTON_End ();
|
HTM_BUTTON_End ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
|
@ -2122,8 +2112,6 @@ static void Ctr_EditingCentreConstructor (void)
|
||||||
Ctr_EditingCtr->ShrtName[0] = '\0';
|
Ctr_EditingCtr->ShrtName[0] = '\0';
|
||||||
Ctr_EditingCtr->FullName[0] = '\0';
|
Ctr_EditingCtr->FullName[0] = '\0';
|
||||||
Ctr_EditingCtr->WWW[0] = '\0';
|
Ctr_EditingCtr->WWW[0] = '\0';
|
||||||
Ctr_EditingCtr->Degs.Num = 0;
|
|
||||||
Ctr_EditingCtr->Degs.Lst = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Ctr_EditingCentreDestructor (void)
|
static void Ctr_EditingCentreDestructor (void)
|
||||||
|
|
|
@ -71,7 +71,6 @@ struct Centre
|
||||||
char ShrtName[Hie_MAX_BYTES_SHRT_NAME + 1];
|
char ShrtName[Hie_MAX_BYTES_SHRT_NAME + 1];
|
||||||
char FullName[Hie_MAX_BYTES_FULL_NAME + 1];
|
char FullName[Hie_MAX_BYTES_FULL_NAME + 1];
|
||||||
char WWW[Cns_MAX_BYTES_WWW + 1];
|
char WWW[Cns_MAX_BYTES_WWW + 1];
|
||||||
struct ListDegrees Degs; // List of degrees in this centre
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
bool Valid;
|
bool Valid;
|
||||||
|
@ -87,6 +86,13 @@ typedef enum
|
||||||
} Ctr_Order_t;
|
} Ctr_Order_t;
|
||||||
#define Ctr_ORDER_DEFAULT Ctr_ORDER_BY_CENTRE
|
#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 ****************************/
|
/****************************** Public prototypes ****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -591,11 +591,11 @@ static void CtrCfg_Institution (bool PrintView,bool PutForm)
|
||||||
"id=\"OthInsCod\" name=\"OthInsCod\""
|
"id=\"OthInsCod\" name=\"OthInsCod\""
|
||||||
" class=\"INPUT_SHORT_NAME\"");
|
" class=\"INPUT_SHORT_NAME\"");
|
||||||
for (NumIns = 0;
|
for (NumIns = 0;
|
||||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||||
NumIns++)
|
NumIns++)
|
||||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod,
|
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Inss.Lst[NumIns].InsCod,
|
||||||
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod == Gbl.Hierarchy.Ins.InsCod,false,
|
Gbl.Hierarchy.Inss.Lst[NumIns].InsCod == Gbl.Hierarchy.Ins.InsCod,false,
|
||||||
"%s",Gbl.Hierarchy.Cty.Inss.Lst[NumIns].ShrtName);
|
"%s",Gbl.Hierarchy.Inss.Lst[NumIns].ShrtName);
|
||||||
HTM_SELECT_End ();
|
HTM_SELECT_End ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
|
|
||||||
|
|
|
@ -492,7 +492,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
||||||
En OpenSWAD:
|
En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
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 CSS_FILE "swad19.112.css"
|
||||||
#define JS_FILE "swad19.91.1.js"
|
#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: No se puede entrar con DNI '1' suponiendo que no tenga password ¿por qué?
|
||||||
// TODO: Mapas más estrechos en móvil
|
// 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.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.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)
|
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 *****/
|
/***** Write all the countries and their number of users and institutions *****/
|
||||||
for (NumCty = 0;
|
for (NumCty = 0;
|
||||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||||
NumCty++)
|
NumCty++)
|
||||||
Cty_ListOneCountryForSeeing (&Gbl.Hierarchy.Sys.Ctys.Lst[NumCty],NumCty + 1);
|
Cty_ListOneCountryForSeeing (&Gbl.Hierarchy.Ctys.Lst[NumCty],NumCty + 1);
|
||||||
|
|
||||||
/***** Separation row *****/
|
/***** Separation row *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
@ -361,13 +361,13 @@ static void Cty_PutHeadCountriesForSeeing (bool OrderSelectable)
|
||||||
Frm_StartForm (ActSeeCty);
|
Frm_StartForm (ActSeeCty);
|
||||||
Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order);
|
Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order);
|
||||||
HTM_BUTTON_SUBMIT_Begin (Txt_COUNTRIES_HELP_ORDER[Order],"BT_LINK TIT_TBL",NULL);
|
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_U_Begin ();
|
||||||
}
|
}
|
||||||
HTM_Txt (Txt_COUNTRIES_ORDER[Order]);
|
HTM_Txt (Txt_COUNTRIES_ORDER[Order]);
|
||||||
if (OrderSelectable)
|
if (OrderSelectable)
|
||||||
{
|
{
|
||||||
if (Order == Gbl.Hierarchy.Sys.Ctys.SelectedOrder)
|
if (Order == Gbl.Hierarchy.Ctys.SelectedOrder)
|
||||||
HTM_U_End ();
|
HTM_U_End ();
|
||||||
HTM_BUTTON_End ();
|
HTM_BUTTON_End ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
|
@ -589,17 +589,17 @@ void Cty_WriteScriptGoogleGeochart (void)
|
||||||
|
|
||||||
/***** Write all the countries and their number of users and institutions *****/
|
/***** Write all the countries and their number of users and institutions *****/
|
||||||
for (NumCty = 0;
|
for (NumCty = 0;
|
||||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||||
NumCty++)
|
NumCty++)
|
||||||
{
|
{
|
||||||
NumUsrsWhoClaimToBelongToCty = Usr_GetNumUsrsWhoClaimToBelongToCty (&Gbl.Hierarchy.Sys.Ctys.Lst[NumCty]);
|
NumUsrsWhoClaimToBelongToCty = Usr_GetNumUsrsWhoClaimToBelongToCty (&Gbl.Hierarchy.Ctys.Lst[NumCty]);
|
||||||
if (NumUsrsWhoClaimToBelongToCty)
|
if (NumUsrsWhoClaimToBelongToCty)
|
||||||
{
|
{
|
||||||
/* Write data of this country */
|
/* Write data of this country */
|
||||||
HTM_TxtF (" ['%s', %u, %u],\n",
|
HTM_TxtF (" ['%s', %u, %u],\n",
|
||||||
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Alpha2,
|
Gbl.Hierarchy.Ctys.Lst[NumCty].Alpha2,
|
||||||
NumUsrsWhoClaimToBelongToCty,
|
NumUsrsWhoClaimToBelongToCty,
|
||||||
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Inss.Num);
|
Ins_GetNumInssInCty (Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod));
|
||||||
if (NumUsrsWhoClaimToBelongToCty > MaxUsrsInCountry)
|
if (NumUsrsWhoClaimToBelongToCty > MaxUsrsInCountry)
|
||||||
MaxUsrsInCountry = NumUsrsWhoClaimToBelongToCty;
|
MaxUsrsInCountry = NumUsrsWhoClaimToBelongToCty;
|
||||||
NumCtysWithUsrs++;
|
NumCtysWithUsrs++;
|
||||||
|
@ -628,11 +628,11 @@ void Cty_WriteScriptGoogleGeochart (void)
|
||||||
|
|
||||||
static void Cty_GetParamCtyOrder (void)
|
static void Cty_GetParamCtyOrder (void)
|
||||||
{
|
{
|
||||||
Gbl.Hierarchy.Sys.Ctys.SelectedOrder = (Cty_Order_t)
|
Gbl.Hierarchy.Ctys.SelectedOrder = (Cty_Order_t)
|
||||||
Par_GetParToUnsignedLong ("Order",
|
Par_GetParToUnsignedLong ("Order",
|
||||||
0,
|
0,
|
||||||
Cty_NUM_ORDERS - 1,
|
Cty_NUM_ORDERS - 1,
|
||||||
(unsigned long) Cty_ORDER_DEFAULT);
|
(unsigned long) Cty_ORDER_DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -657,7 +657,7 @@ static void Cty_EditCountriesInternal (void)
|
||||||
extern const char *Txt_Countries;
|
extern const char *Txt_Countries;
|
||||||
|
|
||||||
/***** Get list of countries *****/
|
/***** Get list of countries *****/
|
||||||
Gbl.Hierarchy.Sys.Ctys.SelectedOrder = Cty_ORDER_BY_COUNTRY;
|
Gbl.Hierarchy.Ctys.SelectedOrder = Cty_ORDER_BY_COUNTRY;
|
||||||
Cty_GetFullListOfCountries ();
|
Cty_GetFullListOfCountries ();
|
||||||
|
|
||||||
/***** Write menu to select country *****/
|
/***** Write menu to select country *****/
|
||||||
|
@ -671,7 +671,7 @@ static void Cty_EditCountriesInternal (void)
|
||||||
Cty_PutFormToCreateCountry ();
|
Cty_PutFormToCreateCountry ();
|
||||||
|
|
||||||
/***** Forms to edit current countries *****/
|
/***** Forms to edit current countries *****/
|
||||||
if (Gbl.Hierarchy.Sys.Ctys.Num)
|
if (Gbl.Hierarchy.Ctys.Num)
|
||||||
Cty_ListCountriesForEdition ();
|
Cty_ListCountriesForEdition ();
|
||||||
|
|
||||||
/***** End box *****/
|
/***** End box *****/
|
||||||
|
@ -730,19 +730,19 @@ void Cty_GetBasicListOfCountries (void)
|
||||||
Lan_STR_LANG_ID[Gbl.Prefs.Language]);
|
Lan_STR_LANG_ID[Gbl.Prefs.Language]);
|
||||||
if (NumRows) // Countries found...
|
if (NumRows) // Countries found...
|
||||||
{
|
{
|
||||||
Gbl.Hierarchy.Sys.Ctys.Num = (unsigned) NumRows;
|
Gbl.Hierarchy.Ctys.Num = (unsigned) NumRows;
|
||||||
|
|
||||||
/***** Create list with countries *****/
|
/***** 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)
|
calloc (NumRows,sizeof (struct Country))) == NULL)
|
||||||
Lay_NotEnoughMemoryExit ();
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
|
||||||
/***** Get the countries *****/
|
/***** Get the countries *****/
|
||||||
for (NumCty = 0;
|
for (NumCty = 0;
|
||||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||||
NumCty++)
|
NumCty++)
|
||||||
{
|
{
|
||||||
Cty = &(Gbl.Hierarchy.Sys.Ctys.Lst[NumCty]);
|
Cty = &(Gbl.Hierarchy.Ctys.Lst[NumCty]);
|
||||||
|
|
||||||
/* Get next country */
|
/* Get next country */
|
||||||
row = mysql_fetch_row (mysql_res);
|
row = mysql_fetch_row (mysql_res);
|
||||||
|
@ -769,14 +769,10 @@ void Cty_GetBasicListOfCountries (void)
|
||||||
|
|
||||||
/* Reset number of users who claim to belong to country */
|
/* Reset number of users who claim to belong to country */
|
||||||
Cty->NumUsrsWhoClaimToBelongToCty.Valid = false;
|
Cty->NumUsrsWhoClaimToBelongToCty.Valid = false;
|
||||||
|
|
||||||
/* Reset other fields */
|
|
||||||
Cty->Inss.Num = 0;
|
|
||||||
Cty->Inss.Lst = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Gbl.Hierarchy.Sys.Ctys.Num = 0;
|
Gbl.Hierarchy.Ctys.Num = 0;
|
||||||
|
|
||||||
/***** Free structure that stores the query result *****/
|
/***** Free structure that stores the query result *****/
|
||||||
DB_FreeMySQLResult (&mysql_res);
|
DB_FreeMySQLResult (&mysql_res);
|
||||||
|
@ -843,7 +839,7 @@ void Cty_GetFullListOfCountries (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Build order subquery */
|
/* 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)
|
Lan_STR_LANG_ID[Gbl.Prefs.Language]) < 0)
|
||||||
Lay_NotEnoughMemoryExit ();
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
|
||||||
|
@ -868,19 +864,19 @@ void Cty_GetFullListOfCountries (void)
|
||||||
|
|
||||||
if (NumRows) // Countries found...
|
if (NumRows) // Countries found...
|
||||||
{
|
{
|
||||||
Gbl.Hierarchy.Sys.Ctys.Num = (unsigned) NumRows;
|
Gbl.Hierarchy.Ctys.Num = (unsigned) NumRows;
|
||||||
|
|
||||||
/***** Create list with countries *****/
|
/***** 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)
|
calloc (NumRows,sizeof (struct Country))) == NULL)
|
||||||
Lay_NotEnoughMemoryExit ();
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
|
||||||
/***** Get the countries *****/
|
/***** Get the countries *****/
|
||||||
for (NumCty = 0;
|
for (NumCty = 0;
|
||||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||||
NumCty++)
|
NumCty++)
|
||||||
{
|
{
|
||||||
Cty = &(Gbl.Hierarchy.Sys.Ctys.Lst[NumCty]);
|
Cty = &(Gbl.Hierarchy.Ctys.Lst[NumCty]);
|
||||||
|
|
||||||
/* Get next country */
|
/* Get next country */
|
||||||
row = mysql_fetch_row (mysql_res);
|
row = mysql_fetch_row (mysql_res);
|
||||||
|
@ -909,14 +905,10 @@ void Cty_GetFullListOfCountries (void)
|
||||||
if (sscanf (row[1 + Lan_NUM_LANGUAGES * 2 + 1],"%u",
|
if (sscanf (row[1 + Lan_NUM_LANGUAGES * 2 + 1],"%u",
|
||||||
&(Cty->NumUsrsWhoClaimToBelongToCty.NumUsrs)) == 1)
|
&(Cty->NumUsrsWhoClaimToBelongToCty.NumUsrs)) == 1)
|
||||||
Cty->NumUsrsWhoClaimToBelongToCty.Valid = true;
|
Cty->NumUsrsWhoClaimToBelongToCty.Valid = true;
|
||||||
|
|
||||||
/* Reset other fields */
|
|
||||||
Cty->Inss.Num = 0;
|
|
||||||
Cty->Inss.Lst = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Gbl.Hierarchy.Sys.Ctys.Num = 0;
|
Gbl.Hierarchy.Ctys.Num = 0;
|
||||||
|
|
||||||
/***** Free structure that stores the query result *****/
|
/***** Free structure that stores the query result *****/
|
||||||
DB_FreeMySQLResult (&mysql_res);
|
DB_FreeMySQLResult (&mysql_res);
|
||||||
|
@ -1032,9 +1024,6 @@ bool Cty_GetDataOfCountryByCod (struct Country *Cty)
|
||||||
Cty->Name[Lan][0] = '\0';
|
Cty->Name[Lan][0] = '\0';
|
||||||
Cty->WWW[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;
|
Cty->NumUsrsWhoClaimToBelongToCty.Valid = false;
|
||||||
|
|
||||||
/***** Check if country code is correct *****/
|
/***** Check if country code is correct *****/
|
||||||
|
@ -1154,12 +1143,12 @@ void Cty_GetCountryName (long CtyCod,Lan_Language_t Language,
|
||||||
|
|
||||||
void Cty_FreeListCountries (void)
|
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 memory used by the list of courses in institution *****/
|
||||||
free (Gbl.Hierarchy.Sys.Ctys.Lst);
|
free (Gbl.Hierarchy.Ctys.Lst);
|
||||||
Gbl.Hierarchy.Sys.Ctys.Lst = NULL;
|
Gbl.Hierarchy.Ctys.Lst = NULL;
|
||||||
Gbl.Hierarchy.Sys.Ctys.Num = 0;
|
Gbl.Hierarchy.Ctys.Num = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1181,10 +1170,10 @@ static void Cty_ListCountriesForEdition (void)
|
||||||
|
|
||||||
/***** Write all countries *****/
|
/***** Write all countries *****/
|
||||||
for (NumCty = 0;
|
for (NumCty = 0;
|
||||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||||
NumCty++)
|
NumCty++)
|
||||||
{
|
{
|
||||||
Cty = &Gbl.Hierarchy.Sys.Ctys.Lst[NumCty];
|
Cty = &Gbl.Hierarchy.Ctys.Lst[NumCty];
|
||||||
NumInssInCty = Ins_GetNumInssInCty (Cty->CtyCod);
|
NumInssInCty = Ins_GetNumInssInCty (Cty->CtyCod);
|
||||||
|
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
@ -2059,9 +2048,6 @@ static void Cty_EditingCountryConstructor (void)
|
||||||
Cty_EditingCty->Name[Lan][0] = '\0';
|
Cty_EditingCty->Name[Lan][0] = '\0';
|
||||||
Cty_EditingCty->WWW [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;
|
Cty_EditingCty->NumUsrsWhoClaimToBelongToCty.Valid = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,12 +51,6 @@ struct Country
|
||||||
char Alpha2[2 + 1];
|
char Alpha2[2 + 1];
|
||||||
char Name[1 + Lan_NUM_LANGUAGES][Cty_MAX_BYTES_NAME + 1];
|
char Name[1 + Lan_NUM_LANGUAGES][Cty_MAX_BYTES_NAME + 1];
|
||||||
char WWW [1 + Lan_NUM_LANGUAGES][Cns_MAX_BYTES_WWW + 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
|
struct
|
||||||
{
|
{
|
||||||
bool Valid;
|
bool Valid;
|
||||||
|
@ -72,6 +66,13 @@ typedef enum
|
||||||
} Cty_Order_t;
|
} Cty_Order_t;
|
||||||
#define Cty_ORDER_DEFAULT Cty_ORDER_BY_NUM_USRS
|
#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 *****************************/
|
/***************************** Public prototypes *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -676,7 +676,7 @@ static void Crs_GetListCrssInCurrentDeg (Crs_WhatCourses_t WhatCourses)
|
||||||
if (NumCrss) // Courses found...
|
if (NumCrss) // Courses found...
|
||||||
{
|
{
|
||||||
/***** Create list with courses in degree *****/
|
/***** 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)
|
sizeof (struct Course))) == NULL)
|
||||||
Lay_NotEnoughMemoryExit ();
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
|
||||||
|
@ -685,7 +685,7 @@ static void Crs_GetListCrssInCurrentDeg (Crs_WhatCourses_t WhatCourses)
|
||||||
NumCrs < NumCrss;
|
NumCrs < NumCrss;
|
||||||
NumCrs++)
|
NumCrs++)
|
||||||
{
|
{
|
||||||
Crs = &Gbl.Hierarchy.Deg.Crss.Lst[NumCrs];
|
Crs = &Gbl.Hierarchy.Crss.Lst[NumCrs];
|
||||||
|
|
||||||
/* Get next course */
|
/* Get next course */
|
||||||
row = mysql_fetch_row (mysql_res);
|
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 *****/
|
/***** Free structure that stores the query result *****/
|
||||||
DB_FreeMySQLResult (&mysql_res);
|
DB_FreeMySQLResult (&mysql_res);
|
||||||
|
@ -705,11 +705,11 @@ static void Crs_GetListCrssInCurrentDeg (Crs_WhatCourses_t WhatCourses)
|
||||||
|
|
||||||
void Crs_FreeListCoursesInCurrentDegree (void)
|
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 memory used by the list of courses in degree *****/
|
||||||
free (Gbl.Hierarchy.Deg.Crss.Lst);
|
free (Gbl.Hierarchy.Crss.Lst);
|
||||||
Gbl.Hierarchy.Deg.Crss.Lst = NULL;
|
Gbl.Hierarchy.Crss.Lst = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -805,7 +805,7 @@ static void Crs_ListCourses (void)
|
||||||
Hlp_DEGREE_Courses,Box_NOT_CLOSABLE);
|
Hlp_DEGREE_Courses,Box_NOT_CLOSABLE);
|
||||||
Str_FreeString ();
|
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 *****/
|
/***** Begin table *****/
|
||||||
HTM_TABLE_BeginWideMarginPadding (2);
|
HTM_TABLE_BeginWideMarginPadding (2);
|
||||||
|
@ -829,7 +829,7 @@ static void Crs_ListCourses (void)
|
||||||
if (Crs_CheckIfICanCreateCourses ())
|
if (Crs_CheckIfICanCreateCourses ())
|
||||||
{
|
{
|
||||||
Frm_StartForm (ActEdiCrs);
|
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);
|
Txt_Create_course);
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
}
|
}
|
||||||
|
@ -893,10 +893,10 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
|
||||||
|
|
||||||
/***** Write all the courses of this year *****/
|
/***** Write all the courses of this year *****/
|
||||||
for (NumCrs = 0;
|
for (NumCrs = 0;
|
||||||
NumCrs < Gbl.Hierarchy.Deg.Crss.Num;
|
NumCrs < Gbl.Hierarchy.Crss.Num;
|
||||||
NumCrs++)
|
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?
|
if (Crs->Year == Year) // The year of the course is this?
|
||||||
{
|
{
|
||||||
ThisYearHasCourses = true;
|
ThisYearHasCourses = true;
|
||||||
|
@ -1020,7 +1020,7 @@ static void Crs_EditCoursesInternal (void)
|
||||||
Crs_PutFormToCreateCourse ();
|
Crs_PutFormToCreateCourse ();
|
||||||
|
|
||||||
/***** Forms to edit current courses *****/
|
/***** Forms to edit current courses *****/
|
||||||
if (Gbl.Hierarchy.Deg.Crss.Num)
|
if (Gbl.Hierarchy.Crss.Num)
|
||||||
Crs_ListCoursesForEdition ();
|
Crs_ListCoursesForEdition ();
|
||||||
|
|
||||||
/***** End box *****/
|
/***** End box *****/
|
||||||
|
@ -1030,7 +1030,7 @@ static void Crs_EditCoursesInternal (void)
|
||||||
Crs_FreeListCoursesInCurrentDegree ();
|
Crs_FreeListCoursesInCurrentDegree ();
|
||||||
|
|
||||||
/***** Free list of degrees in this centre *****/
|
/***** 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 *****/
|
/***** List courses of a given year *****/
|
||||||
for (NumCrs = 0;
|
for (NumCrs = 0;
|
||||||
NumCrs < Gbl.Hierarchy.Deg.Crss.Num;
|
NumCrs < Gbl.Hierarchy.Crss.Num;
|
||||||
NumCrs++)
|
NumCrs++)
|
||||||
{
|
{
|
||||||
Crs = &(Gbl.Hierarchy.Deg.Crss.Lst[NumCrs]);
|
Crs = &(Gbl.Hierarchy.Crss.Lst[NumCrs]);
|
||||||
if (Crs->Year == Year)
|
if (Crs->Year == Year)
|
||||||
{
|
{
|
||||||
ICanEdit = Crs_CheckIfICanEdit (Crs);
|
ICanEdit = Crs_CheckIfICanEdit (Crs);
|
||||||
|
|
|
@ -87,6 +87,12 @@ struct Course
|
||||||
char FullName[Hie_MAX_BYTES_FULL_NAME + 1]; // Full name of 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 *****************************/
|
/***************************** Public prototypes *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -237,16 +237,16 @@ static void CrsCfg_Degree (bool PrintView,bool PutForm)
|
||||||
"id=\"OthDegCod\" name=\"OthDegCod\""
|
"id=\"OthDegCod\" name=\"OthDegCod\""
|
||||||
" class=\"INPUT_SHORT_NAME\"");
|
" class=\"INPUT_SHORT_NAME\"");
|
||||||
for (NumDeg = 0;
|
for (NumDeg = 0;
|
||||||
NumDeg < Gbl.Hierarchy.Ctr.Degs.Num;
|
NumDeg < Gbl.Hierarchy.Degs.Num;
|
||||||
NumDeg++)
|
NumDeg++)
|
||||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg].DegCod,
|
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Degs.Lst[NumDeg].DegCod,
|
||||||
Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg].DegCod == Gbl.Hierarchy.Deg.DegCod,false,
|
Gbl.Hierarchy.Degs.Lst[NumDeg].DegCod == Gbl.Hierarchy.Deg.DegCod,false,
|
||||||
"%s",Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg].ShrtName);
|
"%s",Gbl.Hierarchy.Degs.Lst[NumDeg].ShrtName);
|
||||||
HTM_SELECT_End ();
|
HTM_SELECT_End ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
|
|
||||||
/* Free list of degrees of the current centre */
|
/* 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
|
else // I can not move course to another degree
|
||||||
{
|
{
|
||||||
|
|
|
@ -319,7 +319,7 @@ void Deg_ShowDegsOfCurrentCtr (void)
|
||||||
Deg_ListDegrees ();
|
Deg_ListDegrees ();
|
||||||
|
|
||||||
/***** Free list of degrees and centres *****/
|
/***** Free list of degrees and centres *****/
|
||||||
Deg_FreeListDegs (&Gbl.Hierarchy.Ctr.Degs);
|
Deg_FreeListDegs (&Gbl.Hierarchy.Degs);
|
||||||
Ctr_FreeListCentres ();
|
Ctr_FreeListCentres ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -350,10 +350,10 @@ static void Deg_ListDegreesForEdition (void)
|
||||||
|
|
||||||
/***** List the degrees *****/
|
/***** List the degrees *****/
|
||||||
for (NumDeg = 0;
|
for (NumDeg = 0;
|
||||||
NumDeg < Gbl.Hierarchy.Ctr.Degs.Num;
|
NumDeg < Gbl.Hierarchy.Degs.Num;
|
||||||
NumDeg++)
|
NumDeg++)
|
||||||
{
|
{
|
||||||
Deg = &(Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg]);
|
Deg = &(Gbl.Hierarchy.Degs.Lst[NumDeg]);
|
||||||
|
|
||||||
NumCrss = Crs_GetNumCrssInDeg (Deg->DegCod);
|
NumCrss = Crs_GetNumCrssInDeg (Deg->DegCod);
|
||||||
|
|
||||||
|
@ -770,7 +770,7 @@ static void Deg_ListDegrees (void)
|
||||||
Hlp_CENTRE_Degrees,Box_NOT_CLOSABLE);
|
Hlp_CENTRE_Degrees,Box_NOT_CLOSABLE);
|
||||||
Str_FreeString ();
|
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 *****/
|
/***** Write heading *****/
|
||||||
HTM_TABLE_BeginWideMarginPadding (2);
|
HTM_TABLE_BeginWideMarginPadding (2);
|
||||||
|
@ -778,9 +778,9 @@ static void Deg_ListDegrees (void)
|
||||||
|
|
||||||
/***** List the degrees *****/
|
/***** List the degrees *****/
|
||||||
for (NumDeg = 0;
|
for (NumDeg = 0;
|
||||||
NumDeg < Gbl.Hierarchy.Ctr.Degs.Num;
|
NumDeg < Gbl.Hierarchy.Degs.Num;
|
||||||
NumDeg++)
|
NumDeg++)
|
||||||
Deg_ListOneDegreeForSeeing (&(Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg]),NumDeg + 1);
|
Deg_ListOneDegreeForSeeing (&(Gbl.Hierarchy.Degs.Lst[NumDeg]),NumDeg + 1);
|
||||||
|
|
||||||
/***** End table *****/
|
/***** End table *****/
|
||||||
HTM_TABLE_End ();
|
HTM_TABLE_End ();
|
||||||
|
@ -792,7 +792,7 @@ static void Deg_ListDegrees (void)
|
||||||
if (Deg_CheckIfICanCreateDegrees ())
|
if (Deg_CheckIfICanCreateDegrees ())
|
||||||
{
|
{
|
||||||
Frm_StartForm (ActEdiDeg);
|
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);
|
Txt_Create_degree);
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
}
|
}
|
||||||
|
@ -959,7 +959,7 @@ static void Deg_EditDegreesInternal (void)
|
||||||
Deg_PutFormToCreateDegree ();
|
Deg_PutFormToCreateDegree ();
|
||||||
|
|
||||||
/***** Forms to edit current degrees *****/
|
/***** Forms to edit current degrees *****/
|
||||||
if (Gbl.Hierarchy.Ctr.Degs.Num)
|
if (Gbl.Hierarchy.Degs.Num)
|
||||||
Deg_ListDegreesForEdition ();
|
Deg_ListDegreesForEdition ();
|
||||||
}
|
}
|
||||||
else // No degree types
|
else // No degree types
|
||||||
|
@ -979,7 +979,7 @@ static void Deg_EditDegreesInternal (void)
|
||||||
DT_FreeListDegreeTypes ();
|
DT_FreeListDegreeTypes ();
|
||||||
|
|
||||||
/***** Free list of degrees in the current centre *****/
|
/***** 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 *****/
|
/***** Count number of rows in result *****/
|
||||||
if (NumRows) // Degrees found...
|
if (NumRows) // Degrees found...
|
||||||
{
|
{
|
||||||
Gbl.Hierarchy.Ctr.Degs.Num = (unsigned) NumRows;
|
Gbl.Hierarchy.Degs.Num = (unsigned) NumRows;
|
||||||
|
|
||||||
/***** Create list with degrees of this centre *****/
|
/***** 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)
|
sizeof (struct Degree))) == NULL)
|
||||||
Lay_NotEnoughMemoryExit ();
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
|
||||||
/***** Get the degrees of this centre *****/
|
/***** Get the degrees of this centre *****/
|
||||||
for (NumDeg = 0;
|
for (NumDeg = 0;
|
||||||
NumDeg < Gbl.Hierarchy.Ctr.Degs.Num;
|
NumDeg < Gbl.Hierarchy.Degs.Num;
|
||||||
NumDeg++)
|
NumDeg++)
|
||||||
{
|
{
|
||||||
Deg = &Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg];
|
Deg = &Gbl.Hierarchy.Degs.Lst[NumDeg];
|
||||||
|
|
||||||
/* Get next degree */
|
/* Get next degree */
|
||||||
row = mysql_fetch_row (mysql_res);
|
row = mysql_fetch_row (mysql_res);
|
||||||
|
@ -1100,7 +1100,7 @@ void Deg_GetListDegsInCurrentCtr (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Gbl.Hierarchy.Ctr.Degs.Num = 0;
|
Gbl.Hierarchy.Degs.Num = 0;
|
||||||
|
|
||||||
/***** Free structure that stores the query result *****/
|
/***** Free structure that stores the query result *****/
|
||||||
DB_FreeMySQLResult (&mysql_res);
|
DB_FreeMySQLResult (&mysql_res);
|
||||||
|
@ -1294,8 +1294,6 @@ bool Deg_GetDataOfDegreeByCod (struct Degree *Deg)
|
||||||
Deg->ShrtName[0] = '\0';
|
Deg->ShrtName[0] = '\0';
|
||||||
Deg->FullName[0] = '\0';
|
Deg->FullName[0] = '\0';
|
||||||
Deg->WWW[0] = '\0';
|
Deg->WWW[0] = '\0';
|
||||||
Deg->Crss.Num = 0;
|
|
||||||
Deg->Crss.Lst = NULL;
|
|
||||||
|
|
||||||
/***** Check if degree code is correct *****/
|
/***** Check if degree code is correct *****/
|
||||||
if (Deg->DegCod > 0)
|
if (Deg->DegCod > 0)
|
||||||
|
@ -2061,8 +2059,6 @@ static void Deg_EditingDegreeConstructor (void)
|
||||||
Deg_EditingDeg->ShrtName[0] = '\0';
|
Deg_EditingDeg->ShrtName[0] = '\0';
|
||||||
Deg_EditingDeg->FullName[0] = '\0';
|
Deg_EditingDeg->FullName[0] = '\0';
|
||||||
Deg_EditingDeg->WWW[0] = '\0';
|
Deg_EditingDeg->WWW[0] = '\0';
|
||||||
Deg_EditingDeg->Crss.Num = 0;
|
|
||||||
Deg_EditingDeg->Crss.Lst = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Deg_EditingDegreeDestructor (void)
|
static void Deg_EditingDegreeDestructor (void)
|
||||||
|
|
|
@ -76,11 +76,6 @@ struct Degree
|
||||||
char ShrtName[Hie_MAX_BYTES_SHRT_NAME + 1]; // Short name of 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 FullName[Hie_MAX_BYTES_FULL_NAME + 1]; // Full name of degree
|
||||||
char WWW[Cns_MAX_BYTES_WWW + 1];
|
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
|
struct ListDegrees
|
||||||
|
|
|
@ -231,11 +231,11 @@ static void DegCfg_Centre (bool PrintView,bool PutForm)
|
||||||
"id=\"OthCtrCod\" name=\"OthCtrCod\""
|
"id=\"OthCtrCod\" name=\"OthCtrCod\""
|
||||||
" class=\"INPUT_SHORT_NAME\"");
|
" class=\"INPUT_SHORT_NAME\"");
|
||||||
for (NumCtr = 0;
|
for (NumCtr = 0;
|
||||||
NumCtr < Gbl.Hierarchy.Ins.Ctrs.Num;
|
NumCtr < Gbl.Hierarchy.Ctrs.Num;
|
||||||
NumCtr++)
|
NumCtr++)
|
||||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].CtrCod,
|
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctrs.Lst[NumCtr].CtrCod,
|
||||||
Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].CtrCod == Gbl.Hierarchy.Ctr.CtrCod,false,
|
Gbl.Hierarchy.Ctrs.Lst[NumCtr].CtrCod == Gbl.Hierarchy.Ctr.CtrCod,false,
|
||||||
"%s",Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].ShrtName);
|
"%s",Gbl.Hierarchy.Ctrs.Lst[NumCtr].ShrtName);
|
||||||
HTM_SELECT_End ();
|
HTM_SELECT_End ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
|
|
||||||
|
|
|
@ -541,11 +541,11 @@ static void Dpt_ListDepartmentsForEdition (void)
|
||||||
HTM_OPTION (HTM_Type_STRING,"0",Dpt->InsCod == 0,false,
|
HTM_OPTION (HTM_Type_STRING,"0",Dpt->InsCod == 0,false,
|
||||||
"%s",Txt_Another_institution);
|
"%s",Txt_Another_institution);
|
||||||
for (NumIns = 0;
|
for (NumIns = 0;
|
||||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||||
NumIns++)
|
NumIns++)
|
||||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod,
|
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Inss.Lst[NumIns].InsCod,
|
||||||
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod == Dpt->InsCod,false,
|
Gbl.Hierarchy.Inss.Lst[NumIns].InsCod == Dpt->InsCod,false,
|
||||||
"%s",Gbl.Hierarchy.Cty.Inss.Lst[NumIns].ShrtName);
|
"%s",Gbl.Hierarchy.Inss.Lst[NumIns].ShrtName);
|
||||||
HTM_SELECT_End ();
|
HTM_SELECT_End ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
@ -910,11 +910,11 @@ static void Dpt_PutFormToCreateDepartment (void)
|
||||||
HTM_OPTION (HTM_Type_STRING,"0",Dpt_EditingDpt->InsCod == 0,false,
|
HTM_OPTION (HTM_Type_STRING,"0",Dpt_EditingDpt->InsCod == 0,false,
|
||||||
"%s",Txt_Another_institution);
|
"%s",Txt_Another_institution);
|
||||||
for (NumIns = 0;
|
for (NumIns = 0;
|
||||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||||
NumIns++)
|
NumIns++)
|
||||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod,
|
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Inss.Lst[NumIns].InsCod,
|
||||||
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod == Dpt_EditingDpt->InsCod,false,
|
Gbl.Hierarchy.Inss.Lst[NumIns].InsCod == Dpt_EditingDpt->InsCod,false,
|
||||||
"%s",Gbl.Hierarchy.Cty.Inss.Lst[NumIns].ShrtName);
|
"%s",Gbl.Hierarchy.Inss.Lst[NumIns].ShrtName);
|
||||||
HTM_SELECT_End ();
|
HTM_SELECT_End ();
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
/********************************** Headers **********************************/
|
/********************************** Headers **********************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#include "swad_course.h"
|
||||||
#include "swad_notification.h"
|
#include "swad_notification.h"
|
||||||
#include "swad_user.h"
|
#include "swad_user.h"
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
|
|
||||||
#include <linux/limits.h> // For PATH_MAX
|
#include <linux/limits.h> // For PATH_MAX
|
||||||
|
|
||||||
|
#include "swad_course.h"
|
||||||
#include "swad_group.h"
|
#include "swad_group.h"
|
||||||
#include "swad_notification.h"
|
#include "swad_notification.h"
|
||||||
|
|
||||||
|
|
|
@ -217,29 +217,33 @@ void Gbl_InitializeGlobals (void)
|
||||||
/***** Reset current hierarchy *****/
|
/***** Reset current hierarchy *****/
|
||||||
Hie_ResetHierarchy ();
|
Hie_ResetHierarchy ();
|
||||||
|
|
||||||
Gbl.Hierarchy.Sys.Ctys.Num = 0;
|
Gbl.Hierarchy.Ctys.Num = 0;
|
||||||
Gbl.Hierarchy.Sys.Ctys.Lst = NULL;
|
Gbl.Hierarchy.Ctys.Lst = NULL;
|
||||||
Gbl.Hierarchy.Sys.Ctys.SelectedOrder = Cty_ORDER_DEFAULT;
|
Gbl.Hierarchy.Ctys.SelectedOrder = Cty_ORDER_DEFAULT;
|
||||||
|
|
||||||
Gbl.Hierarchy.Cty.Inss.Num = 0;
|
Gbl.Hierarchy.Inss.Num = 0;
|
||||||
Gbl.Hierarchy.Cty.Inss.Lst = NULL;
|
Gbl.Hierarchy.Inss.Lst = NULL;
|
||||||
Gbl.Hierarchy.Cty.Inss.SelectedOrder = Ins_ORDER_DEFAULT;
|
Gbl.Hierarchy.Inss.SelectedOrder = Ins_ORDER_DEFAULT;
|
||||||
|
|
||||||
Gbl.Hierarchy.Ins.ShrtName[0] = '\0';
|
Gbl.Hierarchy.Ins.ShrtName[0] = '\0';
|
||||||
Gbl.Hierarchy.Ins.FullName[0] = '\0';
|
Gbl.Hierarchy.Ins.FullName[0] = '\0';
|
||||||
Gbl.Hierarchy.Ins.WWW[0] = '\0';
|
Gbl.Hierarchy.Ins.WWW[0] = '\0';
|
||||||
Gbl.Hierarchy.Ins.Ctrs.Num = 0;
|
|
||||||
Gbl.Hierarchy.Ins.Ctrs.Lst = NULL;
|
Gbl.Hierarchy.Ctrs.Num = 0;
|
||||||
Gbl.Hierarchy.Ins.Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
Gbl.Hierarchy.Ctrs.Lst = NULL;
|
||||||
|
Gbl.Hierarchy.Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
||||||
|
|
||||||
Gbl.Hierarchy.Ctr.ShrtName[0] = '\0';
|
Gbl.Hierarchy.Ctr.ShrtName[0] = '\0';
|
||||||
Gbl.Hierarchy.Ctr.FullName[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.Num = 0;
|
||||||
Gbl.Dpts.Lst = NULL;
|
Gbl.Dpts.Lst = NULL;
|
||||||
|
@ -469,7 +473,7 @@ void Gbl_Cleanup (void)
|
||||||
Grp_FreeListGrpTypesAndGrps ();
|
Grp_FreeListGrpTypesAndGrps ();
|
||||||
Grp_FreeListCodSelectedGrps ();
|
Grp_FreeListCodSelectedGrps ();
|
||||||
Crs_FreeListCoursesInCurrentDegree ();
|
Crs_FreeListCoursesInCurrentDegree ();
|
||||||
Deg_FreeListDegs (&Gbl.Hierarchy.Ctr.Degs);
|
Deg_FreeListDegs (&Gbl.Hierarchy.Degs);
|
||||||
DT_FreeListDegreeTypes ();
|
DT_FreeListDegreeTypes ();
|
||||||
Ins_FreeListInstitutions ();
|
Ins_FreeListInstitutions ();
|
||||||
Ctr_FreeListCentres ();
|
Ctr_FreeListCentres ();
|
||||||
|
|
|
@ -77,7 +77,6 @@
|
||||||
#include "swad_session.h"
|
#include "swad_session.h"
|
||||||
#include "swad_survey.h"
|
#include "swad_survey.h"
|
||||||
#include "swad_syllabus.h"
|
#include "swad_syllabus.h"
|
||||||
#include "swad_system.h"
|
|
||||||
#include "swad_test.h"
|
#include "swad_test.h"
|
||||||
#include "swad_timeline.h"
|
#include "swad_timeline.h"
|
||||||
#include "swad_timetable.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
|
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
|
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 Country Cty; // Current country
|
||||||
|
struct ListInstits Inss; // List of institutions in current country
|
||||||
struct Instit Ins; // Current institution
|
struct Instit Ins; // Current institution
|
||||||
|
struct ListCentres Ctrs; // List of centres in current institution
|
||||||
struct Centre Ctr; // Current centre
|
struct Centre Ctr; // Current centre
|
||||||
|
struct ListDegrees Degs; // List of degrees in current centre
|
||||||
struct Degree Deg; // Current degree
|
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.
|
struct Course Crs; // Current course. Aditional info about course is stored in Gbl.Crs.
|
||||||
} Hierarchy;
|
} Hierarchy;
|
||||||
struct
|
struct
|
||||||
|
|
|
@ -300,7 +300,7 @@ static void Ins_ListInstitutions (void)
|
||||||
Hlp_COUNTRY_Institutions,Box_NOT_CLOSABLE);
|
Hlp_COUNTRY_Institutions,Box_NOT_CLOSABLE);
|
||||||
Str_FreeString ();
|
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 *****/
|
/***** Begin table *****/
|
||||||
HTM_TABLE_BeginWideMarginPadding (2);
|
HTM_TABLE_BeginWideMarginPadding (2);
|
||||||
|
@ -308,9 +308,9 @@ static void Ins_ListInstitutions (void)
|
||||||
|
|
||||||
/***** Write all the institutions and their nuber of users *****/
|
/***** Write all the institutions and their nuber of users *****/
|
||||||
for (NumIns = 0;
|
for (NumIns = 0;
|
||||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||||
NumIns++)
|
NumIns++)
|
||||||
Ins_ListOneInstitutionForSeeing (&(Gbl.Hierarchy.Cty.Inss.Lst[NumIns]),NumIns + 1);
|
Ins_ListOneInstitutionForSeeing (&(Gbl.Hierarchy.Inss.Lst[NumIns]),NumIns + 1);
|
||||||
|
|
||||||
/***** End table *****/
|
/***** End table *****/
|
||||||
HTM_TABLE_End ();
|
HTM_TABLE_End ();
|
||||||
|
@ -322,7 +322,7 @@ static void Ins_ListInstitutions (void)
|
||||||
if (Ins_CheckIfICanCreateInstitutions ())
|
if (Ins_CheckIfICanCreateInstitutions ())
|
||||||
{
|
{
|
||||||
Frm_StartForm (ActEdiIns);
|
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);
|
Txt_Create_institution);
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
}
|
}
|
||||||
|
@ -481,13 +481,13 @@ static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable)
|
||||||
Frm_StartForm (ActSeeIns);
|
Frm_StartForm (ActSeeIns);
|
||||||
Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order);
|
Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order);
|
||||||
HTM_BUTTON_SUBMIT_Begin (Txt_INSTITUTIONS_HELP_ORDER[Order],ClassButton[Order],NULL);
|
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_U_Begin ();
|
||||||
}
|
}
|
||||||
HTM_Txt (Txt_INSTITUTIONS_ORDER[Order]);
|
HTM_Txt (Txt_INSTITUTIONS_ORDER[Order]);
|
||||||
if (OrderSelectable)
|
if (OrderSelectable)
|
||||||
{
|
{
|
||||||
if (Order == Gbl.Hierarchy.Cty.Inss.SelectedOrder)
|
if (Order == Gbl.Hierarchy.Inss.SelectedOrder)
|
||||||
HTM_U_End ();
|
HTM_U_End ();
|
||||||
HTM_BUTTON_End ();
|
HTM_BUTTON_End ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
|
@ -515,11 +515,11 @@ static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable)
|
||||||
|
|
||||||
static void Ins_GetParamInsOrder (void)
|
static void Ins_GetParamInsOrder (void)
|
||||||
{
|
{
|
||||||
Gbl.Hierarchy.Cty.Inss.SelectedOrder = (Ins_Order_t)
|
Gbl.Hierarchy.Inss.SelectedOrder = (Ins_Order_t)
|
||||||
Par_GetParToUnsignedLong ("Order",
|
Par_GetParToUnsignedLong ("Order",
|
||||||
0,
|
0,
|
||||||
Ins_NUM_ORDERS - 1,
|
Ins_NUM_ORDERS - 1,
|
||||||
(unsigned long) Ins_ORDER_DEFAULT);
|
(unsigned long) Ins_ORDER_DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -560,7 +560,7 @@ static void Ins_EditInstitutionsInternal (void)
|
||||||
Ins_PutFormToCreateInstitution ();
|
Ins_PutFormToCreateInstitution ();
|
||||||
|
|
||||||
/***** Forms to edit current institutions *****/
|
/***** Forms to edit current institutions *****/
|
||||||
if (Gbl.Hierarchy.Cty.Inss.Num)
|
if (Gbl.Hierarchy.Inss.Num)
|
||||||
Ins_ListInstitutionsForEdition ();
|
Ins_ListInstitutionsForEdition ();
|
||||||
|
|
||||||
/***** End box *****/
|
/***** End box *****/
|
||||||
|
@ -626,19 +626,19 @@ void Ins_GetBasicListOfInstitutions (long CtyCod)
|
||||||
if (NumRows) // Institutions found...
|
if (NumRows) // Institutions found...
|
||||||
{
|
{
|
||||||
// NumRows should be equal to Deg->NumCourses
|
// NumRows should be equal to Deg->NumCourses
|
||||||
Gbl.Hierarchy.Cty.Inss.Num = (unsigned) NumRows;
|
Gbl.Hierarchy.Inss.Num = (unsigned) NumRows;
|
||||||
|
|
||||||
/***** Create list with institutions *****/
|
/***** 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)
|
calloc (NumRows,sizeof (struct Instit))) == NULL)
|
||||||
Lay_NotEnoughMemoryExit ();
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
|
||||||
/***** Get the institutions *****/
|
/***** Get the institutions *****/
|
||||||
for (NumIns = 0;
|
for (NumIns = 0;
|
||||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||||
NumIns++)
|
NumIns++)
|
||||||
{
|
{
|
||||||
Ins = &(Gbl.Hierarchy.Cty.Inss.Lst[NumIns]);
|
Ins = &(Gbl.Hierarchy.Inss.Lst[NumIns]);
|
||||||
|
|
||||||
/* Get institution data */
|
/* Get institution data */
|
||||||
row = mysql_fetch_row (mysql_res);
|
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 */
|
/* Reset number of users who claim to belong to this institution */
|
||||||
Ins->NumUsrsWhoClaimToBelongToIns.Valid = false;
|
Ins->NumUsrsWhoClaimToBelongToIns.Valid = false;
|
||||||
|
|
||||||
/* Reset other fields */
|
|
||||||
Ins->Ctrs.Num = 0;
|
|
||||||
Ins->Ctrs.Lst = NULL;
|
|
||||||
Ins->Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Gbl.Hierarchy.Cty.Inss.Num = 0;
|
Gbl.Hierarchy.Inss.Num = 0;
|
||||||
Gbl.Hierarchy.Cty.Inss.Lst = NULL;
|
Gbl.Hierarchy.Inss.Lst = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Free structure that stores the query result *****/
|
/***** Free structure that stores the query result *****/
|
||||||
|
@ -710,24 +705,24 @@ void Ins_GetFullListOfInstitutions (long CtyCod)
|
||||||
" AND InsCod NOT IN"
|
" AND InsCod NOT IN"
|
||||||
" (SELECT DISTINCT InsCod FROM usr_data))"
|
" (SELECT DISTINCT InsCod FROM usr_data))"
|
||||||
" ORDER BY %s",
|
" ORDER BY %s",
|
||||||
CtyCod,CtyCod,OrderBySubQuery[Gbl.Hierarchy.Cty.Inss.SelectedOrder]);
|
CtyCod,CtyCod,OrderBySubQuery[Gbl.Hierarchy.Inss.SelectedOrder]);
|
||||||
|
|
||||||
if (NumRows) // Institutions found...
|
if (NumRows) // Institutions found...
|
||||||
{
|
{
|
||||||
// NumRows should be equal to Deg->NumCourses
|
// NumRows should be equal to Deg->NumCourses
|
||||||
Gbl.Hierarchy.Cty.Inss.Num = (unsigned) NumRows;
|
Gbl.Hierarchy.Inss.Num = (unsigned) NumRows;
|
||||||
|
|
||||||
/***** Create list with institutions *****/
|
/***** 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)
|
calloc (NumRows,sizeof (struct Instit))) == NULL)
|
||||||
Lay_NotEnoughMemoryExit ();
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
|
||||||
/***** Get the institutions *****/
|
/***** Get the institutions *****/
|
||||||
for (NumIns = 0;
|
for (NumIns = 0;
|
||||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||||
NumIns++)
|
NumIns++)
|
||||||
{
|
{
|
||||||
Ins = &(Gbl.Hierarchy.Cty.Inss.Lst[NumIns]);
|
Ins = &(Gbl.Hierarchy.Inss.Lst[NumIns]);
|
||||||
|
|
||||||
/* Get institution data */
|
/* Get institution data */
|
||||||
row = mysql_fetch_row (mysql_res);
|
row = mysql_fetch_row (mysql_res);
|
||||||
|
@ -737,17 +732,12 @@ void Ins_GetFullListOfInstitutions (long CtyCod)
|
||||||
Ins->NumUsrsWhoClaimToBelongToIns.Valid = false;
|
Ins->NumUsrsWhoClaimToBelongToIns.Valid = false;
|
||||||
if (sscanf (row[7],"%u",&(Ins->NumUsrsWhoClaimToBelongToIns.NumUsrs)) == 1)
|
if (sscanf (row[7],"%u",&(Ins->NumUsrsWhoClaimToBelongToIns.NumUsrs)) == 1)
|
||||||
Ins->NumUsrsWhoClaimToBelongToIns.Valid = true;
|
Ins->NumUsrsWhoClaimToBelongToIns.Valid = true;
|
||||||
|
|
||||||
/* Reset other fields */
|
|
||||||
Ins->Ctrs.Num = 0;
|
|
||||||
Ins->Ctrs.Lst = NULL;
|
|
||||||
Ins->Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Gbl.Hierarchy.Cty.Inss.Num = 0;
|
Gbl.Hierarchy.Inss.Num = 0;
|
||||||
Gbl.Hierarchy.Cty.Inss.Lst = NULL;
|
Gbl.Hierarchy.Inss.Lst = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Free structure that stores the query result *****/
|
/***** Free structure that stores the query result *****/
|
||||||
|
@ -789,9 +779,6 @@ bool Ins_GetDataOfInstitutionByCod (struct Instit *Ins)
|
||||||
Ins->ShrtName[0] =
|
Ins->ShrtName[0] =
|
||||||
Ins->FullName[0] =
|
Ins->FullName[0] =
|
||||||
Ins->WWW[0] = '\0';
|
Ins->WWW[0] = '\0';
|
||||||
Ins->Ctrs.Num = 0;
|
|
||||||
Ins->Ctrs.Lst = NULL;
|
|
||||||
Ins->Ctrs.SelectedOrder = Ctr_ORDER_DEFAULT;
|
|
||||||
Ins->NumUsrsWhoClaimToBelongToIns.Valid = false;
|
Ins->NumUsrsWhoClaimToBelongToIns.Valid = false;
|
||||||
|
|
||||||
/***** Check if institution code is correct *****/
|
/***** Check if institution code is correct *****/
|
||||||
|
@ -991,12 +978,12 @@ static void Ins_GetShrtNameAndCtyOfInstitution (struct Instit *Ins,
|
||||||
|
|
||||||
void Ins_FreeListInstitutions (void)
|
void Ins_FreeListInstitutions (void)
|
||||||
{
|
{
|
||||||
if (Gbl.Hierarchy.Cty.Inss.Lst)
|
if (Gbl.Hierarchy.Inss.Lst)
|
||||||
{
|
{
|
||||||
/***** Free memory used by the list of institutions *****/
|
/***** Free memory used by the list of institutions *****/
|
||||||
free (Gbl.Hierarchy.Cty.Inss.Lst);
|
free (Gbl.Hierarchy.Inss.Lst);
|
||||||
Gbl.Hierarchy.Cty.Inss.Num = 0;
|
Gbl.Hierarchy.Inss.Num = 0;
|
||||||
Gbl.Hierarchy.Cty.Inss.Lst = NULL;
|
Gbl.Hierarchy.Inss.Lst = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1092,10 +1079,10 @@ static void Ins_ListInstitutionsForEdition (void)
|
||||||
|
|
||||||
/***** Write all the institutions *****/
|
/***** Write all the institutions *****/
|
||||||
for (NumIns = 0;
|
for (NumIns = 0;
|
||||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||||
NumIns++)
|
NumIns++)
|
||||||
{
|
{
|
||||||
Ins = &Gbl.Hierarchy.Cty.Inss.Lst[NumIns];
|
Ins = &Gbl.Hierarchy.Inss.Lst[NumIns];
|
||||||
|
|
||||||
ICanEdit = Ins_CheckIfICanEdit (Ins);
|
ICanEdit = Ins_CheckIfICanEdit (Ins);
|
||||||
NumCtrss = Ctr_GetNumCtrsInIns (Ins->InsCod);
|
NumCtrss = Ctr_GetNumCtrsInIns (Ins->InsCod);
|
||||||
|
@ -2092,9 +2079,6 @@ static void Ins_EditingInstitutionConstructor (void)
|
||||||
Ins_EditingIns->ShrtName[0] = '\0';
|
Ins_EditingIns->ShrtName[0] = '\0';
|
||||||
Ins_EditingIns->FullName[0] = '\0';
|
Ins_EditingIns->FullName[0] = '\0';
|
||||||
Ins_EditingIns->WWW[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)
|
static void Ins_EditingInstitutionDestructor (void)
|
||||||
|
|
|
@ -65,12 +65,6 @@ struct Instit
|
||||||
char ShrtName[Hie_MAX_BYTES_SHRT_NAME + 1];
|
char ShrtName[Hie_MAX_BYTES_SHRT_NAME + 1];
|
||||||
char FullName[Hie_MAX_BYTES_FULL_NAME + 1];
|
char FullName[Hie_MAX_BYTES_FULL_NAME + 1];
|
||||||
char WWW[Cns_MAX_BYTES_WWW + 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
|
struct
|
||||||
{
|
{
|
||||||
bool Valid;
|
bool Valid;
|
||||||
|
@ -86,6 +80,13 @@ typedef enum
|
||||||
} Ins_Order_t;
|
} Ins_Order_t;
|
||||||
#define Ins_ORDER_DEFAULT Ins_ORDER_BY_NUM_USRS
|
#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 *****************************/
|
/***************************** Public prototypes *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -384,11 +384,11 @@ static void InsCfg_Country (bool PrintView,bool PutForm)
|
||||||
"id=\"OthCtyCod\" name=\"OthCtyCod\""
|
"id=\"OthCtyCod\" name=\"OthCtyCod\""
|
||||||
" class=\"INPUT_SHORT_NAME\"");
|
" class=\"INPUT_SHORT_NAME\"");
|
||||||
for (NumCty = 0;
|
for (NumCty = 0;
|
||||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||||
NumCty++)
|
NumCty++)
|
||||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod,
|
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod,
|
||||||
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod == Gbl.Hierarchy.Cty.CtyCod,false,
|
Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod == Gbl.Hierarchy.Cty.CtyCod,false,
|
||||||
"%s",Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
|
"%s",Gbl.Hierarchy.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
|
||||||
HTM_SELECT_End ();
|
HTM_SELECT_End ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
|
|
||||||
|
|
|
@ -3216,7 +3216,7 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,bool PutForm)
|
||||||
unsigned NumCty;
|
unsigned NumCty;
|
||||||
|
|
||||||
/***** If list of countries is empty, try to get it *****/
|
/***** If list of countries is empty, try to get it *****/
|
||||||
if (!Gbl.Hierarchy.Sys.Ctys.Num)
|
if (!Gbl.Hierarchy.Ctys.Num)
|
||||||
Cty_GetBasicListOfCountries ();
|
Cty_GetBasicListOfCountries ();
|
||||||
|
|
||||||
/***** Selector of country *****/
|
/***** 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,
|
HTM_OPTION (HTM_Type_STRING,"0",UsrDat->CtyCod == 0,false,
|
||||||
"%s",Txt_Another_country);
|
"%s",Txt_Another_country);
|
||||||
for (NumCty = 0;
|
for (NumCty = 0;
|
||||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||||
NumCty++)
|
NumCty++)
|
||||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod,
|
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod,
|
||||||
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod == UsrDat->CtyCod,false,
|
Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod == UsrDat->CtyCod,false,
|
||||||
"%s",Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
|
"%s",Gbl.Hierarchy.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
|
||||||
HTM_SELECT_End ();
|
HTM_SELECT_End ();
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
|
@ -3951,7 +3951,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
|
||||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM\"");
|
HTM_TD_Begin ("class=\"REC_C2_BOT LM\"");
|
||||||
|
|
||||||
/* If list of countries is empty, try to get it */
|
/* If list of countries is empty, try to get it */
|
||||||
if (!Gbl.Hierarchy.Sys.Ctys.Num)
|
if (!Gbl.Hierarchy.Ctys.Num)
|
||||||
Cty_GetBasicListOfCountries ();
|
Cty_GetBasicListOfCountries ();
|
||||||
|
|
||||||
/* Begin form to select the country of my institution */
|
/* 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,
|
Gbl.Usrs.Me.UsrDat.InsCtyCod <= 0,true,
|
||||||
NULL);
|
NULL);
|
||||||
for (NumCty = 0;
|
for (NumCty = 0;
|
||||||
NumCty < Gbl.Hierarchy.Sys.Ctys.Num;
|
NumCty < Gbl.Hierarchy.Ctys.Num;
|
||||||
NumCty++)
|
NumCty++)
|
||||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod,
|
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod,
|
||||||
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod == Gbl.Usrs.Me.UsrDat.InsCtyCod,false,
|
Gbl.Hierarchy.Ctys.Lst[NumCty].CtyCod == Gbl.Usrs.Me.UsrDat.InsCtyCod,false,
|
||||||
"%s",Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
|
"%s",Gbl.Hierarchy.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
|
||||||
HTM_SELECT_End ();
|
HTM_SELECT_End ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
@ -4002,11 +4002,11 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
|
||||||
Gbl.Usrs.Me.UsrDat.InsCod == 0,false,
|
Gbl.Usrs.Me.UsrDat.InsCod == 0,false,
|
||||||
"%s",Txt_Another_institution);
|
"%s",Txt_Another_institution);
|
||||||
for (NumIns = 0;
|
for (NumIns = 0;
|
||||||
NumIns < Gbl.Hierarchy.Cty.Inss.Num;
|
NumIns < Gbl.Hierarchy.Inss.Num;
|
||||||
NumIns++)
|
NumIns++)
|
||||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod,
|
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Inss.Lst[NumIns].InsCod,
|
||||||
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod == Gbl.Usrs.Me.UsrDat.InsCod,false,
|
Gbl.Hierarchy.Inss.Lst[NumIns].InsCod == Gbl.Usrs.Me.UsrDat.InsCod,false,
|
||||||
"%s",Gbl.Hierarchy.Cty.Inss.Lst[NumIns].FullName);
|
"%s",Gbl.Hierarchy.Inss.Lst[NumIns].FullName);
|
||||||
HTM_SELECT_End ();
|
HTM_SELECT_End ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
@ -4043,11 +4043,11 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
|
||||||
Gbl.Usrs.Me.UsrDat.Tch.CtrCod == 0,false,
|
Gbl.Usrs.Me.UsrDat.Tch.CtrCod == 0,false,
|
||||||
Txt_Another_centre);
|
Txt_Another_centre);
|
||||||
for (NumCtr = 0;
|
for (NumCtr = 0;
|
||||||
NumCtr < Gbl.Hierarchy.Ins.Ctrs.Num;
|
NumCtr < Gbl.Hierarchy.Ctrs.Num;
|
||||||
NumCtr++)
|
NumCtr++)
|
||||||
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].CtrCod,
|
HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Ctrs.Lst[NumCtr].CtrCod,
|
||||||
Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].CtrCod == Gbl.Usrs.Me.UsrDat.Tch.CtrCod,false,
|
Gbl.Hierarchy.Ctrs.Lst[NumCtr].CtrCod == Gbl.Usrs.Me.UsrDat.Tch.CtrCod,false,
|
||||||
Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].FullName);
|
Gbl.Hierarchy.Ctrs.Lst[NumCtr].FullName);
|
||||||
HTM_SELECT_End ();
|
HTM_SELECT_End ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
HTM_TD_End ();
|
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