Warning: session_start(): open(/var/lib/php/sessions/sess_00s28n7ikb772u1rmog9sthth9, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
sclass Handover {
sclass Form_DoYouWantAHuman > FormInFlight {
*() {
steps.add(nu FormStep(
key := "answer",
displayText := "Would you like to be connected to a sales representative?",
buttons := ll("Yes", "No")
));
}
S complete() {
if (isYes(getValue("answer"))) {
conversation.setForm(new ConnectToWorkerForm);
ret "";
}
ret "OK then have nice day";
}
}
sS handleHashtag(Conversation conversation, S tag) null {
if (eqic(tag, "#ConnectMeToAHuman"))
ret tryToConnect(conversation);
if (eqic(tag, "#DoYouWantAHuman")) {
conversation.setForm(new Form_DoYouWantAHuman);
ret ""; // Text comes from Q&A admin
}
}
sS tryToConnect(Conversation conversation) {
if (workerChat.anyWorkersAvailable()) {
conversation.setForm(new ConnectToWorkerForm);
ret "";
} else
ret noWorkerAvailableMsg(conversation);
}
sclass ConnectToWorkerForm > FormInFlight {
runnable class TimeoutAction { onTimeout(); }
S initialMessage() {
addTimeout(20.0, new TimeoutAction);
ret getCannedAnswer("#connecting", conversation);
}
void onWorkerAccepts(Worker worker) {
// turn off bot done elsewhere
// mark conversation as connected to worker done elsewhere
conversation.cancelForm(); // cancel this form
conversation.add(new Msg(getCannedAnswer("#connected", conv), false));
}
void onTimeout() {
/*new NoWorkerAvailable form;
conversation.setForm();
conversation.add(new Msg(form.initialMessage(), false));*/
conversation.add(new Msg(noWorkerAvailableMsg(conversation), false));
}
}
sS noWorkerAvailableMsg(Conversation conv) {
ret getCannedAnswer("#away", conv);
}
}