/**
* Main class that implements the state pattern directive.
*
* @this {BarStatePattern}
*/
var BarStatePattern = new JS.Class({
include: JS.State,
initialize: function() {
this.setState(Comsys.UserStatusEnum.LOGGED_ON);
}
});
BarStatePattern.states({
LOGGED_OFF: {
disable: function() {/**/},
enable: function() {
initializeBar();
}
},
LOGGED_ON: {
disable: function() {/**/},
enable: function() {
$('#idle, #pause, #logOff')
.addClass('click-pointer')
.parent()
.addClass('click-pointer');
}
},
IDLE: {
disable: function() {
$('#idle')
.removeClass('click-pointer')
.parent()
.removeClass('click-pointer');
$('#callGroupWrapper').addClass('invisible');
},
enable: function() {
$('#pause, #logOff')
.addClass('click-pointer')
.parent()
.addClass('click-pointer');
$('#msisdn').text("No call");
}
},
PAUSED: {
disable: function() {
$('#pause')
.removeClass('click-pointer')
.parent()
.removeClass('click-pointer');
},
enable: function() {
$('#idle, #logOff')
.addClass('click-pointer')
.parent()
.addClass('click-pointer');
}
},
FORCED_PAUSED: {
disable: function() {
$('#logOff')
.removeClass('click-pointer')
.parent()
.removeClass('click-pointer');
$('#callGroupWrapper').addClass('invisible');
},
enable: function() {
$('#idle, #pause')
.addClass('click-pointer')
.parent()
.addClass('click-pointer');
}
},
RESERVED: {
disable: function() {
$('#idle, #pause, #logOff')
.removeClass('click-pointer')
.parent()
.removeClass('click-pointer');
},
enable: function() {
$('#msisdn').text(Bar.StateManager.getMsisdn());
// Make data accessible to the parent window object
parent.sendDataToMainFrame(
Bar.StateManager.getCallId()
);
}
},
BUSY: {
disable: function() {
$('#idle, #pause, #logOff, #agentCallRetrieveCommand, #agentCallTransferCommand')
.removeClass('click-pointer')
.parent()
.removeClass('click-pointer');
},
enable: function() {
$('#agentCallConsultCommand').addClass('click-pointer')
.parent()
.addClass('click-pointer');
$('#callGroupWrapper').removeClass('invisible');
}
},
WRAP_UP: {
disable: function() {
$('#callGroupWrapper').addClass('invisible');
$('#destination').val('')
},
enable: function() {
$('#idle, #pause, #logOff')
.addClass('click-pointer')
.parent()
.addClass('click-pointer');
}
},
CALL_HOLD: {
disable: function() {
$('#agentCallConsultCommand')
.removeClass('click-pointer')
.parent()
.removeClass('click-pointer');
},
enable: function() {
$('#agentCallRetrieveCommand, #agentCallTransferCommand')
.addClass('click-pointer')
.parent()
.addClass('click-pointer');
}
},
SESSION_DESTROYED: {
disable: function() {
window.location.reload();
},
enable: function() {/**/}
}
});
Hopefully you can spot where im going wrong about it because at this point i'm completely stuck :(
thanks a lot for your help!
Daniel.