I've got a visualforce page with a controller, and I've been looking for a way to run a javascript function from the controller if there's a new case.
So far I have the following code:
VisualForce Page:
<apex:form >
<apex:inputHidden value="{!caseList1stLinePrevious}" />
<apex:inputHidden value="{!caseList2ndLinePrevious}" />
<apex:inputHidden value="{!caseList3rdLinePrevious}" />
</apex:form>
VisualForce Controller:
public list<case> caseList1stLine{get;set;}
public list<case> caseList2ndLine{get;set;}
public list<case> caseList3rdLine{get;set;}
public case caseList1stLinePrevious{get;set;}
public case caseList2ndLinePrevious{get;set;}
public case caseList3rdLinePrevious{get;set;}
public Controller()
{
caseList1stLine = new list<case>();
caseList1stLine=[SELECT CaseNumber, SuppliedEmail, Day_Created__c,Days_Open__c, Subject FROM Case WHERE Owner.Type = 'Queue' AND Owner.Name = 'IT First Line' ORDER BY Days_Open__c ASC];
caseList2ndLine = new list<case>();
caseList2ndLine=[SELECT CaseNumber, SuppliedEmail, Day_Created__c,Days_Open__c, Subject FROM Case WHERE Owner.Type = 'Queue' AND Owner.Name = 'IT Second Line' ORDER BY Days_Open__c ASC];
caseList3rdLine = new list<case>();
caseList3rdLine=[SELECT CaseNumber, SuppliedEmail, Day_Created__c,Days_Open__c, Subject FROM Case WHERE Owner.Type = 'Queue' AND Owner.Name = 'IT Third Line' ORDER BY Days_Open__c ASC];
checkUpdated();
// Save most recent cases to var
caseList1stLinePrevious = caseList1stLine[0];
caseList2ndLinePrevious = caseList2ndLine[0];
caseList3rdLinePrevious = caseList3rdLine[0];
}
public void checkUpdated()
{
if(caseList1stLine[0] == caseList1stLinePrevious || caseList2ndLine[0] == caseList2ndLinePrevious || caseList3rdLine[0] == caseList3rdLinePrevious)
{
calljavascript_cls();
}
}
public void calljavascript_cls()
{
callfunc='<script> playSound(); </script>';
}
The Javascript function calling works fine when debugging, so I think the most recent cases aren't getting stored between page refreshes. Does anybody have any idea/input on this matter?
Thanks,
Sam