<?xml version="1.0"?>

<OBJECTS    name="">

    <NODE   name="UI_Factories::Performa">
        
        <NODE   name="Performa" factory="Participant"   class="oneit.servlets.jsp.ui.DefaultUICustomiser">

            <!-- <TOPMENU    name="MENU.TEST_ANALYSIS"   desc="Test Analysis"    sortOrder="100" factory="Participant"   class="oneit.servlets.jsp.ui.DefaultUICustomiser$Element"   
                        link="/extensions/performa/testAnalysis.jsp"/> -->
            <CHILD  name="Performa.Customers"               desc="Customers"                sortOrder="10"  toplevel="ADMIN"    priv="admin"    link="/extensions/performa/customers.jsp"                  factory="Participant"   class="oneit.servlets.jsp.ui.DefaultUICustomiser$Element"   />
            <CHILD  name="Performa.SetupPlans"              desc="Setup Plans"              sortOrder="10"  toplevel="ADMIN"    priv="admin"    link="/extensions/performa/setupPlans.jsp"                  factory="Participant"   class="oneit.servlets.jsp.ui.DefaultUICustomiser$Element"   />
            <CHILD  name="Performa.MessageTemplate"         desc="Message Template"         sortOrder="20"  toplevel="ADMIN"    priv="admin"    link="/extensions/performa/listMessageTemplate.jsp"         factory="Participant"   class="oneit.servlets.jsp.ui.DefaultUICustomiser$Element"   />
            <CHILD  name="Performa.NotificationTemplate"    desc="Notification Template"    sortOrder="30"  toplevel="ADMIN"    priv="admin"    link="/extensions/performa/listNotificationTemplates.jsp"   factory="Participant"   class="oneit.servlets.jsp.ui.DefaultUICustomiser$Element"   />
        </NODE>
        
    </NODE>
    
    <NODE name="StorageMappings::Performa">
        <MAP code="TestInput"       class="performa.orm.TestInput"      />
        <MAP code="JobApplication"  class="performa.orm.JobApplication" />
        <MAP code="Candidate"       class="performa.orm.Candidate"      />
        <MAP code="CompanyUser"     class="performa.orm.CompanyUser"    />
        <MAP code="Client"          class="performa.orm.Client"         />
        <MAP code="Company"         class="performa.orm.Company"        />
        <MAP code="HiringTeam"      class="performa.orm.HiringTeam"     />
        <MAP code="ChatAttachment"  class="performa.orm.ChatAttachment" />
    </NODE>
    
    <NODE name="CONFIG.GLOBAL::Performa">
        <PARAM name="HasWebsite" factory="Boolean" value="true"/>
        <PARAM  name="AutoUpgradeBatch_AutoDDL" factory="Boolean"   value="true"/>
        
        <PARAM name="AppMessageEmailer"             factory="Participant"  class="oneit.email.ConfigurableArticleTemplateEmailer"  templateShortcut="AppMessageMail"/>
        <PARAM name="AppEmailEmailer"               factory="Participant"  class="oneit.email.ConfigurableArticleTemplateEmailer"  templateShortcut="AppEmailTemplate"/>
    </NODE>
    
    <NODE name="CONFIG.CUSTOM" factory="SystemConfiguration">
        <PARENT factory="Named" nodename="CONFIG.GLOBAL"/>
        <PARAM  name="SMS"      factory="Participant"       class="performa.utils.SMSUtils">
            <userName   factory="MetaComponent" component="Secure.String"   TextID="sms.username"       Default=""/>
            <password   factory="MetaComponent" component="Secure.String"   TextID="sms.password"       Default=""/>
            <simulate   factory="Boolean"><eval factory="MetaComponent"     component="Secure.String"   TextID="sms.simulate"   Default="true"/></simulate>
        </PARAM>
    </NODE>
    
    <NODE name="DashboardTypes::Performa">
        <MAP value="HOME_TL"    description="HomePage"  JSP="/extensions/performa/editor/additionalHomePage.jsp" />
    </NODE>
    
    <NODE   name="SaveWebService::Performa">
        <Privilege name="performa.orm.MessageTemplate"                  factory="String"    value="*"/>
        <Privilege name="performa.orm.WorkFlowTemplate"                 factory="String"    value="*"/>
        <Privilege name="performa.orm.Message"                          factory="String"    value="*"/>
    </NODE>
    
    <NODE   name="JSONServices::Performa">
        
        <NODE   name="EnvironmentInformation"   factory="Participant"   class="oneit.appservices.ws.services.EnvironmentJSONService" privilege="">
            <Overview>This webservice service is used to get information about the logged in user, the time, and their privileges.</Overview>
        </NODE>

        <NODE   name="UserConfigs"  factory="Participant"   class="oneit.appservices.ws.services.ORMSearchJSONService"  boClass="oneit.appservices.ws.config.UserConfig"    privilege="*">
            <Overview>This webservice service is used to get user related other configs.</Overview>

            <QueryType  name="All"  factory="String"        value="oneit.appservices.ws.search.SearchUserConfig"/>
        </NODE>

        <NODE   name="SaveUserConfig"   factory="Participant"   class="oneit.appservices.ws.services.ORMFormProcessorService"   fpClass="oneit.appservices.ws.config.SaveUserConfigWSFP"    privilege="*">
            <Overview>This webservice service is used to get save UserConfigs.</Overview>
        </NODE>

        <NODE   name="Menu"    factory="Participant"   class="oneit.appservices.ws.services.MenuJSONService"  privilege="*">
            <Overview>This webservice is used to get all menu items.</Overview>
        </NODE>

        <NODE   name="Users"        factory="Participant"   class="oneit.appservices.ws.services.ORMSearchJSONService"      boClass="oneit.security.SecUser"        privilege="*" >
            <Overview>This webservice service is used to get list of users from the system. Note: It will include the disabled users too.</Overview>

            <QueryType  factory="String"    name="All"  value="oneit.security.search.SearchUser" />
        </NODE>
        
        <NODE   name="CMSText"  factory="Participant"   class="oneit.appservices.ws.services.ORMFormProcessorService"   fpClass="oneit.business.content.search.SearchArticleContent"    privilege="">
            <Overview>This service uses to get the cms text by shortcut of article</Overview>
        </NODE>

        <NODE   name="MessageTemplates"  factory="Participant"   class="oneit.appservices.ws.services.ORMSearchJSONService"  boClass="performa.orm.MessageTemplate"    privilege="*">
            <Overview>This service returns all the message templates</Overview>

            <QueryType  factory="String"    name="All"  value="performa.search.SearchMessageTemplate"/>
        </NODE>
        
        <NODE   name="WorkFlowTemplates"  factory="Participant"   class="oneit.appservices.ws.services.ORMSearchJSONService"  boClass="performa.orm.WorkFlowTemplate"    privilege="*">
            <Overview>This service returns all the Workflow Templates</Overview>

            <QueryType  factory="String"    name="All"  value="performa.search.SearchWorkFlowTemplate"/>
        </NODE>
        
        <NODE   name="SaveMessageAsCopy"  factory="Participant"   class="performa.ws.SaveMessageAsCopy"    privilege="*">
            <INHERITS   nodename="SaveWebService::.*" mandatory="false"/>
        </NODE>
        
        <NODE   name="SaveWorkflowAsCopy"  factory="Participant"   class="performa.ws.SaveWorkflowAsCopy"    privilege="*">
            <INHERITS   nodename="SaveWebService::.*" mandatory="false"/>
        </NODE>
        
        <NODE   name="MarkAsRead"  factory="Participant"   class="oneit.appservices.ws.services.ORMFormProcessorService"  fpClass="performa.ws.MarkAsReadWSFP"    privilege="*">
            <Overview>This service will set all messages to read in given job application</Overview>
        </NODE>
        
        <NODE   name="JobApplications"  factory="Participant"   class="oneit.appservices.ws.services.ORMSearchJSONService"  boClass="performa.orm.JobApplication"    privilege="*">
            <Overview>This service returns all the Job Applications</Overview>

            <QueryType  factory="String"    name="All"  value="performa.search.SearchJobApplication"/>
        </NODE>
        
        <NODE   name="Send"  factory="Participant"   class="performa.ws.SendMessage"    privilege="*">
            <INHERITS   nodename="SaveWebService::.*" mandatory="false"/>
        </NODE>
        
        <!-- Enum services -->
        <NODE   name="ResponseActions"          factory="Participant"   class="oneit.appservices.ws.services.EnumJSONService"   enumClass="performa.orm.types.ResponseAction"       privilege="*"/>
        <NODE   name="StageTypes"               factory="Participant"   class="oneit.appservices.ws.services.EnumJSONService"   enumClass="performa.orm.types.StageType"            privilege="*"/>
        <NODE   name="TemplateTypes"            factory="Participant"   class="oneit.appservices.ws.services.EnumJSONService"   enumClass="performa.orm.types.TemplateType"         privilege="*"/>
        <NODE   name="SentVia"                  factory="Participant"   class="oneit.appservices.ws.services.EnumJSONService"   enumClass="performa.orm.types.SentVia"              privilege="*"/>
        <NODE   name="PlaceholderOptions"       factory="Participant"   class="oneit.appservices.ws.services.EnumJSONService"   enumClass="performa.orm.types.PlaceholderOptions"   privilege="*"/>
        <NODE   name="ApplicantSources"         factory="Participant"   class="oneit.appservices.ws.services.EnumJSONService"   enumClass="performa.orm.types.ApplicantSource"      privilege="*"/>
        <NODE   name="StepTypes"                factory="Participant"   class="oneit.appservices.ws.services.EnumJSONService"   enumClass="performa.orm.types.StepType"             privilege="*"/>
        
    </NODE>
    
    <NODE name="WEB_BATCH::Email">
        <TASK factory="Participant" class="oneit.appservices.batch.DefaultTask">
            <RUN class="performa.utils.PerformaEmailFetcher" factory="Participant">
            </RUN>
            <WHEN factory="MetaComponent" component="BatchSchedule" selector="performa.emailfetch">
                <NODE name="schedule" class="oneit.appservices.batch.QuickSchedule">
                    <NODE name="period" factory="Integer" value="5"/>
                </NODE>
            </WHEN>
        </TASK>
    </NODE>
    
</OBJECTS>