Unable to Create EmailTicket after Modifying dynamic fields' JavaScript

Moderator: crythias

Locked
smuwanga
Znuny newbie
Posts: 27
Joined: 31 Dec 2014, 10:57
Znuny Version: 5.0.22
Real Name: Simon Peter Muwanga
Company: UgandaSoft
Contact:

Unable to Create EmailTicket after Modifying dynamic fields' JavaScript

Post by smuwanga »

Hello,

On the same AgentEmailTicket.dtl added 5 dynamic fields, and modified the javascript code in an effort to achieve dependent Dyanamic fields. I have a GenericAgent job running whose parameters are based on the AgentEmailTicket.dtl dynamic fields therein.

When I remove the javascript code from the dynamic fields, the ticket is successfully created. My gut tells me there is a mishap caused by my javascript. Help will be much appreciated.

How can I correct this so the email ticket is created on clicking the "Send Mail" button?

Here the code I added for the dynamic fields.

Code: Select all

# --- added by simon ----
<!-- dtl:block:DynamicField_customerType -->
                    <div class="Row Row_DynamicField_$QData{"Name"}">
                        $Data{"Label"}
                        <div class="Field">
                            $Data{"Field"}
                        </div>
                        <div class="Clear"></div>
                    </div>
<!-- dtl:block:DynamicField_customerType -->


<!-- dtl:block:DynamicField_serviceType -->
                    <div class="Row Row_DynamicField_$QData{"Name"}">
                        $Data{"Label"}
                        <div class="Field">
                            $Data{"Field"}
                            <!--dtl:js_on_document_complete-->
<script type="text/javascript">//<![CDATA[
    function nonetext() {
       $('#DynamicField_typeOfDataService').parent().addClass( 'Hidden' );
       $('#LabelDynamicField_typeOfDataService').parent().addClass('Hidden');

            $('#DynamicField_complaintType').parent().addClass( 'Hidden' );
       $('#LabelDynamicField_complaintType').parent().addClass('Hidden');
    }

    Core.AJAX.FormUpdate($('#NewEmailTicket'), 'AJAXUpdate', 'DynamicField_serviceType', [ 'TypeID', 'Dest', 'NewUserID','NewResponsibleID', 'NextStateID', 'ServiceID', 'SLAID', 'SignKeyID', 'CryptKeyID', 'To', 'Cc', 'Bcc', 'StandardTemplateID' $Data{"DynamicFieldNamesStrg"}]);
    
    $('#DynamicField_serviceType').bind('change', function (Event) {
        switch ($('#DynamicField_serviceType').val() ) {
      case "data":
                   nonetext();
                   $('#LabelDynamicField_typeOfDataService').parent().removeClass( 'Hidden' );
                   $('#DynamicField_typeOfDataService').parent().removeClass( 'Hidden' );
         break;
         case "sms":
                   nonetext();
                   $('#LabelDynamicField_complaintType').parent().removeClass( 'Hidden' );
                   $('#DynamicField_complaintType').parent().removeClass( 'Hidden' );
         break;
         default:
          nonetext();
     }
        

     
    });
//]]></script>
<!--dtl:js_on_document_complete-->
                        </div>
                        <div class="Clear"></div>
                    </div>
<!-- dtl:block:DynamicField_serviceType -->


<!-- dtl:block:DynamicField_typeOfDataService -->
                    <div class="Row Row_DynamicField_$QData{"Name"}">
                        $Data{"Label"}
                        <div class="Field">
                            $Data{"Field"}
                        </div>
                        <div class="Clear"></div>
                    </div>
<!-- dtl:block:DynamicField_typeOfDataService -->

<!-- dtl:block:DynamicField_complaintType -->
                    <div class="Row Row_DynamicField_$QData{"Name"}">
                        $Data{"Label"}
                        <div class="Field">
                            $Data{"Field"}
                        </div>
                        <div class="Clear"></div>
                    </div>
<!-- dtl:block:DynamicField_complaintType -->
Thanking you,
root
Administrator
Posts: 4253
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: Unable to Create EmailTicket after Modifying dynamic fields' JavaScript

Post by root »

Sorry, but I don't spend the time to run through your code. I can only recommend to implement your requirements by Using DynamicFields in conjunction with ACLs. This way of implementation survives an update easier.

-Roy
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
smuwanga
Znuny newbie
Posts: 27
Joined: 31 Dec 2014, 10:57
Znuny Version: 5.0.22
Real Name: Simon Peter Muwanga
Company: UgandaSoft
Contact:

Re: Unable to Create EmailTicket after Modifying dynamic fields' JavaScript

Post by smuwanga »

Hi Roy,

I have disengaged the JS. Created an ACL in Kernel/Config.pm . Restarted apache. ACL does not seem to act on my dependent fields. It is supposed to hide DynamicField_typeOfHairService field after clicking on DynamicField_serviceType. Why is it that the ACL does not behave? ACL is here

Code: Select all

$Self->{TicketAcl}->{'101-ACL-if-serviceType-is-hair-dressing'} = {
    # match properties
    Properties => {
 
        # the used frontend module
        Frontend => {
            Action => ['AgentTicketEmail'],
        },
        # current ticket match properties (match always)
        DynamicField => {
            DynamicField_serviceType => ['hair'],
        },
    },
       
    # return possible options
    Possible => {
        Action => {
            DynamicField_typeOfHairService  => 1,
            DynamicField_complaintType     => 0,
        },
    },
};
--Simon.
smuwanga
Znuny newbie
Posts: 27
Joined: 31 Dec 2014, 10:57
Znuny Version: 5.0.22
Real Name: Simon Peter Muwanga
Company: UgandaSoft
Contact:

Re: Unable to Create EmailTicket after Modifying dynamic fields' JavaScript

Post by smuwanga »

For some reason, God gave me a word of knowledge to remove remove the ITSM fields that had been marked "required" onto the AgentTicketEmail.dtl as configured in the SysConf console.

All is working fine. Thanks.

Am still interested in knowing how to use ACLs to hide a dynamic field as and when needs arise.

-Simon.
root
Administrator
Posts: 4253
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: Unable to Create EmailTicket after Modifying dynamic fields' JavaScript

Post by root »

Hi Simon,

It is possible to restrict the values of one DynamicField based of the values of another. For hiding DyamicFields you should learn more about OutputFilter.

-Roy
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
Locked