项目中有些配置文件是其他功能多开共用的配置文件,如:controller.xml,services.xml,secas.xml,eecas.xml,entitymodel.xml,entitymodel_view.xml。所以统一在这里整理记录了。
返回导航页
controller.xml
<?xml version="1.0" encoding="UTF-8"?>
<site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://ofbiz.apache.org/Site-Conf" xsi:schemaLocation="http://ofbiz.apache.org/Site-Conf http://ofbiz.apache.org/dtds/site-conf.xsd">
<include location="component://common/webcommon/WEB-INF/common-controller.xml"/>
<include location="component://common/webcommon/WEB-INF/portal-controller.xml"/>
<handler name="groovy" type="request" class="org.apache.ofbiz.webapp.event.GroovyEventHandler"/>
<handler name="java" type="request" class="org.apache.ofbiz.webapp.event.JavaEventHandler"/>
<description>Booking Component Site Configuration File</description>
<!-- Request Mappings -->
<request-map uri="main"><security https="true" auth="true"/><response name="success" type="view" value="main"/></request-map>
<!-- ================ Student Requests ================= -->
<request-map uri="FindStudent">
<security https="true" auth="true"/>
<response name="success" type="view" value="FindStudent"/>
</request-map>
<request-map uri="EditStudent">
<security https="true" auth="true"/>
<response name="success" type="view" value="EditStudent"/>
</request-map>
<request-map uri="ImportStudentsPage">
<security https="true" auth="true"/>
<response name="success" type="view" value="ImportStudentsPage"/>
</request-map>
<request-map uri="ImportStudents">
<security https="true" auth="true"/>
<event type="groovy" path="component://booking/groovyScripts/UserLogin.groovy" invoke="importStudents"/>
<response name="success" type="view" value="FindStudent"/>
<response name="error" type="view" value="ImportStudentsPage"/>
</request-map>
<request-map uri="downloadTemplet">
<security https="true"/>
<event type="java" path="org.apache.ofbiz.booking.download.DownloadEvents" invoke="download"/>
<response name="success" type="none"/>
</request-map>
<request-map uri="createStudent">
<security https="true" auth="true"/>
<event type="service" invoke="createStudent"/>
<response name="success" type="view" value="EditStudent"/>
<response name="error" type="view" value="EditStudent"/>
</request-map>
<request-map uri="updateStudent">
<security https="true" auth="true"/>
<event type="service" invoke="updateStudent"/>
<response name="success" type="view" value="EditStudent"/>
<response name="error" type="view" value="EditStudent"/>
</request-map>
<request-map uri="deleteStudent">
<security auth="true" https="true"/>
<event type="service" invoke="deleteStudent" />
<response name="success" type="request-redirect-noparam" value="FindStudent"/>
</request-map>
<request-map uri="LookupStudent">
<security auth="true" https="true"/>
<response name="success" type="view" value="LookupStudent"/>
</request-map>
<!-- ================ Teacher Requests ================= -->
<request-map uri="FindTeacher">
<security https="true" auth="true"/>
<response name="success" type="view" value="FindTeacher"/>
</request-map>
<request-map uri="EditTeacher">
<security https="true" auth="true"/>
<response name="success" type="view" value="EditTeacher"/>
</request-map>
<request-map uri="createTeacher">
<security https="true" auth="true"/>
<event type="service" invoke="createTeacher"/>
<response name="success" type="view" value="EditTeacher"/>
<response name="error" type="view" value="EditTeacher"/>
</request-map>
<request-map uri="updateTeacher">
<security https="true" auth="true"/>
<event type="service" invoke="updateTeacher"/>
<response name="success" type="view" value="EditTeacher"/>
<response name="error" type="view" value="EditTeacher"/>
</request-map>
<request-map uri="deleteTeacher">
<security auth="true" https="true"/>
<event type="service" invoke="deleteTeacher" />
<response name="success" type="request-redirect-noparam" value="FindTeacher"/>
</request-map>
<request-map uri="LookupTeacher">
<security auth="true" https="true"/>
<response name="success" type="view" value="LookupTeacher"/>
</request-map>
<!-- ================ Admin Requests ================= -->
<request-map uri="FindAdmin">
<security https="true" auth="true"/>
<response name="success" type="view" value="FindAdmin"/>
</request-map>
<request-map uri="EditAdmin">
<security https="true" auth="true"/>
<response name="success" type="view" value="EditAdmin"/>
</request-map>
<request-map uri="createAdmin">
<security https="true" auth="true"/>
<event type="service" invoke="createAdmin"/>
<response name="success" type="view" value="EditAdmin"/>
<response name="error" type="view" value="EditAdmin"/>
</request-map>
<request-map uri="updateAdmin">
<security https="true" auth="true"/>
<event type="service" invoke="updateAdmin"/>
<response name="success" type="view" value="EditAdmin"/>
<response name="error" type="view" value="EditAdmin"/>
</request-map>
<request-map uri="deleteAdmin">
<security auth="true" https="true"/>
<event type="service" invoke="deleteAdmin" />
<response name="success" type="request-redirect-noparam" value="FindAdmin"/>
</request-map>
<!-- ================ Term Requests ================= -->
<request-map uri="FindTerm">
<security https="true" auth="true"/>
<response name="success" type="view" value="FindTerm"/>
</request-map>
<request-map uri="EditTerm">
<security https="true" auth="true"/>
<response name="success" type="view" value="EditTerm"/>
</request-map>
<request-map uri="createTerm">
<security https="true" auth="true"/>
<event type="service" invoke="createTerm"/>
<response name="success" type="view" value="EditTerm"/>
<response name="error" type="view" value="EditTerm"/>
</request-map>
<request-map uri="updateTerm">
<security https="true" auth="true"/>
<event type="service" invoke="updateTerm"/>
<response name="success" type="view" value="EditTerm"/>
<response name="error" type="view" value="EditTerm"/>
</request-map>
<request-map uri="deleteTerm">
<security auth="true" https="true"/>
<event type="service" invoke="deleteTerm" />
<response name="success" type="request-redirect-noparam" value="FindTerm"/>
</request-map>
<request-map uri="LookupTerm">
<security auth="true" https="true"/>
<response name="success" type="view" value="LookupTerm"/>
</request-map>
<!-- ================ Course Requests ================= -->
<request-map uri="FindCourse">
<security https="true" auth="true"/>
<response name="success" type="view" value="FindCourse"/>
</request-map>
<request-map uri="EditCourse">
<security https="true" auth="true"/>
<response name="success" type="view" value="EditCourse"/>
</request-map>
<request-map uri="createCourse">
<security https="true" auth="true"/>
<event type="service" invoke="createCourse"/>
<response name="success" type="view" value="EditCourse"/>
<response name="error" type="view" value="EditCourse"/>
</request-map>
<request-map uri="updateCourse">
<security https="true" auth="true"/>
<event type="service" invoke="updateCourse"/>
<response name="success" type="view" value="EditCourse"/>
<response name="error" type="view" value="EditCourse"/>
</request-map>
<request-map uri="deleteCourse">
<security auth="true" https="true"/>
<event type="service" invoke="deleteCourse" />
<response name="success" type="request-redirect-noparam" value="FindCourse"/>
</request-map>
<request-map uri="LookupCourse">
<security auth="true" https="true"/>
<response name="success" type="view" value="LookupCourse"/>
</request-map>
<!-- ================ LabProject Requests ================= -->
<request-map uri="FindLabProject">
<security https="true" auth="true"/>
<response name="success" type="view" value="FindLabProject"/>
</request-map>
<request-map uri="EditLabProject">
<security https="true" auth="true"/>
<response name="success" type="view" value="EditLabProject"/>
</request-map>
<request-map uri="createLabProject">
<security https="true" auth="true"/>
<event type="service" invoke="createLabProject"/>
<response name="success" type="view" value="EditLabProject"/>
<response name="error" type="view" value="EditLabProject"/>
</request-map>
<request-map uri="updateLabProject">
<security https="true" auth="true"/>
<event type="service" invoke="updateLabProject"/>
<response name="success" type="view" value="EditLabProject"/>
<response name="error" type="view" value="EditLabProject"/>
</request-map>
<request-map uri="deleteLabProject">
<security auth="true" https="true"/>
<event type="service" invoke="deleteLabProject" />
<response name="success" type="request-redirect-noparam" value="FindLabProject"/>
</request-map>
<request-map uri="LookupLabProject">
<security auth="true" https="true"/>
<response name="success" type="view" value="LookupLabProject"/>
</request-map>
<!-- ================ LabProjectBatch Requests ================= -->
<request-map uri="FindLabProjectBatch">
<security https="true" auth="true"/>
<response name="success" type="view" value="FindLabProjectBatch"/>
</request-map>
<request-map uri="EditLabProjectBatch">
<security https="true" auth="true"/>
<response name="success" type="view" value="EditLabProjectBatch"/>
</request-map>
<request-map uri="createLabProjectBatch">
<security https="true" auth="true"/>
<event type="service" invoke="createLabProjectBatch"/>
<response name="success" type="view" value="EditLabProjectBatch"/>
<response name="error" type="view" value="EditLabProjectBatch"/>
</request-map>
<request-map uri="updateLabProjectBatch">
<security https="true" auth="true"/>
<event type="service" invoke="updateLabProjectBatch"/>
<response name="success" type="view" value="EditLabProjectBatch"/>
<response name="error" type="view" value="EditLabProjectBatch"/>
</request-map>
<request-map uri="deleteLabProjectBatch">
<security auth="true" https="true"/>
<event type="service" invoke="deleteLabProjectBatch" />
<response name="success" type="request-redirect-noparam" value="FindLabProjectBatch"/>
</request-map>
<request-map uri="LookupLabProjectBatch">
<security auth="true" https="true"/>
<response name="success" type="view" value="LookupLabProjectBatch"/>
</request-map>
<!-- ================ StuBatch Requests ================= -->
<request-map uri="FindStuBatch">
<security https="true" auth="true"/>
<response name="success" type="view" value="FindStuBatch"/>
</request-map>
<request-map uri="EditStuBatch">
<security https="true" auth="true"/>
<response name="success" type="view" value="EditStuBatch"/>
</request-map>
<request-map uri="createStuBatch">
<security https="true" auth="true"/>
<event type="service" invoke="createStuBatch"/>
<response name="success" type="view" value="EditStuBatch"/>
<response name="error" type="view" value="EditStuBatch"/>
</request-map>
<request-map uri="updateStuBatch">
<security https="true" auth="true"/>
<event type="service" invoke="updateStuBatch"/>
<response name="success" type="request-redirect" value="FindStuBatch"/>
<response name="error" type="request-redirect" value="FindStuBatch"/>
</request-map>
<request-map uri="deleteStuBatch">
<security auth="true" https="true"/>
<event type="service" invoke="deleteStuBatch" />
<response name="success" type="request-redirect-noparam" value="FindBookingInReview"/>
</request-map>
<request-map uri="AuditingStuBatch">
<security auth="true" https="true"/>
<response name="success" type="view" value="AuditingStuBatch"/>
</request-map>
<request-map uri="FindBatchForStudent">
<security auth="true" https="true"/>
<response name="success" type="view" value="FindBatchForStudent"/>
</request-map>
<request-map uri="BookingBatch">
<security https="true" auth="true"/>
<!--<event type="groovy" path="component://booking/groovyScripts/BookingBatch.groovy" invoke="BookingBatch" />-->
<event type="service" invoke="bookingBatchGroovy"/>
<response name="success" type="request-redirect-noparam" value="FindBatchForStudent"/>
</request-map>
<request-map uri="FindBookingInReview">
<security https="true" auth="true"/>
<response name="success" type="view" value="FindBookingInReview"/>
</request-map>
<request-map uri="FindMyBooking">
<security https="true" auth="true"/>
<response name="success" type="view" value="FindMyBooking"/>
</request-map>
<request-map uri="EditAuditingResult">
<security https="true" auth="true"/>
<response name="success" type="view" value="EditAuditingResult"/>
</request-map>
<request-map uri="AuditingStuBatchList">
<security https="true" auth="true"/>
<!--<event type="groovy" path="component://booking/groovyScripts/BookingBatch.groovy" invoke="BookingBatch" />-->
<event type="service" invoke="auditingStuBatchList"/>
<response name="success" type="request-redirect-noparam" value="FindStuBatch"/>
</request-map>
<request-map uri="BookingAttendanceManange">
<security auth="true" https="true"/>
<response name="success" type="view" value="BookingAttendanceManange"/>
</request-map>
<request-map uri="EditBookingAttendance">
<security auth="true" https="true"/>
<event type="service" invoke="editBookingAttendance"/>
<response name="success" type="request-redirect-noparam" value="BookingAttendanceManange"/>
</request-map>
<request-map uri="resetPasswordForStudent">
<security auth="true" https="true"/>
<event type="service" invoke="resetPassword"/>
<response name="success" type="request-redirect-noparam" value="FindStudent"/>
</request-map>
<request-map uri="resetPasswordForAdmin">
<security auth="true" https="true"/>
<event type="service" invoke="resetPassword"/>
<response name="success" type="request-redirect-noparam" value="FindStudent"/>
</request-map>
<!-- View Mappings -->
<view-map name="main" type="screen" page="component://booking/widget/booking/BookingScreens.xml#main"/>
<view-map name="FindStudent" type="screen" page="component://booking/widget/booking/StudentScreens.xml#FindStudent"/>
<view-map name="EditStudent" type="screen" page="component://booking/widget/booking/StudentScreens.xml#EditStudent"/>
<view-map name="LookupStudent" type="screen" page="component://booking/widget/booking/StudentScreens.xml#LookupStudent"/>
<view-map name="ImportStudentsPage" type="screen" page="component://booking/widget/booking/StudentScreens.xml#ImportStudentsPage"/>
<view-map name="FindTeacher" type="screen" page="component://booking/widget/booking/TeacherScreens.xml#FindTeacher"/>
<view-map name="EditTeacher" type="screen" page="component://booking/widget/booking/TeacherScreens.xml#EditTeacher"/>
<view-map name="LookupTeacher" type="screen" page="component://booking/widget/booking/TeacherScreens.xml#LookupTeacher"/>
<view-map name="FindAdmin" type="screen" page="component://booking/widget/booking/AdminScreens.xml#FindAdmin"/>
<view-map name="EditAdmin" type="screen" page="component://booking/widget/booking/AdminScreens.xml#EditAdmin"/>
<view-map name="FindTerm" type="screen" page="component://booking/widget/booking/TermScreens.xml#FindTerm"/>
<view-map name="EditTerm" type="screen" page="component://booking/widget/booking/TermScreens.xml#EditTerm"/>
<view-map name="LookupTerm" type="screen" page="component://booking/widget/booking/TermScreens.xml#LookupTerm"/>
<view-map name="FindCourse" type="screen" page="component://booking/widget/booking/CourseScreens.xml#FindCourse"/>
<view-map name="EditCourse" type="screen" page="component://booking/widget/booking/CourseScreens.xml#EditCourse"/>
<view-map name="LookupCourse" type="screen" page="component://booking/widget/booking/CourseScreens.xml#LookupCourse"/>
<view-map name="FindLabProject" type="screen" page="component://booking/widget/booking/LabProjectScreens.xml#FindLabProject"/>
<view-map name="EditLabProject" type="screen" page="component://booking/widget/booking/LabProjectScreens.xml#EditLabProject"/>
<view-map name="LookupLabProject" type="screen" page="component://booking/widget/booking/LabProjectScreens.xml#LookupLabProject"/>
<view-map name="FindLabProjectBatch" type="screen" page="component://booking/widget/booking/LabProjectBatchScreens.xml#FindLabProjectBatch"/>
<view-map name="EditLabProjectBatch" type="screen" page="component://booking/widget/booking/LabProjectBatchScreens.xml#EditLabProjectBatch"/>
<view-map name="LookupLabProjectBatch" type="screen" page="component://booking/widget/booking/LabProjectBatchScreens.xml#LookupLabProjectBatch"/>
<view-map name="FindStuBatch" type="screen" page="component://booking/widget/booking/StuBatchScreens.xml#FindStuBatch"/>
<view-map name="EditStuBatch" type="screen" page="component://booking/widget/booking/StuBatchScreens.xml#EditStuBatch"/>
<view-map name="AuditingStuBatch" type="screen" page="component://booking/widget/booking/StuBatchScreens.xml#AuditingStuBatch"/>
<view-map name="FindBatchForStudent" type="screen" page="component://booking/widget/booking/StuBatchScreens.xml#FindBatchForStudent"/>
<view-map name="FindBookingInReview" type="screen" page="component://booking/widget/booking/StuBatchScreens.xml#FindBookingInReview"/>
<view-map name="FindMyBooking" type="screen" page="component://booking/widget/booking/StuBatchScreens.xml#FindMyBooking"/>
<view-map name="EditAuditingResult" type="screen" page="component://booking/widget/booking/StuBatchScreens.xml#EditAuditingResult"/>
<view-map name="BookingAttendanceManange" type="screen" page="component://booking/widget/booking/StuBatchScreens.xml#BookingAttendanceManange"/>
</site-conf>
services.xml
<?xml version="1.0" encoding="UTF-8" ?>
<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/services.xsd">
<description>Booking Services</description>
<vendor>OFBiz</vendor>
<version>1.0</version>
<!--Student-->
<service name="createStudent" default-entity-name="Student" engine="entity-auto" invoke="create" auth="true">
<description>Create a Student</description>
<auto-attributes include="pk" mode="INOUT" optional="true"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="updateStudent" default-entity-name="Student" engine="entity-auto" invoke="update" auth="true">
<description>Update a Student</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="deleteStudent" default-entity-name="Student" engine="entity-auto" invoke="delete" auth="true">
<description>Delete a Student</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
</service>
<!--Teacher-->
<service name="createTeacher" default-entity-name="Teacher" engine="entity-auto" invoke="create" auth="true">
<description>Create a Teacher</description>
<auto-attributes include="pk" mode="INOUT" optional="true"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="updateTeacher" default-entity-name="Teacher" engine="entity-auto" invoke="update" auth="true">
<description>Update a Teacher</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="deleteTeacher" default-entity-name="Teacher" engine="entity-auto" invoke="delete" auth="true">
<description>Delete a Teacher</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
</service>
<!--Admin-->
<service name="createAdmin" default-entity-name="Admin" engine="entity-auto" invoke="create" auth="true">
<description>Create a Admin</description>
<auto-attributes include="pk" mode="INOUT" optional="true"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="updateAdmin" default-entity-name="Admin" engine="entity-auto" invoke="update" auth="true">
<description>Update a Admin</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="deleteAdmin" default-entity-name="Admin" engine="entity-auto" invoke="delete" auth="true">
<description>Delete a Admin</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
</service>
<!--Term-->
<service name="createTerm" default-entity-name="Term" engine="entity-auto" invoke="create" auth="true">
<description>Create a Term</description>
<auto-attributes include="pk" mode="INOUT" optional="true"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
<override name="beginTime" optional="false"/>
</service>
<service name="updateTerm" default-entity-name="Term" engine="entity-auto" invoke="update" auth="true">
<description>Update a Term</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
<!--<override name="endTime" optional="false"/>-->
</service>
<service name="deleteTerm" default-entity-name="Term" engine="entity-auto" invoke="delete" auth="true">
<description>Delete a Term</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
</service>
<!--Course-->
<service name="createCourse" default-entity-name="Course" engine="entity-auto" invoke="create" auth="true">
<description>Create a Course</description>
<auto-attributes include="pk" mode="INOUT" optional="true"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="updateCourse" default-entity-name="Course" engine="entity-auto" invoke="update" auth="true">
<description>Update a Course</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="deleteCourse" default-entity-name="Course" engine="entity-auto" invoke="delete" auth="true">
<description>Delete a Course</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
</service>
<!--LabProject-->
<service name="createLabProject" default-entity-name="LabProject" engine="entity-auto" invoke="create" auth="true">
<description>Create a LabProject</description>
<auto-attributes include="pk" mode="INOUT" optional="true"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="updateLabProject" default-entity-name="LabProject" engine="entity-auto" invoke="update" auth="true">
<description>Update a LabProject</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="deleteLabProject" default-entity-name="LabProject" engine="entity-auto" invoke="delete" auth="true">
<description>Delete a LabProject</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
</service>
<!--LabProjectBatch-->
<service name="createLabProjectBatch" default-entity-name="LabProjectBatch" engine="entity-auto" invoke="create" auth="true">
<description>Create a LabProjectBatch</description>
<auto-attributes include="pk" mode="INOUT" optional="true"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="updateLabProjectBatch" default-entity-name="LabProjectBatch" engine="entity-auto" invoke="update" auth="true">
<description>Update a LabProjectBatch</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="deleteLabProjectBatch" default-entity-name="LabProjectBatch" engine="entity-auto" invoke="delete" auth="true">
<description>Delete a LabProjectBatch</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
</service>
<!--StuBatch-->
<service name="createStuBatch" default-entity-name="StuBatch" engine="entity-auto" invoke="create" auth="true">
<description>Create a StuBatch</description>
<auto-attributes include="pk" mode="INOUT" optional="true"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="updateStuBatch" default-entity-name="StuBatch" engine="entity-auto" invoke="update" auth="true">
<description>Update a StuBatch</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="deleteStuBatch" default-entity-name="StuBatch" engine="entity-auto" invoke="delete" auth="true">
<description>Delete a StuBatch</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
</service>
<service name="bookingBatchGroovy" engine="groovy" location="component://booking/groovyScripts/BookingBatch.groovy" invoke="bookingBatch">
<description>Test Groovy Script Service</description>
<attribute name="batchId" type="String" mode="IN" optional="false"/>
<attribute name="result" type="String" mode="OUT"/>
<attribute name="proName" type="String" mode="IN" optional="true"/>
</service>
<service name="auditingStuBatchList" engine="groovy" location="component://booking/groovyScripts/BookingBatch.groovy" invoke="auditingStuBatchList">
<description>Test Groovy Script Service</description>
<attribute name="stuBatchIds" type="List" mode="IN" optional="true"/>
<attribute name="result" type="String" mode="IN" optional="true"/>
<attribute name="reason" type="String" mode="IN" optional="true"/>
<!--<attribute name="resultMsg" type="String" mode="OUT"/>-->
</service>
<service name="editBookingAttendance" engine="groovy" location="component://booking/groovyScripts/BookingBatch.groovy" invoke="editBookingAttendance">
<description>批量考勤确认</description>
<attribute name="stuBatchIds" type="List" mode="IN" optional="true"/>
<attribute name="attendance" type="String" mode="IN" optional="true"/>
<!--<attribute name="resultMsg" type="String" mode="OUT"/>-->
</service>
<service name="addUserLogin" engine="groovy" location="component://booking/groovyScripts/UserLogin.groovy" invoke="addUserLogin">
<description>新增登录账户</description>
<attribute name="userLoginId" type="String" mode="IN" optional="true"/>
<attribute name="name" type="String" mode="IN" optional="true"/>
<attribute name="role" type="String" mode="IN" optional="true"/>
<attribute name="result" type="String" mode="OUT"/>
</service>
<service name="resetPassword" engine="groovy" location="component://booking/groovyScripts/UserLogin.groovy" invoke="resetPassword">
<description>重置账户密码</description>
<attribute name="userLoginId" type="String" mode="IN" optional="true"/>
<attribute name="result" type="String" mode="OUT"/>
</service>
<service name="deleteUserLogin" engine="groovy" location="component://booking/groovyScripts/UserLogin.groovy" invoke="deleteUserLogin">
<description>删除账户</description>
<attribute name="userLoginId" type="String" mode="IN" optional="true"/>
<attribute name="result" type="String" mode="OUT"/>
</service>
<service name="updateUserLoginName" engine="groovy" location="component://booking/groovyScripts/UserLogin.groovy" invoke="updateUserLoginName">
<description>修改账户名称</description>
<attribute name="userLoginId" type="String" mode="IN" optional="true"/>
<attribute name="firstname" type="String" mode="IN" optional="true"/>
<attribute name="result" type="String" mode="OUT"/>
</service>
<service name="importStudents" engine="groovy" location="component://booking/groovyScripts/UserLogin.groovy" invoke="importStudents">
<description>批量导入学生信息</description>
<attribute name="userLoginId" type="String" mode="IN" optional="true"/>
<attribute name="result" type="String" mode="OUT"/>
</service>
</services>
secas.xml
<?xml version="1.0" encoding="UTF-8"?>
<service-eca xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/service-eca.xsd">
<!--
<eca service="createStudent" event="commit">
<set field-name="userLoginId" value="$(stuId)"/>
<set field-name="userLoginId" env-name="stuId" />
<set field-name="role" env-name="student" />
<action service="resetPassword" mode="sync"/>
</eca>
-->
</service-eca>
eecas.xml
<?xml version="1.0" encoding="UTF-8"?>
<entity-eca xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entity-eca.xsd">
<!-- Inventory Issue ECAs for Immediately Fulfilled Booking -->
<eca entity="Student" operation="create" event="return">
<set field-name="userLoginId" env-name="stuId" />
<set field-name="role" value="bookingStudent" />
<action service="addUserLogin" mode="sync"/>
</eca>
<eca entity="Student" operation="remove" event="return">
<set field-name="userLoginId" env-name="stuId" />
<action service="deleteUserLogin" mode="sync"/>
</eca>
<eca entity="Student" operation="store" event="return">
<set field-name="userLoginId" env-name="stuId" />
<set field-name="firstname" env-name="name" />
<action service="updateUserLoginName" mode="sync"/>
</eca>
<eca entity="Admin" operation="create" event="return">
<set field-name="userLoginId" env-name="adminId" />
<set field-name="role" value="bookingAdmin" />
<action service="addUserLogin" mode="sync"/>
</eca>
<eca entity="Admin" operation="remove" event="return">
<set field-name="userLoginId" env-name="adminId" />
<action service="deleteUserLogin" mode="sync"/>
</eca>
<eca entity="Admin" operation="store" event="return">
<set field-name="userLoginId" env-name="adminId" />
<set field-name="firstname" env-name="name" />
<action service="updateUserLoginName" mode="sync"/>
</eca>
</entity-eca>
entitymodel.xml
<?xml version="1.0" encoding="UTF-8"?>
<entitymodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entitymodel.xsd">
<!-- ========================================================= -->
<!-- ======================== Defaults ======================= -->
<!-- ========================================================= -->
<title>Entity of an Apache OFBiz Component</title>
<description>None</description>
<version>1.0</version>
<default-resource-name>BookingEntityLabels</default-resource-name>
<entity entity-name="Student" package-name="org.apache.ofbiz.booking.student" title="学生表">
<field name="stuId" type="id-ne"><description>primary sequenced ID</description></field>
<field name="name" type="name"></field>
<field name="stuNumber" type="name"></field>
<field name="class" type="name"></field>
<field name="sex" type="name"></field>
<prim-key field="stuId"/>
</entity>
<entity entity-name="Teacher" package-name="org.apache.ofbiz.booking.teacher" title="教师表">
<field name="tchId" type="id-ne"><description>primary sequenced ID</description></field>
<field name="name" type="name"></field>
<field name="deptName" type="name"></field>
<field name="sex" type="name"></field>
<prim-key field="tchId"/>
</entity>
<entity entity-name="Admin" package-name="org.apache.ofbiz.booking.admin" title="管理员表">
<field name="adminId" type="id-ne"><description>primary sequenced ID</description></field>
<field name="name" type="name"></field>
<field name="deptName" type="name"></field>
<field name="sex" type="name"></field>
<prim-key field="adminId"/>
</entity>
<entity entity-name="Term" package-name="org.apache.ofbiz.booking.term" title="学期表">
<field name="termName" type="id-ne"><description>primary sequenced ID</description></field>
<field name="beginTime" type="date"></field>
<field name="endTime" type="date"></field>
<field name="used" type="name"></field>
<prim-key field="termName"/>
</entity>
<entity entity-name="Course" package-name="org.apache.ofbiz.booking.course" title="课程表">
<field name="courseId" type="id-ne"><description>primary sequenced ID</description></field>
<field name="courseName" type="name"></field>
<prim-key field="courseId"/>
</entity>
<entity entity-name="LabProject" package-name="org.apache.ofbiz.booking.project" title="实验项目表">
<field name="proId" type="id-ne"><description>primary sequenced ID</description></field>
<field name="proName" type="name"></field>
<field name="courseId" type="id-ne"></field>
<field name="termName" type="id-ne"></field>
<prim-key field="proId"/>
<relation type="one" fk-name="FK_LabProject_Course" rel-entity-name="Course">
<key-map field-name="courseId"/>
</relation>
<relation type="one" fk-name="FK_LabProject_Term" rel-entity-name="Term">
<key-map field-name="termName"/>
</relation>
</entity>
<entity entity-name="LabProjectBatch" package-name="org.apache.ofbiz.booking.projectbatch" title="实验项目批次表">
<field name="batchId" type="id-ne"><description>primary sequenced ID</description></field>
<field name="proId" type="id-ne"></field>
<field name="tchId" type="id-ne"></field>
<field name="address" type="description"></field>
<field name="capacity" type="numeric"></field>
<field name="date" type="date"></field>
<field name="classNO" type="name"></field>
<field name="asured" type="name"></field>
<prim-key field="batchId"/>
<relation type="one" fk-name="FK_ProjectBatch_LabProject" rel-entity-name="LabProject">
<key-map field-name="proId"/>
</relation>
<relation type="one" fk-name="FK_ProjectBatch_Teacher" rel-entity-name="Teacher">
<key-map field-name="tchId"/>
</relation>
</entity>
<entity entity-name="StuBatch" package-name="org.apache.ofbiz.booking.stubatch" title="学生预约实验项目批次申请表">
<field name="stuId" type="id-ne"><description>primary sequenced ID</description></field>
<field name="batchId" type="id-ne"></field>
<field name="date" type="date-time"></field>
<field name="result" type="name"></field>
<field name="reason" type="long-varchar"></field>
<field name="attendance" type="name"></field>
<prim-key field="stuId"/>
<prim-key field="batchId"/>
<prim-key field="date"/>
<relation type="one" fk-name="FK_StuBatch_Student" rel-entity-name="Student">
<key-map field-name="stuId"/>
</relation>
<relation type="one" fk-name="FK_StuBatch_LabProjectBatch" rel-entity-name="LabProjectBatch">
<key-map field-name="batchId"/>
</relation>
</entity>
</entitymodel>
entitymodel_view.xml
<?xml version="1.0" encoding="UTF-8"?>
<entitymodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entitymodel.xsd">
<!-- ========================================================= -->
<!-- ======================== Defaults ======================= -->
<!-- ========================================================= -->
<title>Entity of an Apache OFBiz Component</title>
<description>None</description>
<version>1.0</version>
<!-- ========================================================= -->
<!-- org.apache.ofbiz.booking.LabProject -->
<!-- ========================================================= -->
<view-entity entity-name="LabProjectAndCourseAndTerm"
package-name="org.apache.ofbiz.booking.labproject"
never-cache="true"
title="LabProject And Course And Term View Entity">
<member-entity entity-alias="LP" entity-name="LabProject"/>
<member-entity entity-alias="CS" entity-name="Course"/>
<member-entity entity-alias="TM" entity-name="Term"/>
<alias entity-alias="LP" name="proId"/>
<alias entity-alias="LP" name="proName"/>
<alias entity-alias="LP" name="courseId" />
<alias entity-alias="LP" name="termName"/>
<alias entity-alias="CS" name="courseName"/>
<alias entity-alias="TM" name="beginTime"/>
<alias entity-alias="TM" name="endTime"/>
<alias entity-alias="TM" name="used"/>
<view-link entity-alias="LP" rel-entity-alias="CS" rel-optional="true">
<key-map field-name="courseId"/>
</view-link>
<view-link entity-alias="LP" rel-entity-alias="TM" rel-optional="true">
<key-map field-name="termName"/>
</view-link>
<relation type="one-nofk" rel-entity-name="Course" >
<key-map field-name="courseId"/>
</relation>
</view-entity>
<view-entity entity-name="StuBatchAndBookingPassNums"
package-name="org.apache.ofbiz.booking.stubatch"
never-cache="true"
title="学生预约审核通过统计信息">
<member-entity entity-alias="SB" entity-name="StuBatch"/>
<alias name="batchId" entity-alias="SB" group-by="true"/>
<alias entity-alias="SB" name="bookingPassNums" function="count" field="stuId" />
<entity-condition>
<condition-expr entity-alias="SB" field-name="result" operator="equals" value="Y"/>
</entity-condition>
</view-entity>
<view-entity entity-name="StuBatchAndBookingTotalNums"
package-name="org.apache.ofbiz.booking.stubatch"
never-cache="true"
title="项目批准预约学生总数统计">
<member-entity entity-alias="SB" entity-name="StuBatch"/>
<alias name="batchId" entity-alias="SB" group-by="true"/>
<alias entity-alias="SB" name="bookingTotalNums" function="count" field="stuId" />
</view-entity>
<view-entity entity-name="LabProjectBatchAndLabProjectAndTeacher"
package-name="org.apache.ofbiz.booking.labproject"
never-cache="true"
title="LabProject And Course And Term View Entity">
<member-entity entity-alias="LPB" entity-name="LabProjectBatch"/>
<member-entity entity-alias="LP" entity-name="LabProject"/>
<member-entity entity-alias="T" entity-name="Teacher"/>
<member-entity entity-alias="CS" entity-name="Course"/>
<member-entity entity-alias="BTN" entity-name="StuBatchAndBookingTotalNums"/>
<member-entity entity-alias="BPN" entity-name="StuBatchAndBookingPassNums"/>
<alias name="batchId" entity-alias="LPB" />
<alias name="proId" entity-alias="LPB" />
<alias name="tchId" entity-alias="LPB"/>
<alias name="address" entity-alias="LPB" />
<alias name="capacity" entity-alias="LPB"/>
<alias name="date" entity-alias="LPB" />
<alias name="classNO" entity-alias="LPB" />
<alias name="asured" entity-alias="LPB"/>
<alias entity-alias="LP" name="proName"/>
<alias entity-alias="LP" name="courseId" />
<alias entity-alias="LP" name="termName"/>
<alias entity-alias="CS" name="courseName"/>
<alias entity-alias="T" name="tchName" field="name"/>
<alias entity-alias="BTN" name="bookingTotalNums" />
<alias entity-alias="BPN" name="bookingPassNums" />
<view-link entity-alias="LPB" rel-entity-alias="LP" rel-optional="true">
<key-map field-name="proId"/>
</view-link>
<view-link entity-alias="LP" rel-entity-alias="CS" rel-optional="true">
<key-map field-name="courseId"/>
</view-link>
<view-link entity-alias="LPB" rel-entity-alias="T" rel-optional="true">
<key-map field-name="tchId"/>
</view-link>
<view-link entity-alias="LPB" rel-entity-alias="BTN" rel-optional="true">
<key-map field-name="batchId"/>
</view-link>
<view-link entity-alias="LPB" rel-entity-alias="BPN" rel-optional="true">
<key-map field-name="batchId"/>
</view-link>
<relation type="one-nofk" rel-entity-name="LabProject">
<key-map field-name="proId"/>
</relation>
<relation type="one-nofk" rel-entity-name="Teacher">
<key-map field-name="tchId"/>
</relation>
</view-entity>
<view-entity entity-name="StuBatchAndLabProBach"
package-name="org.apache.ofbiz.booking.labproject"
never-cache="true"
title="LabProject And Course And Term View Entity">
<member-entity entity-alias="SB" entity-name="StuBatch"/>
<member-entity entity-alias="LP" entity-name="LabProjectBatchAndLabProjectAndTeacher"/>
<alias-all entity-alias="LP"/>
<alias name="stuId" entity-alias="SB" />
<alias name="applyDate" entity-alias="SB" field="date"></alias>
<alias name="result" entity-alias="SB"></alias>
<alias name="reason" entity-alias="SB"></alias>
<alias name="attendance" entity-alias="SB"></alias>
<view-link entity-alias="SB" rel-entity-alias="LP" rel-optional="true">
<key-map field-name="batchId"/>
</view-link>
<relation type="one-nofk" rel-entity-name="Student">
<key-map field-name="stuId"/>
</relation>
<relation type="one-nofk" rel-entity-name="LabProjectBatchAndLabProjectAndTeacher">
<key-map field-name="batchId"/>
</relation>
</view-entity>
</entitymodel>
BookingUiLabels.xml
<?xml version="1.0" encoding="UTF-8"?>
<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-properties.xsd">
<property key="BookingCompanyName">
<value xml:>xnxy</value>
<value xml:>湘南学院</value>
</property>
<property key="BookingResetPassword">
<value xml:>Reset Password</value>
<value xml:>重置密码</value>
</property>
<!--菜单国际化-->
<property key="BookingApplication">
<value xml:>Booking Application</value>
<value xml:>预约管理应用</value>
</property>
<property key="StuInfoManange">
<value xml:>StuInfoManange</value>
<value xml:>学生信息管理</value>
</property>
<property key="TchInfoManange">
<value xml:>TchInfoManange</value>
<value xml:>教师信息管理</value>
</property>
<property key="AdminManange">
<value xml:>AdminManange</value>
<value xml:>管理员信息管理</value>
</property>
<property key="LabInfoManange">
<value xml:>LabInfoManange</value>
<value xml:>实验室管理</value>
</property>
<property key="TermManange">
<value xml:>TermManange</value>
<value xml:>学期管理</value>
</property>
<property key="LabProjectManange">
<value xml:>LabProjectManange</value>
<value xml:>实验项目管理</value>
</property>
<property key="LabProjectBatchManange">
<value xml:>LabProjectBatchManange</value>
<value xml:>实验项目批次管理</value>
</property>
<property key="CourseManange">
<value xml:>CourseManange</value>
<value xml:>课程管理</value>
</property>
<property key="StuBatchManange">
<value xml:>StuBatchManange</value>
<value xml:>学生预约管理</value>
</property>
<property key="BookingAttendanceManange">
<value xml:>Booking Attendance Manange</value>
<value xml:>考勤管理</value>
</property>
<property key="BookingStuBatchAttendance">
<value xml:>BookingStuBatchAttendance</value>
<value xml:>考勤情况</value>
</property>
<property key="BookingStuBatchAttendanceY">
<value xml:>BookingStuBatchAttendanceY</value>
<value xml:>签到</value>
</property>
<property key="BookingStuBatchAttendanceN">
<value xml:>BookingStuBatchAttendanceN</value>
<value xml:>未签到</value>
</property>
<property key="BookingStuBatchAttendanceNULL">
<value xml:>BookingStuBatchAttendanceNULL</value>
<value xml:>待考勤</value>
</property>
<property key="EditBookingAttendanceY">
<value xml:>EditBookingAttendanceY</value>
<value xml:>批量签到确认</value>
</property>
<property key="EditBookingAttendanceN">
<value xml:>EditBookingAttendanceN</value>
<value xml:>批量缺勤确认</value>
</property>
<property key="BookingLab">
<value xml:>BookingLab</value>
<value xml:>预约实验室</value>
</property>
<property key="InReview">
<value xml:>InReview</value>
<value xml:>待审核的预约</value>
</property>
<property key="MyBooking">
<value xml:>MyBooking</value>
<value xml:>我的预约</value>
</property>
<property key="LabProjectBatchConfirm">
<value xml:>LabProjectBatchConfirm</value>
<value xml:>实验项目批次确认</value>
</property>
<property key="LabProjectBatchCancel">
<value xml:>LabProjectBatchCancel</value>
<value xml:>实验项目批次取消</value>
</property>
<property key="FindBookingStuInfo">
<value xml:>FindBookingStuInfo</value>
<value xml:>浏览预约学生信息</value>
</property>
<property key="FindCourseTable">
<value xml:>FindCourseTable</value>
<value xml:>浏览实验课课表</value>
</property>
<!--菜单国际化-->
<property key="BookingSex">
<value xml:>Sex</value>
<value xml:>性别</value>
</property>
<property key="BookingName">
<value xml:>name</value>
<value xml:>姓名</value>
</property>
<!--学期管理模块-->
<property key="EditTerm">
<value xml:>Create Term</value>
<value xml:>添加学期</value>
</property>
<property key="TermTermName">
<value xml:>TermName</value>
<value xml:>学期名称</value>
</property>
<property key="TermBeginTime">
<value xml:>BeginTime</value>
<value xml:>开始日期</value>
</property>
<property key="TermEndTime">
<value xml:>EndTime</value>
<value xml:>终止日期</value>
</property>
<property key="TermUsed">
<value xml:>Used</value>
<value xml:>是否可用</value>
</property>
<property key="PageTitleLookupTerm">
<value xml:>Find Term</value>
<value xml:>查找学期</value>
</property>
<property key="BookingNotModification">
<value xml:>BookingNotModification</value>
<value xml:>不能修改</value>
</property>
<!--学生管理模块-->
<property key="EditStudent">
<value xml:>Create Student</value>
<value xml:>添加学生</value>
</property>
<property key="ImportStudents">
<value xml:>ImportStudents</value>
<value xml:>批量导入学生</value>
</property>
<property key="BookingDownloadStudentTemplet">
<value xml:>Download Templet</value>
<value xml:>下载模板</value>
</property>
<property key="BookingStudentStuId">
<value xml:>Student Id</value>
<value xml:>学生标识ID</value>
</property>
<property key="BookingStudentStuNumber">
<value xml:>stuNumber</value>
<value xml:>学号</value>
</property>
<property key="BookingStudentClass">
<value xml:>class</value>
<value xml:>班级</value>
</property>
<property key="BookingStudentName">
<value xml:>Student Name</value>
<value xml:>学生姓名</value>
</property>
<!--教师管理模块-->
<property key="EditTeacher">
<value xml:>Create Teacher</value>
<value xml:>添加教师</value>
</property>
<property key="BookingTeacherTchId">
<value xml:>Teacher Id</value>
<value xml:>教师标识ID</value>
</property>
<property key="BookingTeacherDeptName">
<value xml:>Dept Name</value>
<value xml:>所属学院</value>
</property>
<property key="BookingTeacherName">
<value xml:>Teacher Name</value>
<value xml:>教师姓名</value>
</property>
<property key="PageTitleLookupTeacher">
<value xml:>Lookup Teacher</value>
<value xml:>查找教师</value>
</property>
<!--管理员信息管理模块-->
<property key="EditAdmin">
<value xml:>Create Admin</value>
<value xml:>添加管理员</value>
</property>
<property key="BookingAdminId">
<value xml:>Admin Id</value>
<value xml:>管理员标识ID</value>
</property>
<property key="BookingAdminDeptName">
<value xml:>Dept Name</value>
<value xml:>所属学院</value>
</property>
<property key="BookingAdminName">
<value xml:>Admin Name</value>
<value xml:>管理员姓名</value>
</property>
<!--课程管理模块-->
<property key="BookingCourseId">
<value xml:>Course Id</value>
<value xml:>课程ID</value>
</property>
<property key="EditCourse">
<value xml:>Create Course</value>
<value xml:>添加课程</value>
</property>
<property key="BookingCourseName">
<value xml:>Course Name</value>
<value xml:>课程名称</value>
</property>
<property key="PageTitleLookupCourse">
<value xml:>Find Course</value>
<value xml:>查找课程</value>
</property>
<!--实验项目管理模块-->
<property key="EditLabProject">
<value xml:>LabProject</value>
<value xml:>添加实验项目</value>
</property>
<property key="BookingLabProjectId">
<value xml:>LabProject ID</value>
<value xml:>实验项目Id</value>
</property>
<property key="BookingLabProjectName">
<value xml:>LabProject Name</value>
<value xml:>实验项目名称</value>
</property>
<property key="PageTitleLookupLabProject">
<value xml:>Lookup LabProject</value>
<value xml:>查找实验项目</value>
</property>
<!--实验项目批次管理模块-->
<property key="EditLabProjectBatch">
<value xml:>Create LabProjectBatch</value>
<value xml:>添加实验项目批次</value>
</property>
<property key="BookingLabProjectBatchId">
<value xml:>LabProjectBatch ID</value>
<value xml:>实验项目批次Id</value>
</property>
<property key="BookingLabProjectBatchAddress">
<value xml:>Address</value>
<value xml:>实验地点</value>
</property>
<property key="BookingLabProjectBatchCapacity">
<value xml:>Capacity</value>
<value xml:>容纳人数</value>
</property>
<property key="BookingLabProjectBatchDate">
<value xml:>LabProject Date</value>
<value xml:>实验日期</value>
</property>
<property key="BookingLabProjectBatchClassNO">
<value xml:>Class NO.</value>
<value xml:>节次</value>
</property>
<property key="BookingLabProjectBatchAsured">
<value xml:>Asured</value>
<value xml:>是否确认</value>
</property>
<property key="BookingTotalNums">
<value xml:>total nums</value>
<value xml:>已预约人数</value>
</property>
<property key="BookingPassNums">
<value xml:>pass nums</value>
<value xml:>预约通过人数</value>
</property>
<!--学生预约申请管理模块-->
<property key="BookingStuBatchAuditing">
<value xml:>Auditing</value>
<value xml:>审核</value>
</property>
<property key="BookingStuBatchDate">
<value xml:>Apply Time</value>
<value xml:>申请时间</value>
</property>
<property key="BookingStuBatchResult">
<value xml:>Apply Time</value>
<value xml:>审核结果</value>
</property>
<property key="BookingStuBatchReason">
<value xml:>Reason</value>
<value xml:>原因</value>
</property>
<property key="BookingStuBatchResultY">
<value xml:>pass</value>
<value xml:>通过</value>
</property>
<property key="BookingStuBatchResultN">
<value xml:>refuse</value>
<value xml:>拒绝</value>
</property>
<property key="BookingStuBatchResultNULL">
<value xml:></value>
<value xml:>审核中</value>
</property>
<property key="BookingBooking">
<value xml:>Booking</value>
<value xml:>预约</value>
</property>
<property key="BookingBookingSuccess">
<value xml:>Booking Success</value>
<value xml:>预约成功</value>
</property>
<property key="BookingBookingCancel">
<value xml:>Booking Cancel</value>
<value xml:>取消预约</value>
</property>
<property key="AuditingStuBatchList">
<value xml:>Auditing Batch</value>
<value xml:>批量审核</value>
</property>
</resource>
CommonScreens.xml
<?xml version="1.0" encoding="UTF-8"?>
<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://ofbiz.apache.org/Widget-Screen" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Screen http://ofbiz.apache.org/dtds/widget-screen.xsd">
<screen name="main-decorator">
<section>
<actions>
<!-- base/top/specific map first, then more common map added for shared labels -->
<property-map resource="BookingUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
<set field="layoutSettings.companyName" from-field="uiLabelMap.BookingCompanyName" global="true"/>
<set field="layoutSettings.companySubtitle" from-field="uiLabelMap.BookingCompanySubtitle" global="true"/>
<set field="activeApp" value="booking" global="true"/>
<set field="applicationMenuName" value="BookingAppBar" global="true"/>
<set field="applicationMenuLocation" value="component://booking/widget/booking/BookingMenus.xml" global="true"/>
<set field="applicationTitle" value="${uiLabelMap.BookingApplication}" global="true"/>
</actions>
<widgets>
<section>
<condition>
<if-has-permission permission="BOOKING" action="_VIEW"/>
</condition>
<actions>
<!-- <set field="layoutSettings.javaScripts[]" value="/example/js/ExamplePushNotifications.js" global="true"/>-->
</actions>
</section>
<include-screen name="ApplicationDecorator" location="component://commonext/widget/CommonScreens.xml"/>
</widgets>
</section>
</screen>
<screen name="CommonBookingDecorator">
<section>
<widgets>
<decorator-screen name="main-decorator">
<decorator-section name="body">
<section>
<condition>
<if-has-permission permission="BOOKING" action="_VIEW"/>
</condition>
<widgets>
<decorator-section-include name="body"/>
</widgets>
<fail-widgets>
<label style="h3">${uiLabelMap.BookingViewPermissionError}</label>
</fail-widgets>
</section>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="FindScreenDecorator">
<section>
<widgets>
<section>
<condition>
<if-empty field="titleProperty"/>
</condition>
<widgets>
<container style="page-title"><label text="${title}"></label></container>
</widgets>
<fail-widgets>
<container style="page-title"><label text="${uiLabelMap[titleProperty]}"></label></container>
</fail-widgets>
</section>
<decorator-section-include name="menu-bar"/>
<container style="clear"/>
<screenlet id="searchOptions" name="findScreenlet" collapsible="true" title="${uiLabelMap.CommonSearchOptions}">
<container id="search-options">
<decorator-section-include name="search-options" />
</container>
</screenlet>
<screenlet padded="false">
<label style="h3" text="${uiLabelMap.CommonSearchResults}"/>
<container id="search-results">
<decorator-section-include name="search-results"/>
</container>
</screenlet>
</widgets>
</section>
</screen>
<screen name="FindNoSearchScreenDecorator">
<section>
<widgets>
<section>
<condition>
<if-empty field="titleProperty"/>
</condition>
<widgets>
<container style="page-title"><label text="${title}"></label></container>
</widgets>
<fail-widgets>
<container style="page-title"><label text="${uiLabelMap[titleProperty]}"></label></container>
</fail-widgets>
</section>
<decorator-section-include name="menu-bar"/>
<container style="clear"/>
<screenlet padded="false">
<container id="search-results">
<decorator-section-include name="search-results"/>
</container>
</screenlet>
</widgets>
</section>
</screen>
</screens>
BookingMenus.xml
<?xml version="1.0" encoding="UTF-8"?>
<menus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://ofbiz.apache.org/Widget-Menu" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Menu http://ofbiz.apache.org/dtds/widget-menu.xsd">
<menu name="BookingAppBar" title="${uiLabelMap.BookingApplication}" extends="CommonAppBarMenu" extends-resource="component://common/widget/CommonMenus.xml">
<!--管理员模块-->
<menu-item name="StuInfoManange" title="${uiLabelMap.StuInfoManange}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_StuInfoManange_VIEW"/>
</or>
</condition>
<link target="FindStudent"/>
</menu-item>
<menu-item name="TchInfoManange" title="${uiLabelMap.TchInfoManange}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_TchInfoManange_VIEW"/>
</or>
</condition>
<link target="FindTeacher"/>
</menu-item>
<menu-item name="AdminManange" title="${uiLabelMap.AdminManange}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_AdminManange_VIEW"/>
</or>
</condition>
<link target="FindAdmin"/>
</menu-item>
<menu-item name="TermManange" title="${uiLabelMap.TermManange}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_TermManange_VIEW"/>
</or>
</condition>
<link target="FindTerm"/>
</menu-item>
<menu-item name="CourseManange" title="${uiLabelMap.CourseManange}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_CourseManange_VIEW"/>
</or>
</condition>
<link target="FindCourse"/>
</menu-item>
<menu-item name="LabProjectManange" title="${uiLabelMap.LabProjectManange}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_LabProjectManange_VIEW"/>
</or>
</condition>
<link target="FindLabProject"/>
</menu-item>
<menu-item name="LabProjectBatchManange" title="${uiLabelMap.LabProjectBatchManange}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_LabProjectBatchManange_VIEW"/>
</or>
</condition>
<link target="FindLabProjectBatch"/>
</menu-item>
<menu-item name="StuBatchManange" title="${uiLabelMap.StuBatchManange}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_StuBookingManange_VIEW"/>
</or>
</condition>
<link target="FindStuBatch"/>
</menu-item>
<menu-item name="BookingAttendanceManange" title="${uiLabelMap.BookingAttendanceManange}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_BookingAttendanceManange_VIEW"/>
</or>
</condition>
<link target="BookingAttendanceManange"/>
</menu-item>
<!--学生模块-->
<menu-item name="BookingLab" title="${uiLabelMap.BookingLab}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_BookingLab_VIEW"/>
</or>
</condition>
<link target="FindBatchForStudent"/>
</menu-item>
<menu-item name="InReview" title="${uiLabelMap.InReview}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_InReview_VIEW"/>
</or>
</condition>
<link target="FindBookingInReview"/>
</menu-item>
<menu-item name="MyBooking" title="${uiLabelMap.MyBooking}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_MyBooking_VIEW"/>
</or>
</condition>
<link target="FindMyBooking"/>
</menu-item>
<!--教师模块-->
<!--
<menu-item name="LabProjectBatchConfirm" title="${uiLabelMap.LabProjectBatchConfirm}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_LabProjectBatchConfirm_VIEW"/>
</or>
</condition>
<link target="FindBookedLabProjectBatch"/>
</menu-item>
<menu-item name="LabProjectBatchCancel" title="${uiLabelMap.LabProjectBatchCancel}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_LabProjectBatchCancel_VIEW"/>
</or>
</condition>
<link target="FindConfirmedLabProjectBatch"/>
</menu-item>
<menu-item name="FindBookingStuInfo" title="${uiLabelMap.FindBookingStuInfo}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_FindBookingStuInfo_VIEW"/>
</or>
</condition>
<link target="FindBookingStuInfo"/>
</menu-item>
<menu-item name="FindCourseTable" title="${uiLabelMap.FindCourseTable}">
<condition>
<or>
<if-has-permission permission="BOOKING" action="_ADMIN"/>
<if-has-permission permission="BOOKING" action="_FindBookingStuInfo_VIEW"/>
</or>
</condition>
<link target="FindCourseTable"/>
</menu-item>
-->
</menu>
</menus>
返回导航页