<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
  <classes>
    <class id="WebApplication">
      <fields>
        <field id="status" xsi:type="AttributeEnum" _delta="define">
          <sql>status</sql>
          <values>
            <value id="active">active</value>
            <value id="disabled">disabled</value>
            <value id="purged">purged</value>
          </values>
         <default_value>active</default_value>
          <display_style>rlist</display_style>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="distributor" xsi:type="AttributeExternalField" _delta="define">
          <extkey_attcode>org_id</extkey_attcode>
          <target_attcode>parent_name</target_attcode>
        </field>
        <field id="support_user" xsi:type="AttributeString" _delta="define">
          <sql>support_user</sql>
          <default_value>support@inventor-e.co.uk</default_value>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="support_passwd" xsi:type="AttributeString" _delta="define">
          <sql>support_passwd</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="active_device_count" xsi:type="AttributeInteger" _delta="define">
          <sql>active_device_count</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="webapp_notes" xsi:type="AttributeText" _delta="define">
          <sql>webapp_notes</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="active_device_limit" xsi:type="AttributeInteger" _delta="define">
          <sql>active_device_limit</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="alias" xsi:type="AttributeString" _delta="define">
          <sql>alias</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="owner" xsi:type="AttributeString" _delta="define">
          <sql>owner</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="group" xsi:type="AttributeString" _delta="define">
          <sql>group</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="db_name" xsi:type="AttributeString" _delta="define">
          <sql>db_name</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="db_user" xsi:type="AttributeString" _delta="define">
          <sql>db_user</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="db_passwd" xsi:type="AttributeString" _delta="define">
          <sql>db_passwd</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="application" xsi:type="AttributeString" _delta="define">
          <sql>inv_application</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="version" xsi:type="AttributeString" _delta="define">
          <sql>app_version</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
        <field id="domain" xsi:type="AttributeEnum" _delta="define">
          <sql>domain</sql>
          <values>
            <value id="inventorenet">inventor-e.net</value>
            <value id="inventorecouk">inventor-e.co.uk</value>
            <value id="inventorecom">inventor-e.com</value>
          </values>
          <default_value>inventor-e.net</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>rlist</display_style>
        </field>
        <field id="certificate_source" xsi:type="AttributeEnum" _delta="define">
          <sql>certificate_source</sql>
          <values>
            <value id="wildcard">wildcard</value>
            <value id="letsencrypt">letsencrypt</value>
          </values>
          <default_value>wildcard</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>rlist</display_style>
        </field>
        <field id="software" xsi:type="AttributeExternalKey" _delta="define">
          <filter><![CDATA[SELECT Software WHERE name LIKE 'sourcerer%' OR name LIKE 'Binsight' OR name LIKE 'Activations']]></filter>
           <sql>software</sql>
          <target_class>Software</target_class>
          <is_null_allowed>true</is_null_allowed>
          <on_target_delete>DEL_MANUAL</on_target_delete>
        </field>
        <field id="cab_list" xsi:type="AttributeLinkedSet" _delta="define">
          <linked_class>Cabinet</linked_class>
          <ext_key_to_me>sourcerer_url</ext_key_to_me>
          <edit_mode>add_remove</edit_mode>
          <tracking_level>all</tracking_level>
          <count_min>0</count_min>
          <count_max>0</count_max>
        </field>	 
        <field id="mobile_phone_list" xsi:type="AttributeLinkedSet" _delta="define">
          <linked_class>MobilePhone</linked_class>
          <ext_key_to_me>sourcerer_url</ext_key_to_me>
          <edit_mode>add_remove</edit_mode>
          <tracking_level>all</tracking_level>
          <count_min>0</count_min>
          <count_max>0</count_max>
        </field>	 
        <field id="redeploy" xsi:type="AttributeEnum" _delta="define">
          <sql>redeploy</sql>
          <values>
            <value id="true">true</value>
            <value id="false">false</value>
          </values>
          <default_value>false</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <field id="apply_salt_state" xsi:type="AttributeEnum" _delta="define">
          <sql>apply_salt_state</sql>
          <values>
            <value id="true">true</value>
            <value id="false">false</value>
          </values>
          <default_value>false</default_value>
          <is_null_allowed>true</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
      </fields>
      <presentation>
        <details _delta="redefine">
          <items>
            <item id="col:col1">
                <rank>80</rank>
              <items>
                <item id="fieldset:Server:baseinfo">
                  <rank>10</rank>
                  <items>
                    <item id="name">
                      <rank>10</rank>
                    </item>
                    <item id="org_id">
                      <rank>20</rank>
                    </item>
                    <item id="distributor">
                      <rank>30</rank>
                    </item>
                    <item id="status">
                      <rank>40</rank>
                    </item>
                    <item id="software">
                      <rank>50</rank>
                    </item>
                    <item id="webserver_id">
                      <rank>90</rank>
                    </item>
                    <item id="domain">
                      <rank>100</rank>
                    </item>
                    <item id="certificate_source">
                      <rank>110</rank>
                    </item>
                  </items>
                </item>  
                <item id="fieldset:Server:moreinfo">
                  <rank>20</rank>
                  <items>
                    <item id="alias">
                      <rank>10</rank>
                    </item>
                    <item id="owner">
                      <rank>20</rank>
                    </item>
                    <item id="group">
                      <rank>30</rank>
                    </item>
                    <item id="db_name">
                      <rank>40</rank>
                    </item>
                    <item id="db_user">
                      <rank>50</rank>
                    </item>
                    <item id="db_passwd">
                      <rank>60</rank>
                    </item>
                    <item id="business_criticity">
                      <rank>70</rank>
                    </item>
                  </items>
                </item>  
              </items>
            </item>
            <item id="col:col2">
              <rank>130</rank>
              <items>
                <item id="fieldset:Server:saltinfo">
                  <rank>10</rank>
                  <items>
                    <item id="apply_salt_state">
                      <rank>10</rank>
                    </item>
                    <item id="redeploy">
                      <rank>20</rank>
                    </item>
                  </items>
                </item>
                <item id="fieldset:Server:supportinfo">
                  <rank>20</rank>
                  <items>
                    <item id="url">
                      <rank>10</rank>
                    </item>
                    <item id="support_user">
                      <rank>20</rank>
                    </item>
                    <item id="support_passwd">
                      <rank>30</rank>
                    </item>
                  </items>
                </item>
                <item id="fieldset:Server:Date">
                  <rank>30</rank>
                  <items>
                    <item id="move2production">
                      <rank>10</rank>
                    </item>
                  </items>
                </item>
                <item id="fieldset:Server:devices">
                  <rank>30</rank>
                  <items>
                    <item id="active_device_count">
                      <rank>10</rank>
                    </item>
                    <item id="active_device_limit">
                      <rank>20</rank>
                    </item>
                  </items>
                </item>
                <item id="fieldset:Server:otherinfo">
                  <rank>40</rank>
                  <items>
                    <item id="description">
                      <rank>10</rank>
                    </item>
                    <item id="webapp_notes">
                      <rank>20</rank>
                    </item>
                  </items>
                </item>
              </items>
            </item>  
            <item id="contacts_list">
              <rank>230</rank>
            </item>
            <item id="documents_list">
              <rank>240</rank>
            </item>
            <item id="applicationsolution_list">
              <rank>250</rank>
            </item>
            <item id="providercontracts_list">
              <rank>260</rank>
            </item>
            <item id="services_list">
              <rank>270</rank>
            </item>  
            <item id="cab_list">
              <rank>280</rank>
            </item>  
            <item id="mobile_phone_list">
              <rank>290</rank>
            </item>  
          </items>  
        </details>
      </presentation>
      <methods>
        <method id="WebAppReadOnlyFields" _delta="define">
          <static>false</static>
          <access>public</access>
          <code><![CDATA[
public function GetAttributeFlags($sAttCode, &$aReasons = array(), $sTargetState = '')
{
    // This function is invoked when the object is EDITED on the Console
    // It is called for each and every field of the object, 
    // but we just want to change the behavior for a few fields
    if ($sAttCode == 'db_name' OR $sAttCode == 'db_user' OR $sAttCode == 'db_passwd' OR $sAttCode == 'alias' OR $sAttCode == 'owner' OR $sAttCode == 'group')
    {
        // Combine the new Flag with those impose by a parent class
        return(OPT_ATT_READONLY | parent::GetAttributeFlags($sAttCode, $aReasons, $sTargetState));
    }
    return parent::GetAttributeFlags($sAttCode, $aReasons, $sTargetState);
}
public function GetInitialStateAttributeFlags($sAttCode, &$aReasons = array())
{       
    // This function is invoked when the object is CREATED on the Console
    // It is called for each and every field of the object, 
    // but we just want to change the behavior for a few fields
    if ($sAttCode == 'db_name' OR $sAttCode == 'db_user' OR $sAttCode == 'db_passwd' OR $sAttCode == 'alias' OR $sAttCode == 'owner' OR $sAttCode == 'group')        
    {
        // Combine the new Flag with those imposed by a parent class
        return(OPT_ATT_READONLY | parent::GetInitialStateAttributeFlags($sAttCode, $aReasons));
    }
    // For other fields ask the parent class to do the job
    return parent::GetInitialStateAttributeFlags($sAttCode, $aReasons);
}  
          ]]></code>
        </method>
      </methods>
    </class>
  </classes>
</itop_design>
