diff --git a/packages/basic.gblib/services/DialogKeywords.ts b/packages/basic.gblib/services/DialogKeywords.ts
index 5354e8db..b5549ba4 100644
--- a/packages/basic.gblib/services/DialogKeywords.ts
+++ b/packages/basic.gblib/services/DialogKeywords.ts
@@ -343,6 +343,19 @@ export class DialogKeywords {
this.user = user;
}
+ /**
+ * Defines the FIND behaviour to consider whole words while searching.
+ *
+ * @example SET WHOLE WORD ON
+ *
+ */
+ public async setWholeWord(step, on) {
+ const user = await this.min.userProfile.get(step.context, {});
+ user.basicOptions.wholeWord = (on.trim() === "on");
+ await this.min.userProfile.set(step.context, user);
+ this.user = user;
+ }
+
/**
* Defines translator behaviour.
*
diff --git a/packages/basic.gblib/services/SystemKeywords.ts b/packages/basic.gblib/services/SystemKeywords.ts
index 3ed2144e..27591a38 100644
--- a/packages/basic.gblib/services/SystemKeywords.ts
+++ b/packages/basic.gblib/services/SystemKeywords.ts
@@ -457,8 +457,19 @@ export class SystemKeywords {
case 'string':
switch (filter.operator) {
case '=':
- if (result && result.toLowerCase().trim() === filter.value.toLowerCase().trim()) {
- filterAcceptCount++;
+ let wholeWord = true;
+ if (this.dk.user && this.dk.user.basicOptions && this.dk.user.basicOptions.wholeWord) {
+ wholeWord = this.dk.user.basicOptions.wholeWord;
+ }
+ if (wholeWord) {
+ if (result && result.toLowerCase().trim() === filter.value.toLowerCase().trim()) {
+ filterAcceptCount++;
+ }
+ }
+ else {
+ if (result && result.toLowerCase().trim().indexOf(filter.value.toLowerCase().trim()) > -1) {
+ filterAcceptCount++;
+ }
}
break;
case 'not in':
diff --git a/packages/core.gbapp/services/GBMinService.ts b/packages/core.gbapp/services/GBMinService.ts
index b39365a0..f99124e1 100644
--- a/packages/core.gbapp/services/GBMinService.ts
+++ b/packages/core.gbapp/services/GBMinService.ts
@@ -812,11 +812,14 @@ export class GBMinService {
const sec = new SecService();
if (!user.loaded) {
+
+ await min.conversationalService.sendEvent(min, step, 'loadInstance', {});
+
user.loaded = true;
user.subjects = [];
user.cb = undefined;
user.welcomed = false;
- user.basicOptions = { maxLines: 100, translatorOn: true };
+ user.basicOptions = { maxLines: 100, translatorOn: true , wholeWord: true};
firstTime = true;
@@ -888,6 +891,7 @@ export class GBMinService {
// Answer to specific BOT Framework event conversationUpdate to auto start dialogs.
// Skips if the bot is talking.
+ const startDialog = min.core.getParam(min.instance, 'Start Dialog', null);
if (context.activity.type === 'conversationUpdate' &&
context.activity.membersAdded.length > 0) {
@@ -906,19 +910,22 @@ export class GBMinService {
// Auto starts dialogs if any is specified.
- const startDialog = min.core.getParam(min.instance, 'Start Dialog', null);
if (!startDialog && !user.welcomed) {
// Otherwise, calls / (root) to default welcome users.
await step.beginDialog('/');
}
+ else {
+ user.welcomed = true;
+ GBLog.info(`Auto start (web) dialog is now being called: ${startDialog} for ${min.instance.instanceId}...`);
+ await GBVMService.callVM(startDialog.toLowerCase(), min, step, this.deployer);
+ }
} else {
GBLog.info(`Person added to conversation: ${member.name}`);
- if (this.userMobile(step)) {
- const startDialog = min.core.getParam(min.instance, 'Start Dialog', null);
+ if (this.userMobile(step) ) {
if (startDialog && !user.welcomed) {
user.welcomed = true;
GBLog.info(`Auto start (whatsapp) dialog is now being called: ${startDialog} for ${min.instance.instanceId}...`);
diff --git a/packages/default.gbui/src/GBUIApp.js b/packages/default.gbui/src/GBUIApp.js
index 4f29f0b5..6cb2579d 100644
--- a/packages/default.gbui/src/GBUIApp.js
+++ b/packages/default.gbui/src/GBUIApp.js
@@ -77,15 +77,17 @@ class GBUIApp extends React.Component {
}
send(command) {
- window.line
- .postActivity({
- type: 'event',
- name: command,
- locale: 'en-us',
- textFormat: 'plain',
- timestamp: new Date().toISOString(),
- from: this.getUser()
- });
+
+ window.line
+ .postActivity({
+ type: 'event',
+ name: command,
+ locale: 'en-us',
+ textFormat: 'plain',
+ timestamp: new Date().toISOString(),
+ from: this.getUser()
+ });
+
}
getUser() {
@@ -93,19 +95,6 @@ class GBUIApp extends React.Component {
return { id: 'web@gb', name: 'You' };
}
- postEvent(name, item) {
- setTimeout(() => {
- window['botConnection'].postActivity({
- type: "event",
- name: name,
- data: item,
- locale: "en-us",
- textFormat: "plain",
- timestamp: new Date().toISOString(),
- from: window.user
- })
- }, 400);
- }
postMessage(value) {
window.line.postActivity({
type: 'message',
@@ -161,8 +150,8 @@ class GBUIApp extends React.Component {
);
window.userAgentApplication = userAgentApplication;
- if (!userAgentApplication.isCallback(window.location.hash) && window.parent === window
- && !window.opener && userAgentApplication.getUser) {
+ if (!userAgentApplication.isCallback(window.location.hash) && window.parent === window
+ && !window.opener && userAgentApplication.getUser) {
var user = userAgentApplication.getUser();
if (user) {
userAgentApplication.acquireTokenSilent(graphScopes).then(
@@ -184,25 +173,25 @@ class GBUIApp extends React.Component {
const line = new DirectLine({
token: instanceClient.webchatToken
});
- _this_.setState({ line: line});
+ _this_.setState({ line: line });
line.connectionStatus$.subscribe(connectionStatus => {
if (connectionStatus === ConnectionStatus.Online) {
- _this_.setState({ instanceClient: instanceClient});
- window['botConnection'] = line;
+ _this_.setState({ instanceClient: instanceClient });
+ window['botConnection'] = line;
}
});
window.line = line;
line.activity$
- .filter(activity => activity.type === 'event' && activity.name === 'loadInstance')
- .subscribe(() => {
- this.postEvent('startGB', true);
- _this_.authenticate();
- });
+ .filter(activity => activity.type === 'event' && activity.name === 'loadInstance')
+ .subscribe(() => {
+ _this_.send('startGB');
+ _this_.authenticate();
+ });
- line.activity$
+ line.activity$
.filter(activity => activity.type === 'event' && activity.name === 'stop')
.subscribe(() => {
if (_this_.player) {
@@ -317,12 +306,12 @@ class GBUIApp extends React.Component {
if (this.state.line) {
if (this.state.instanceClient) {
-
+
gbCss = ;
seo = ;
}
- // let speechOptions;
+ // let speechOptions;
// let token = this.state.instanceClient.speechToken;
// speechOptions = {