Date: Wed, 15 May 2024 12:10:26 +0200
Subject: [PATCH 019/227] updated quotes widget added missing gpt model in kb
preview
---
src/app/components/navbar/navbar.component.ts | 52 ++++----
.../knowledge-base-table.component.html | 2 +-
...odal-preview-knowledge-base.component.scss | 6 +-
.../modal-preview-knowledge-base.component.ts | 4 +-
src/app/services/quotes.service.ts | 70 +++++++++++
src/app/utils/util.ts | 8 +-
src/environments/environment.ts | 112 +++++++++++++-----
7 files changed, 185 insertions(+), 69 deletions(-)
diff --git a/src/app/components/navbar/navbar.component.ts b/src/app/components/navbar/navbar.component.ts
index cab761cf9d67..9b72a32464c9 100755
--- a/src/app/components/navbar/navbar.component.ts
+++ b/src/app/components/navbar/navbar.component.ts
@@ -182,6 +182,8 @@ export class NavbarComponent extends PricingBaseComponent implements OnInit, Aft
tokens_perc = 0;
tokens_limit = 0;
+ project_limits: any;
+
constructor(
@Inject(DOCUMENT) private document: Document,
location: Location,
@@ -276,8 +278,6 @@ export class NavbarComponent extends PricingBaseComponent implements OnInit, Aft
this.translateStrings();
this.listenHasDeleteUserProfileImage();
-
-
} // OnInit
@@ -288,36 +288,27 @@ export class NavbarComponent extends PricingBaseComponent implements OnInit, Aft
this.unsubscribe$.complete();
}
+ getProjectQuotes() {
+ this.quotesService.getProjectQuotes(this.projectId).then((response) => {
+ this.logger.log("[NAVBAR] getProjectQuotes response: ", response);
+ this.project_limits = response;
+ }).catch((err) => {
+ this.logger.error("[NAVBAR] getProjectQuotes error: ", err);
+ })
+ }
+
getQuotes() {
this.quotesService.getAllQuotes(this.projectId).subscribe((resp: any) => {
- this.logger.log("quotes retrieved: ", resp)
-
- // let profile_name = this.project.profile_name;
- this.logger.log('[NAVBAR] project ', this.project)
- // this.logger.log('[NAVBAR] project > profile_name ', profile_name)
- this.logger.log('[NAVBAR] prjct_profile_name ', this.prjct_profile_name)
- this.logger.log('[NAVBAR] profile_name ', this.profile_name)
-
-
- switch(this.profile_name) {
- case PLAN_NAME.A:
- this.profile_name = PLAN_NAME.D;
- break;
- case PLAN_NAME.B:
- this.profile_name = PLAN_NAME.E
- break;
- case PLAN_NAME.C:
- this.profile_name = PLAN_NAME.F
- break;
- }
-
- this.logger.log('[NAVBAR] PLANS_LIST ', PLANS_LIST)
- this.logger.log('[NAVBAR] PLANS_LIST[profile_name] ', PLANS_LIST[this.profile_name])
- this.logger.log('[NAVBAR] PLANS_LIST[profile_name].requests ', PLANS_LIST[this.profile_name].requests)
- this.requests_limit = PLANS_LIST[this.profile_name].requests;
- this.messages_limit = PLANS_LIST[this.profile_name].messages;
- this.email_limit = PLANS_LIST[this.profile_name].email;
- this.tokens_limit = PLANS_LIST[this.profile_name].tokens;
+ this.logger.log("[NAVBAR] getAllQuotes response: ", resp)
+
+ // this.requests_limit = PLANS_LIST[this.profile_name].requests;
+ // this.messages_limit = PLANS_LIST[this.profile_name].messages;
+ // this.email_limit = PLANS_LIST[this.profile_name].email;
+ // this.tokens_limit = PLANS_LIST[this.profile_name].tokens;
+ this.messages_limit = this.project_limits.messages;
+ this.requests_limit = this.project_limits.requests;
+ this.email_limit = this.project_limits.email;
+ this.tokens_limit = this.project_limits.tokens;
if (resp.quotes.requests.quote === null) {
resp.quotes.requests.quote = 0;
@@ -911,6 +902,7 @@ export class NavbarComponent extends PricingBaseComponent implements OnInit, Aft
this.projectId = project._id;
this.projectName = project.name;
this.OPERATING_HOURS_ACTIVE = this.project.operatingHours
+ this.getProjectQuotes();
// this.getQuotes();
this.logger.log('[NAVBAR] -> OPERATING_HOURS_ACTIVE ', this.OPERATING_HOURS_ACTIVE);
}
diff --git a/src/app/knowledge-bases/modals/knowledge-base-table/knowledge-base-table.component.html b/src/app/knowledge-bases/modals/knowledge-base-table/knowledge-base-table.component.html
index 8ef01bc23b31..5e1c0a2b8db6 100644
--- a/src/app/knowledge-bases/modals/knowledge-base-table/knowledge-base-table.component.html
+++ b/src/app/knowledge-bases/modals/knowledge-base-table/knowledge-base-table.component.html
@@ -146,7 +146,7 @@
- {{ kb.createdAt | amTimeAgo }}
+ {{ kb.updatedAt | amTimeAgo }}
|
diff --git a/src/app/knowledge-bases/modals/modal-preview-knowledge-base/modal-preview-knowledge-base.component.scss b/src/app/knowledge-bases/modals/modal-preview-knowledge-base/modal-preview-knowledge-base.component.scss
index 7267bf43339e..1af2875f228d 100644
--- a/src/app/knowledge-bases/modals/modal-preview-knowledge-base/modal-preview-knowledge-base.component.scss
+++ b/src/app/knowledge-bases/modals/modal-preview-knowledge-base/modal-preview-knowledge-base.component.scss
@@ -99,12 +99,14 @@
.answer {
min-height: 37px;
- max-height: auto;
+ //max-height: auto;
+ max-height: 600px;
border-radius: 6px;
border: solid 2px #c6cdd4;
padding: 6px 12px 20px;
cursor: text;
- overflow: hidden;
+ // overflow: hidden;
+ overflow: scroll;
transition: max-height 0.5s ease-out;
.answer-title {
margin-bottom: 0px;
diff --git a/src/app/knowledge-bases/modals/modal-preview-knowledge-base/modal-preview-knowledge-base.component.ts b/src/app/knowledge-bases/modals/modal-preview-knowledge-base/modal-preview-knowledge-base.component.ts
index 13a776e0bb00..2bd5cd7e0c9d 100644
--- a/src/app/knowledge-bases/modals/modal-preview-knowledge-base/modal-preview-knowledge-base.component.ts
+++ b/src/app/knowledge-bases/modals/modal-preview-knowledge-base/modal-preview-knowledge-base.component.ts
@@ -16,7 +16,9 @@ export class ModalPreviewKnowledgeBaseComponent implements OnInit {
models_list = [
{ name: "GPT-3.5 Turbo (ChatGPT)", value: "gpt-3.5-turbo" },
- { name: "GPT-4 (ChatGPT)", value: "gpt-4" }
+ { name: "GPT-4 (ChatGPT)", value: "gpt-4" },
+ { name: "GPT-4 Turbo Preview (ChatGPT)", value: "gpt-4-turbo-preview" },
+ { name: "GPT-4o (ChatGPT)", value: "gpt-4o" }
];
selectedModel: any = this.models_list[1].value;
diff --git a/src/app/services/quotes.service.ts b/src/app/services/quotes.service.ts
index 9a6cc0f33d39..24b799a77883 100644
--- a/src/app/services/quotes.service.ts
+++ b/src/app/services/quotes.service.ts
@@ -3,6 +3,7 @@ import { AuthService } from 'app/core/auth.service';
import { LoggerService } from './logger/logger.service';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { AppConfigService } from './app-config.service';
+import { PLANS_LIST, PLAN_NAME } from 'app/utils/util';
@Injectable({
providedIn: 'root'
@@ -76,4 +77,73 @@ export class QuotesService {
return this.http
.post(url, data, httpOptions)
}
+
+ getProjectQuotes(project_id: string) {
+
+ return new Promise((resolve, reject) => {
+ const httpOptions = {
+ headers: new HttpHeaders({
+ 'Content-Type': 'application/json',
+ 'Authorization': this.TOKEN
+ })
+ }
+
+ const url = this.SERVER_BASE_PATH + "projects/" + project_id;
+ this.logger.log('[QUOTE-SERVICE] - GET ALL QUOTES URL', url);
+
+ this.http.get(url, httpOptions)
+ .toPromise().then( async (project: any) => {
+ let limits = await this.getQuoteLimits(project);
+ resolve(limits)
+ }).catch((err) => {
+ reject(false);
+ })
+ })
+
+ }
+
+ async getQuoteLimits(project) {
+ let limits;
+
+ if (project.profile.type === 'payment') {
+
+ if (project.isActiveSubscription === false) {
+ limits = PLANS_LIST.Sandbox;
+ return limits;
+ }
+
+ let plan = project.profile.name;
+
+ switch(plan) {
+ case PLAN_NAME.A:
+ plan = PLAN_NAME.D;
+ break;
+ case PLAN_NAME.B:
+ plan = PLAN_NAME.E
+ break;
+ case PLAN_NAME.C:
+ plan = PLAN_NAME.F
+ break;
+ }
+
+ limits = PLANS_LIST[plan];
+
+ if (project.profile.quotes) {
+ let profile_quotes = project?.profile?.quotes;
+ const merged_quotes = Object.assign({}, limits, profile_quotes);
+ return merged_quotes;
+ } else {
+ return limits;
+ }
+ } else {
+
+ if (project.trialExpired === true) {
+ limits = PLANS_LIST.Sandbox;
+ return limits;
+ } else {
+ limits = PLANS_LIST.Premium;
+ return limits;
+ }
+ }
+ }
}
diff --git a/src/app/utils/util.ts b/src/app/utils/util.ts
index e7ee4a6e8290..a262a50cd5cf 100755
--- a/src/app/utils/util.ts
+++ b/src/app/utils/util.ts
@@ -429,10 +429,10 @@ export enum KB_MAX_NUM {
export const PLANS_LIST = {
FREE_TRIAL: { requests: 3000, messages: 0, tokens: 250000, email: 200, chatbots: 20, kbs: 50 }, // same as PREMIUM
- SANDBOX: { requests: 200, messages: 0, tokens: 10000, email: 200, chatbots: 2, kbs: 50 },
- BASIC: { requests: 800, messages: 0, tokens: 50000, email: 200, chatbots: 5, kbs: 150},
- PREMIUM: { requests: 3000, messages: 0, tokens: 250000, email: 200, chatbots: 20, kbs: 300},
- CUSTOM: { requests: 3000, messages: 0, tokens: 250000, email: 200, chatbots: 20, kbs: 1000}
+ Sandbox: { requests: 200, messages: 0, tokens: 10000, email: 200, chatbots: 2, kbs: 50 },
+ Basic: { requests: 800, messages: 0, tokens: 50000, email: 200, chatbots: 5, kbs: 150},
+ Premium: { requests: 3000, messages: 0, tokens: 250000, email: 200, chatbots: 20, kbs: 300},
+ Custom: { requests: 3000, messages: 0, tokens: 250000, email: 200, chatbots: 20, kbs: 1000}
}
// Basic plan
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
index e925cd501405..2f9480840d93 100644
--- a/src/environments/environment.ts
+++ b/src/environments/environment.ts
@@ -1,36 +1,86 @@
+
+// export const environment = {
+// production: true,
+// t2y12PruGU9wUtEGzBJfolMIgK: 'PAY:T-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-DGF:T-NAT:T-CAR:T-V1L:T-PSA:T-MTT:T-SUP:T-LBS:T-APP:T-DEV:T-NOT:T-RAS:T',
+// VERSION: require('../../package.json').version,
+// widgetUrl: 'https://widget.tiledesk.com/v3/launch.js',
+// botcredendialsURL:'CHANGEIT',
+// remoteConfig: true,
+// SERVER_BASE_URL:'https://tiledesk-server-pre.herokuapp.com/',
+// CHAT_BASE_URL: 'https://support-pre.tiledesk.com/chat/',
+// testsiteBaseUrl: 'https://widget-pre.tiledesk.com/v2/assets/test_widget_page/index.html',
+// wsUrl: 'wss://tiledesk-server-pre.herokuapp.com/',
+// chatEngine: 'mqtt',
+// firebaseAuth: false,
+// uploadEngine: 'native',
+// baseImageUrl: 'CHANGEIT',
+// pushEngine: 'none',
+// logLevel: 'Info',
+// templatesUrl: 'CHANGEIT',
+// appsUrl: 'CHANGEIT',
+// promoBannerUrl: 'CHANGEIT',
+// chatStoragePrefix: "CHANGEIT",
+// firebase: {
+// apiKey: 'CHANGEIT',
+// authDomain: 'CHANGEIT',
+// databaseURL: 'CHANGEIT',
+// projectId: 'CHANGEIT',
+// storageBucket: 'CHANGEIT',
+// messagingSenderId: 'CHANGEIT',
+// appId: 'CHANGEIT',
+// vapidKey: 'CHANGEIT'
+// }
+// };
+
export const environment = {
production: false,
- remoteConfig: true,
- remoteConfigUrl: './dashboard-config.json',
+ remoteConfig: false,
+ t2y12PruGU9wUtEGzBJfolMIgK: 'PAY:T-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-CAR:T-V1L:T-PSA:T-MTT:T-SUP:T-LBS:T-APP:T-DEV:T-NOT:T-IPS:T-ETK:T-RAS:T-PPB:T-PET:T-MTS:T-TIL:T-DGF:T-NAT:T-HPB:F-TOW:T-KNB:T-BAN:T-AST:T-MON:T-CNT:T-AUT:T-WUN:T-INT:T-DPA:T-QIN:T-VAU:T',
VERSION: require('../../package.json').version,
- t2y12PruGU9wUtEGzBJfolMIgK: 'PAY:T-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-DGF:T-NAT:T-CAR:T-V1L:T-PSA:T-MTT:T-SUP:T-LBS:T-APP:T-DEV:T-NOT:T-RAS:T',
- botcredendialsURL: 'CHANGEIT',
- WIDGET_BASE_URL: 'http://localhost:4200/',
- SERVER_BASE_URL: 'http://localhost:3000/',
- CHAT_BASE_URL: 'http://localhost:8080/',
- wsUrl: 'ws://localhost:3000/',
- chatEngine: 'mqtt',
+ botcredendialsURL: 'https://tiledesk-df-connector-pre.herokuapp.com/botcredendials/', //'https://dialogflow-proxy-tiledesk.herokuapp.com/botcredendials/',
+ rasaBotCredentialsURL: "https://tiledesk-server-pre.herokuapp.com/modules/rasa/botcredendials/", // "https://tiledesk-rasa-connector-pre.herokuapp.com/botcredendials/",
+ WIDGET_BASE_URL: 'https://widget-pre.tiledesk.com/v5/',
+ SERVER_BASE_URL: 'https://tiledesk-server-pre.herokuapp.com/',
+ CHAT_BASE_URL: 'https://support-pre.tiledesk.com/chat-ionic5/', // '/chat-ionic5/', //'https://support-pre.tiledesk.com/chat-ionic5/' // https://support-pre.tiledesk.com/chat-ionic5-notifcation-item//
+ wsUrl: 'wss://tiledesk-server-pre.herokuapp.com/',
+ reCaptchaSiteKey:"6Lf1khcpAAAAABMNHJfnJm43vVTxFzXM7ADqDAp5",
+ globalRemoteJSSrc: "https://support-pre.tiledesk.com/script/custom_script.js, https://support-pre.tiledesk.com/script/dnpc.js", //https://www.google.com/recaptcha/api.js?render=6Lf1khcpAAAAABMNHJfnJm43vVTxFzXM7ADqDAp5,
firebaseAuth: false,
- uploadEngine: 'native',
- baseImageUrl: 'CHANGEIT',
- pushEngine: 'none',
- logLevel: 'Info',
- communityTemplatesUrl: 'CHANGEIT',
- templatesUrl: 'CHANGEIT',
- appsUrl: 'CHANGEIT',
- cdsBaseUrl: 'CHANGEIT',
- promoBannerUrl: 'CHANGEIT',
- whatsappApiUrl: "CHANGEIT",
- ticketingEmail: "CHANGEIT",
- tiledeskPhoneNumber: "CHANGEIT",
+ uploadEngine: 'firebase',
+ baseImageUrl: 'https://tiledesk-server-pre.herokuapp.com/',
+ pushEngine: 'firebase',
+ chatEngine: 'firebase',
+ logLevel: 'info',
+ communityTemplatesUrl: 'https://chatbot-templates-v2-pre.herokuapp.com/chatbots/public/community',
+ templatesUrl: "https://chatbot-templates-v2-pre.herokuapp.com/chatbots/public/templates", // "https://chatbot-templates.herokuapp.com/chatbots/public/templates/",
+ appsUrl: "https://tiledesk-apps.glitch.me/", //"https://cd3ff4b5-5a06-44e3-aff2-3ce2ff1b848b-00-3eppvhwsi6nym.janeway.replit.dev/", // "https://tiledesk-apps-server.giovannitroisi3.repl.co/",// "https://tiledesk-apps.herokuapp.com/",
+ cdsBaseUrl: '/cds/',
+ whatsappApiUrl: "https://tiledesk-whatsapp-connector-dev.glitch.me/", //"https://tiledesk-whatsapp-connector-c4ce07638b45.herokuapp.com/", //"https://tiledesk-whatsapp-connector.giovannitroisi3.repl.co/", // "https://tiledesk-whatsapp-app-pre.giovannitroisi3.repl.co",
+ // promoBannerUrl: "https://dashbordpromobanner.nicolan74.repl.co/get/dashboard_promo.json",
+ whatsappConfigUrl: "https://tiledesk-whatsapp-connector-dev.glitch.me/configure",
+ messengerConfigUrl: "https://tiledesk-messenger-connector.glitch.me/configure",
+ telegramConfigUrl: "https://tiledesk-telegram-connector-dev.glitch.me/configure",
+ chatStoragePrefix: "chat_sv5",
+ tiledeskPhoneNumber: "393201352964",
+ ticketingEmail: "tickets.tiledesk.com",
firebase: {
- apiKey: 'CHANGEIT',
- authDomain: 'CHANGEIT',
- databaseURL: 'CHANGEIT',
- projectId: 'CHANGEIT',
- storageBucket: 'CHANGEIT',
- messagingSenderId: 'CHANGEIT',
- appId: 'CHANGEIT',
- vapidKey: 'CHANGEIT'
- }
-};
\ No newline at end of file
+ apiKey: "AIzaSyCoWXHNvP1-qOllCpTshhC6VjPXeRTK0T4",
+ authDomain: "chat21-pre-01.firebaseapp.com",
+ databaseURL: "https://chat21-pre-01.firebaseio.com",
+ projectId: "chat21-pre-01",
+ storageBucket: "chat21-pre-01.appspot.com",
+ messagingSenderId: "269505353043",
+ appId: "1:269505353043:web:b82af070572669e3707da6",
+ vapidKey: "BOsgS2ADwspKdWAmiFDZXEYqY1HSYADVfJT3j67wsySh3NxaViJqoabPJH8WM02wb5r8cQIm5TgM0UK047Z1D1c"
+ },
+};
+
+
+
+
+
+
+
+
+
+
From bed0dceb26fb3b60bb1aad4da1cb09999ab2b465 Mon Sep 17 00:00:00 2001
From: Giovanni Troisi
Date: Wed, 15 May 2024 12:13:08 +0200
Subject: [PATCH 020/227] restore environment
---
src/environments/environment.ts | 112 +++++++++-----------------------
1 file changed, 31 insertions(+), 81 deletions(-)
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
index 2f9480840d93..e925cd501405 100644
--- a/src/environments/environment.ts
+++ b/src/environments/environment.ts
@@ -1,86 +1,36 @@
-
-// export const environment = {
-// production: true,
-// t2y12PruGU9wUtEGzBJfolMIgK: 'PAY:T-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-DGF:T-NAT:T-CAR:T-V1L:T-PSA:T-MTT:T-SUP:T-LBS:T-APP:T-DEV:T-NOT:T-RAS:T',
-// VERSION: require('../../package.json').version,
-// widgetUrl: 'https://widget.tiledesk.com/v3/launch.js',
-// botcredendialsURL:'CHANGEIT',
-// remoteConfig: true,
-// SERVER_BASE_URL:'https://tiledesk-server-pre.herokuapp.com/',
-// CHAT_BASE_URL: 'https://support-pre.tiledesk.com/chat/',
-// testsiteBaseUrl: 'https://widget-pre.tiledesk.com/v2/assets/test_widget_page/index.html',
-// wsUrl: 'wss://tiledesk-server-pre.herokuapp.com/',
-// chatEngine: 'mqtt',
-// firebaseAuth: false,
-// uploadEngine: 'native',
-// baseImageUrl: 'CHANGEIT',
-// pushEngine: 'none',
-// logLevel: 'Info',
-// templatesUrl: 'CHANGEIT',
-// appsUrl: 'CHANGEIT',
-// promoBannerUrl: 'CHANGEIT',
-// chatStoragePrefix: "CHANGEIT",
-// firebase: {
-// apiKey: 'CHANGEIT',
-// authDomain: 'CHANGEIT',
-// databaseURL: 'CHANGEIT',
-// projectId: 'CHANGEIT',
-// storageBucket: 'CHANGEIT',
-// messagingSenderId: 'CHANGEIT',
-// appId: 'CHANGEIT',
-// vapidKey: 'CHANGEIT'
-// }
-// };
-
export const environment = {
production: false,
- remoteConfig: false,
- t2y12PruGU9wUtEGzBJfolMIgK: 'PAY:T-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-CAR:T-V1L:T-PSA:T-MTT:T-SUP:T-LBS:T-APP:T-DEV:T-NOT:T-IPS:T-ETK:T-RAS:T-PPB:T-PET:T-MTS:T-TIL:T-DGF:T-NAT:T-HPB:F-TOW:T-KNB:T-BAN:T-AST:T-MON:T-CNT:T-AUT:T-WUN:T-INT:T-DPA:T-QIN:T-VAU:T',
+ remoteConfig: true,
+ remoteConfigUrl: './dashboard-config.json',
VERSION: require('../../package.json').version,
- botcredendialsURL: 'https://tiledesk-df-connector-pre.herokuapp.com/botcredendials/', //'https://dialogflow-proxy-tiledesk.herokuapp.com/botcredendials/',
- rasaBotCredentialsURL: "https://tiledesk-server-pre.herokuapp.com/modules/rasa/botcredendials/", // "https://tiledesk-rasa-connector-pre.herokuapp.com/botcredendials/",
- WIDGET_BASE_URL: 'https://widget-pre.tiledesk.com/v5/',
- SERVER_BASE_URL: 'https://tiledesk-server-pre.herokuapp.com/',
- CHAT_BASE_URL: 'https://support-pre.tiledesk.com/chat-ionic5/', // '/chat-ionic5/', //'https://support-pre.tiledesk.com/chat-ionic5/' // https://support-pre.tiledesk.com/chat-ionic5-notifcation-item//
- wsUrl: 'wss://tiledesk-server-pre.herokuapp.com/',
- reCaptchaSiteKey:"6Lf1khcpAAAAABMNHJfnJm43vVTxFzXM7ADqDAp5",
- globalRemoteJSSrc: "https://support-pre.tiledesk.com/script/custom_script.js, https://support-pre.tiledesk.com/script/dnpc.js", //https://www.google.com/recaptcha/api.js?render=6Lf1khcpAAAAABMNHJfnJm43vVTxFzXM7ADqDAp5,
+ t2y12PruGU9wUtEGzBJfolMIgK: 'PAY:T-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-DGF:T-NAT:T-CAR:T-V1L:T-PSA:T-MTT:T-SUP:T-LBS:T-APP:T-DEV:T-NOT:T-RAS:T',
+ botcredendialsURL: 'CHANGEIT',
+ WIDGET_BASE_URL: 'http://localhost:4200/',
+ SERVER_BASE_URL: 'http://localhost:3000/',
+ CHAT_BASE_URL: 'http://localhost:8080/',
+ wsUrl: 'ws://localhost:3000/',
+ chatEngine: 'mqtt',
firebaseAuth: false,
- uploadEngine: 'firebase',
- baseImageUrl: 'https://tiledesk-server-pre.herokuapp.com/',
- pushEngine: 'firebase',
- chatEngine: 'firebase',
- logLevel: 'info',
- communityTemplatesUrl: 'https://chatbot-templates-v2-pre.herokuapp.com/chatbots/public/community',
- templatesUrl: "https://chatbot-templates-v2-pre.herokuapp.com/chatbots/public/templates", // "https://chatbot-templates.herokuapp.com/chatbots/public/templates/",
- appsUrl: "https://tiledesk-apps.glitch.me/", //"https://cd3ff4b5-5a06-44e3-aff2-3ce2ff1b848b-00-3eppvhwsi6nym.janeway.replit.dev/", // "https://tiledesk-apps-server.giovannitroisi3.repl.co/",// "https://tiledesk-apps.herokuapp.com/",
- cdsBaseUrl: '/cds/',
- whatsappApiUrl: "https://tiledesk-whatsapp-connector-dev.glitch.me/", //"https://tiledesk-whatsapp-connector-c4ce07638b45.herokuapp.com/", //"https://tiledesk-whatsapp-connector.giovannitroisi3.repl.co/", // "https://tiledesk-whatsapp-app-pre.giovannitroisi3.repl.co",
- // promoBannerUrl: "https://dashbordpromobanner.nicolan74.repl.co/get/dashboard_promo.json",
- whatsappConfigUrl: "https://tiledesk-whatsapp-connector-dev.glitch.me/configure",
- messengerConfigUrl: "https://tiledesk-messenger-connector.glitch.me/configure",
- telegramConfigUrl: "https://tiledesk-telegram-connector-dev.glitch.me/configure",
- chatStoragePrefix: "chat_sv5",
- tiledeskPhoneNumber: "393201352964",
- ticketingEmail: "tickets.tiledesk.com",
+ uploadEngine: 'native',
+ baseImageUrl: 'CHANGEIT',
+ pushEngine: 'none',
+ logLevel: 'Info',
+ communityTemplatesUrl: 'CHANGEIT',
+ templatesUrl: 'CHANGEIT',
+ appsUrl: 'CHANGEIT',
+ cdsBaseUrl: 'CHANGEIT',
+ promoBannerUrl: 'CHANGEIT',
+ whatsappApiUrl: "CHANGEIT",
+ ticketingEmail: "CHANGEIT",
+ tiledeskPhoneNumber: "CHANGEIT",
firebase: {
- apiKey: "AIzaSyCoWXHNvP1-qOllCpTshhC6VjPXeRTK0T4",
- authDomain: "chat21-pre-01.firebaseapp.com",
- databaseURL: "https://chat21-pre-01.firebaseio.com",
- projectId: "chat21-pre-01",
- storageBucket: "chat21-pre-01.appspot.com",
- messagingSenderId: "269505353043",
- appId: "1:269505353043:web:b82af070572669e3707da6",
- vapidKey: "BOsgS2ADwspKdWAmiFDZXEYqY1HSYADVfJT3j67wsySh3NxaViJqoabPJH8WM02wb5r8cQIm5TgM0UK047Z1D1c"
- },
-};
-
-
-
-
-
-
-
-
-
-
+ apiKey: 'CHANGEIT',
+ authDomain: 'CHANGEIT',
+ databaseURL: 'CHANGEIT',
+ projectId: 'CHANGEIT',
+ storageBucket: 'CHANGEIT',
+ messagingSenderId: 'CHANGEIT',
+ appId: 'CHANGEIT',
+ vapidKey: 'CHANGEIT'
+ }
+};
\ No newline at end of file
From 74dc54c7c62aa92ab58a1befe6edf9d512e116e0 Mon Sep 17 00:00:00 2001
From: Giovanni Troisi
Date: Wed, 15 May 2024 12:17:00 +0200
Subject: [PATCH 021/227] updated package.json version updated CHANGELOG
---
CHANGELOG.md | 4 ++++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3a28f4260bfe..e266691fe631 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
# tiledesk-dashboard
+### 2.6.25-rc1
+- Improved quotes widget
+- Added missing gpt model in kb preview
+
### 2.6.22-rc1
- Knowledge Base page improvements
diff --git a/package-lock.json b/package-lock.json
index 3b076f2c18cc..513752cf092c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.22-rc1",
+ "version": "2.6.25-rc1",
"lockfileVersion": 2,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index 774271c48eb8..a7bac810ab72 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.22-rc1",
+ "version": "2.6.25-rc1",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From f7c7957ebe44e726152b709415d1d0371b561ad3 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Wed, 22 May 2024 19:16:54 +0200
Subject: [PATCH 022/227] Improves brand service
---
.../configure-widget/configure-widget.component.ts | 2 +-
src/app/widget-home-preview/widget-home.component.ts | 4 ++--
.../widget-set-up/widget-set-up.component.ts | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/app/create-project-wizard/configure-widget/configure-widget.component.ts b/src/app/create-project-wizard/configure-widget/configure-widget.component.ts
index d36a22622af2..95a06c8e4bd5 100755
--- a/src/app/create-project-wizard/configure-widget/configure-widget.component.ts
+++ b/src/app/create-project-wizard/configure-widget/configure-widget.component.ts
@@ -101,7 +101,7 @@ export class ConfigureWidgetComponent extends WidgetSetUpBaseComponent implement
this.company_site_url = brand['COMPANY_SITE_URL'];
// this.widgetLogoURL = brand['widget_logo_URL']
- this.widgetLogoURL = brand['LOGO_CHAT'];
+ this.widgetLogoURL = brand['WIDGET']['LOGO_CHAT'];
this.logger.log('[WIZARD - CONFIGURE-WIDGET] widgetLogoURL ', this.widgetLogoURL)
}
diff --git a/src/app/widget-home-preview/widget-home.component.ts b/src/app/widget-home-preview/widget-home.component.ts
index 4a35d52097a7..7d262dcbfbd9 100755
--- a/src/app/widget-home-preview/widget-home.component.ts
+++ b/src/app/widget-home-preview/widget-home.component.ts
@@ -70,10 +70,10 @@ export class WidgetHomeComponent implements OnInit, OnChanges {
// this.widgetLogoURL = brand['widget_logo_URL'];
// this.defaultFooter = brand['widget_default_footer'];
- this.widgetLogoURL = brand['LOGO_CHAT'];
+ this.widgetLogoURL = brand['WIDGET']['LOGO_CHAT'];
// console.log('[WIDGET HOME COMP] widgetLogoURL ', this.widgetLogoURL)
- this.defaultFooter = brand['POWERED_BY'];
+ this.defaultFooter = brand['WIDGET']['POWERED_BY'];
// console.log('[WIDGET HOME COMP] defaultFooter ', this.defaultFooter)
const fileType = this.getFileTypeFromURL(this.widgetLogoURL);
diff --git a/src/app/widget_components/widget-set-up/widget-set-up.component.ts b/src/app/widget_components/widget-set-up/widget-set-up.component.ts
index 840d708bc395..2c8d340f16ba 100755
--- a/src/app/widget_components/widget-set-up/widget-set-up.component.ts
+++ b/src/app/widget_components/widget-set-up/widget-set-up.component.ts
@@ -428,10 +428,10 @@ export class WidgetSetUp extends WidgetSetUpBaseComponent implements OnInit, Aft
// this.widgetLogoURL = brand['widget_logo_URL']
// this.defaultFooter = brand['widget_default_footer'];
- this.widgetLogoURL = brand['LOGO_CHAT'];
+ this.widgetLogoURL = brand['WIDGET']['LOGO_CHAT'];
// this.logger.log('[WIDGET-SET-UP] widgetLogoURL ', this.widgetLogoURL)
- this.defaultFooter = brand['POWERED_BY'];
+ this.defaultFooter = brand['WIDGET']['POWERED_BY'];
// this.logger.log('[[WIDGET-SET-UP] defaultFooter ', this.defaultFooter)
// this.logger.log('[WIDGET-SET-UP] widgetLauncherButtonPlaceholder ', this.widgetLauncherButtonPlaceholder)
From d705bcc21699c55e1f5805c081ec005af41d8186 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Wed, 22 May 2024 19:17:14 +0200
Subject: [PATCH 023/227] Improves brand service
---
src/app/services/brand.service.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/app/services/brand.service.ts b/src/app/services/brand.service.ts
index 98a78f80bc21..9bb68741675a 100755
--- a/src/app/services/brand.service.ts
+++ b/src/app/services/brand.service.ts
@@ -232,7 +232,7 @@ export class BrandService {
// }
getBrand() {
this.logger.log('BrandService getBrand has been called - brand: ', this.brand);
- return { ...this.brand['DASHBOARD'], ...this.brand['COMMON'], ...this.brand['WIDGET'] };
+ return { ...this.brand['DASHBOARD'], ...this.brand['COMMON'], ...{WIDGET: this.brand['WIDGET']} };
}
From 0e37c165151b8b0774063a0d5a3db88a836c12f5 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Wed, 22 May 2024 19:17:33 +0200
Subject: [PATCH 024/227] Improves conversation details
---
.../services/websocket/ws-requests.service.ts | 20 ++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/src/app/services/websocket/ws-requests.service.ts b/src/app/services/websocket/ws-requests.service.ts
index 360ce3607559..20d1fc505dbc 100755
--- a/src/app/services/websocket/ws-requests.service.ts
+++ b/src/app/services/websocket/ws-requests.service.ts
@@ -177,10 +177,10 @@ export class WsRequestsService implements OnDestroy {
// per risolvere: se il cambio progetto vien effettuato quando si è nella pagina del dettaglio conversazioni unsuscibe da request by id viene fatto con un path sbagliato
// id-nuovo-progetto/requests/id-richiesta invece che con - id-vecchio-progetto/requests/id-richiesta (vedi in ws-msgs.service unsubsToWS_MsgsByRequestId e unsubscribeTo_wsRequestById in questo componente)
- if (this.subscribed_request_id) {
- this.webSocketJs.unsubscribe('/' + this.project_id + '/requests/' + this.subscribed_request_id); // WHEN CHANGING THE PROJECT I UNSUBSCRIBE FROM THE "REQUEST BY ID" TO WHICH IT IS POSSIBLY SUBSCRIBED
- this.webSocketJs.unsubscribe('/' + this.project_id + '/requests/' + this.subscribed_request_id + '/messages'); // AS ABOVE BUT FOR MESSAGES
- }
+ // if (this.subscribed_request_id) {
+ // this.webSocketJs.unsubscribe('/' + this.project_id + '/requests/' + this.subscribed_request_id); // WHEN CHANGING THE PROJECT I UNSUBSCRIBE FROM THE "REQUEST BY ID" TO WHICH IT IS POSSIBLY SUBSCRIBED
+ // this.webSocketJs.unsubscribe('/' + this.project_id + '/requests/' + this.subscribed_request_id + '/messages'); // AS ABOVE BUT FOR MESSAGES
+ // }
// unsuscribe requester presence al cambio progetto
if (this.subscribed_requester_id) {
this.webSocketJs.unsubscribe('/' + this.project_id + '/project_users/users/' + this.subscribed_requester_id);
@@ -454,7 +454,14 @@ export class WsRequestsService implements OnDestroy {
}
}
-
+ unsubscribePreviousRequestId() {
+ // console.log('[WS-REQUESTS-SERV] UNSUBSCRIBE TO PREVIOUS REQUEST ID ', this.subscribed_request_id)
+
+ if (this.subscribed_request_id) {
+ this.webSocketJs.unsubscribe('/' + this.project_id + '/requests/' + this.subscribed_request_id);
+ this.webSocketJs.unsubscribe('/' + this.project_id + '/requests/' + this.subscribed_request_id + '/messages');
+ }
+ }
// -----------------------------------------------------------------------------------------------------
// methods for REQUEST BY ID
@@ -467,6 +474,9 @@ export class WsRequestsService implements OnDestroy {
*/
subscribeTo_wsRequestById(id_request) {
this.logger.log("[WS-REQUESTS-SERV] - SUBSCR TO WS REQUEST-BY-ID (REF) id_request ", id_request);
+
+ this.unsubscribePreviousRequestId()
+
this.subscribed_request_id = id_request
var self = this;
From 3ab7988c4d2827d95392fc8c62c643e349f02d0a Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Thu, 23 May 2024 15:46:35 +0200
Subject: [PATCH 025/227] Bug fixing
---
src/app/services/contacts.service.ts | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/app/services/contacts.service.ts b/src/app/services/contacts.service.ts
index adc33ed6f4a2..6bce257dc3bc 100755
--- a/src/app/services/contacts.service.ts
+++ b/src/app/services/contacts.service.ts
@@ -265,6 +265,9 @@ export class ContactsService {
// @ Update lead Email
// ---------------------------------------------
public updateLeadEmail(leadid: string, lead_email: string) {
+ if (lead_email === undefined) {
+ lead_email = ""
+ }
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
From e5e5b5e4db1339a26d21c4af98cee1cfbf066867 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Mon, 27 May 2024 18:16:05 +0200
Subject: [PATCH 026/227] Bug fixing
---
src/app/auth/autologin/autologin.component.ts | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/app/auth/autologin/autologin.component.ts b/src/app/auth/autologin/autologin.component.ts
index f610f4134ac5..3fbc23672e91 100755
--- a/src/app/auth/autologin/autologin.component.ts
+++ b/src/app/auth/autologin/autologin.component.ts
@@ -168,11 +168,11 @@ export class AutologinComponent implements OnInit {
this.logger.log('[AUTOLOGIN] SSO - ssoLogin routeSegments ', routeSegments);
const projectIDGetFromRoute = routeSegments[2]
-
+
this.logger.log('[AUTOLOGIN] SSO - ssoLogin projectIDGetFromRoute ', projectIDGetFromRoute);
-
+
this.getProject(projectIDGetFromRoute)
-
+
this.router.navigate([route]);
@@ -199,9 +199,11 @@ export class AutologinComponent implements OnInit {
}, (error) => {
this.logger.error('[AUTOLOGIN] SSO - ssoLogin getCurrentAuthenticatedUser error', error);
// console.log('[AUTOLOGIN] SSO error.error ', error.error);
- // console.log('[AUTOLOGIN] SSO error.status ', error.status);
- this.router.navigate(['invalid-token'])
-
+ // console.log('[AUTOLOGIN] SSO error.status ', error.status);
+ if (error.status === 401) {
+ this.router.navigate(['invalid-token'])
+ }
+
}, () => {
this.logger.log('[AUTOLOGIN] SSO - ssoLogin getCurrentAuthenticatedUser * COMPLETE *');
@@ -220,7 +222,7 @@ export class AutologinComponent implements OnInit {
});
}
-
+
getProject(projectIDGetFromRouteIsNumber) {
@@ -238,7 +240,7 @@ export class AutologinComponent implements OnInit {
})
}
-
+
From 7e969133c6bcf1d8db7f0bc04cf51b97cf5bb87c Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Mon, 27 May 2024 18:26:01 +0200
Subject: [PATCH 027/227] Bug fixing
---
src/app/auth/autologin/autologin.component.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/app/auth/autologin/autologin.component.ts b/src/app/auth/autologin/autologin.component.ts
index 3fbc23672e91..507d48778096 100755
--- a/src/app/auth/autologin/autologin.component.ts
+++ b/src/app/auth/autologin/autologin.component.ts
@@ -200,7 +200,7 @@ export class AutologinComponent implements OnInit {
this.logger.error('[AUTOLOGIN] SSO - ssoLogin getCurrentAuthenticatedUser error', error);
// console.log('[AUTOLOGIN] SSO error.error ', error.error);
// console.log('[AUTOLOGIN] SSO error.status ', error.status);
- if (error.status === 401) {
+ if (error && error.status && error.status === 401) {
this.router.navigate(['invalid-token'])
}
From 0c4154e05f164e980b32ddf1324dd5c295be6565 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Thu, 6 Jun 2024 17:21:15 +0200
Subject: [PATCH 028/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2e1f051aca79..e2643a0a857f 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.35-rc1
+- Namespace CRUD (in progress)
+
### 2.6.34
- Deploys in production
- Minor improvements and bug fixing
diff --git a/package-lock.json b/package-lock.json
index 252776aac830..4913baff5a77 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.34",
+ "version": "2.6.35-rc1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/package.json b/package.json
index e73b0262f93e..15f05d715d10 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.34",
+ "version": "2.6.35-rc1",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From 4100c4236d623510010e7f87704ddbf364a1d72c Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Fri, 7 Jun 2024 17:00:26 +0200
Subject: [PATCH 029/227] Updates versione
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
src/app/knowledge-bases/knowledge-bases.component.ts | 5 +++++
4 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6d8c866ea7e8..8a130d949452 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.35-rc2
+- Namespace CRUD (in progress)
+
### 2.6.35-rc1
- Namespace CRUD (in progress)
diff --git a/package-lock.json b/package-lock.json
index 9b4afbb3251a..5cb8eb108433 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.35-rc1",
+ "version": "2.6.35-rc2",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index 15f05d715d10..5e8cdb31845e 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.35-rc1",
+ "version": "2.6.35-rc2",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
diff --git a/src/app/knowledge-bases/knowledge-bases.component.ts b/src/app/knowledge-bases/knowledge-bases.component.ts
index ef688500ac43..3a2df9e6d04c 100644
--- a/src/app/knowledge-bases/knowledge-bases.component.ts
+++ b/src/app/knowledge-bases/knowledge-bases.component.ts
@@ -317,9 +317,14 @@ export class KnowledgeBasesComponent extends PricingBaseComponent implements OnI
console.log('[KNOWLEDGE-BASES-COMP] CREATE NEW NAMESPACE selectedNamespaceID', this.selectedNamespaceID)
this.selectedNamespaceIsDefault = namespace['default'];
+ console.log('[KNOWLEDGE-BASES-COMP] CREATE NEW NAMESPACE selectedNamespaceID', this.selectedNamespaceIsDefault)
+
this.localDbService.setInStorage(`last_kbnamespace-${this.id_project}`, JSON.stringify(namespace))
this.namespaces.push(namespace)
+
+ let paramsDefault = "?limit=" + KB_DEFAULT_PARAMS.LIMIT + "&page=" + KB_DEFAULT_PARAMS.NUMBER_PAGE + "&sortField=" + KB_DEFAULT_PARAMS.SORT_FIELD + "&direction=" + KB_DEFAULT_PARAMS.DIRECTION + "&namespace=" + this.selectedNamespaceID;
+ this.getListOfKb(paramsDefault);
console.log('[KNOWLEDGE-BASES-COMP] CREATE NEW NAMESPACE namespaces', this.namespaces)
}
}, (error) => {
From b4ac5cce891449447c763b644e824797c3f9628a Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Mon, 10 Jun 2024 11:00:45 +0200
Subject: [PATCH 030/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8a130d949452..324cd9dab017 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.36-rc1
+- Namespace CRUD (in progress)
+
### 2.6.35-rc2
- Namespace CRUD (in progress)
diff --git a/package-lock.json b/package-lock.json
index 5cb8eb108433..cea53458bdbe 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.35-rc2",
+ "version": "2.6.36-rc1",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index 5e8cdb31845e..faf44dbb9ca9 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.35-rc2",
+ "version": "2.6.36-rc1",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From 752bea7ac578f535cd4ce1fc186eb11bf44d0c21 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Mon, 10 Jun 2024 12:30:01 +0200
Subject: [PATCH 031/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 324cd9dab017..cb2e60a3580e 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.36-rc2
+- Namespace CRUD (in progress)
+
### 2.6.36-rc1
- Namespace CRUD (in progress)
diff --git a/package-lock.json b/package-lock.json
index cea53458bdbe..d85b798e3124 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc1",
+ "version": "2.6.36-rc2",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index faf44dbb9ca9..e7cfa5d311fc 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc1",
+ "version": "2.6.36-rc2",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From 60bd07a708b19d501aa7771bd7e2ec6aebfcc497 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Mon, 10 Jun 2024 12:53:22 +0200
Subject: [PATCH 032/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
src/app/knowledge-bases/knowledge-bases.component.ts | 9 ++++++---
4 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cb2e60a3580e..8ebb53641e45 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.36-rc3
+- Namespace CRUD (in progress)
+
### 2.6.36-rc2
- Namespace CRUD (in progress)
diff --git a/package-lock.json b/package-lock.json
index d85b798e3124..7d01f303402f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc2",
+ "version": "2.6.36-rc3",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index e7cfa5d311fc..c09ce8ec12f4 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc2",
+ "version": "2.6.36-rc3",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
diff --git a/src/app/knowledge-bases/knowledge-bases.component.ts b/src/app/knowledge-bases/knowledge-bases.component.ts
index 7c9d4c5f7697..335737306f19 100644
--- a/src/app/knowledge-bases/knowledge-bases.component.ts
+++ b/src/app/knowledge-bases/knowledge-bases.component.ts
@@ -219,6 +219,7 @@ export class KnowledgeBasesComponent extends PricingBaseComponent implements OnI
}
selectLastUsedNamespaceAndGetKbList(namespaces) {
+ this.paramsDefault = "?limit=" + KB_DEFAULT_PARAMS.LIMIT + "&page=" + KB_DEFAULT_PARAMS.NUMBER_PAGE + "&sortField=" + KB_DEFAULT_PARAMS.SORT_FIELD + "&direction=" + KB_DEFAULT_PARAMS.DIRECTION + "&namespace=" + this.selectedNamespaceID;
const storedNamespace = this.localDbService.getFromStorage(`last_kbnamespace-${this.id_project}`)
@@ -237,7 +238,7 @@ export class KnowledgeBasesComponent extends PricingBaseComponent implements OnI
// this.paramsDefault = "?limit=" + KB_DEFAULT_PARAMS.LIMIT + "&page=" + KB_DEFAULT_PARAMS.NUMBER_PAGE + "&sortField=" + KB_DEFAULT_PARAMS.SORT_FIELD + "&direction=" + KB_DEFAULT_PARAMS.DIRECTION + "&namespace=" + this.selectedNamespaceID;
// this.getListOfKb(this.paramsDefault);
-
+ this.getListOfKb(this.paramsDefault, 'selectLastUsedNamespaceAndGetKbList');
} else {
console.log('[KNOWLEDGE-BASES-COMP] selectLastUsedNamespace on init EXIST storedNamespace')
const storedNamespaceObjct = JSON.parse(storedNamespace)
@@ -256,6 +257,7 @@ export class KnowledgeBasesComponent extends PricingBaseComponent implements OnI
this.selectedNamespaceIsDefault = selectedNameSpaceObjct[0]['default'];
console.log('[KNOWLEDGE-BASES-COMP] selectLastUsedNamespace on init selectedNamespaceIsDefault (FROM NAMESPACES)', this.selectedNamespaceIsDefault)
+ this.getListOfKb(this.paramsDefault, 'selectLastUsedNamespaceAndGetKbList');
} else {
console.log('[KNOWLEDGE-BASES-COMP] selectLastUsedNamespace on init selectedNameSpaceObjct IS EMPTY fallback to default')
let selectedNameSpaceObjct = namespaces.filter((el) => {
@@ -266,6 +268,7 @@ export class KnowledgeBasesComponent extends PricingBaseComponent implements OnI
this.selectedNamespaceID = selectedNameSpaceObjct[0]['id'];
console.log('[KNOWLEDGE-BASES-COMP] selectLastUsedNamespace on init (fallback to default) selectedNamespaceID', this.selectedNamespaceID)
this.selectedNamespaceIsDefault = selectedNameSpaceObjct[0]['default'];
+ this.getListOfKb(this.paramsDefault, 'selectLastUsedNamespaceAndGetKbList');
}
@@ -273,8 +276,8 @@ export class KnowledgeBasesComponent extends PricingBaseComponent implements OnI
// console.log('[KNOWLEDGE-BASES-COMP] selectLastUsedNamespace on init selectedNamespace (FROM STORAGE)', this.selectedNamespaceName)
- this.paramsDefault = "?limit=" + KB_DEFAULT_PARAMS.LIMIT + "&page=" + KB_DEFAULT_PARAMS.NUMBER_PAGE + "&sortField=" + KB_DEFAULT_PARAMS.SORT_FIELD + "&direction=" + KB_DEFAULT_PARAMS.DIRECTION + "&namespace=" + this.selectedNamespaceID;
- this.getListOfKb(this.paramsDefault, 'selectLastUsedNamespaceAndGetKbList');
+ // this.paramsDefault = "?limit=" + KB_DEFAULT_PARAMS.LIMIT + "&page=" + KB_DEFAULT_PARAMS.NUMBER_PAGE + "&sortField=" + KB_DEFAULT_PARAMS.SORT_FIELD + "&direction=" + KB_DEFAULT_PARAMS.DIRECTION + "&namespace=" + this.selectedNamespaceID;
+ // this.getListOfKb(this.paramsDefault, 'selectLastUsedNamespaceAndGetKbList');
}
}
From abce61b1336fba9683168f099948ef0f0f5b5d91 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Mon, 10 Jun 2024 18:29:06 +0200
Subject: [PATCH 033/227] Bug fix
---
src/app/knowledge-bases/knowledge-bases.component.ts | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/app/knowledge-bases/knowledge-bases.component.ts b/src/app/knowledge-bases/knowledge-bases.component.ts
index 251720c78e84..ff23cd859e5f 100644
--- a/src/app/knowledge-bases/knowledge-bases.component.ts
+++ b/src/app/knowledge-bases/knowledge-bases.component.ts
@@ -223,7 +223,6 @@ export class KnowledgeBasesComponent extends PricingBaseComponent implements OnI
}
selectLastUsedNamespaceAndGetKbList(namespaces) {
- this.paramsDefault = "?limit=" + KB_DEFAULT_PARAMS.LIMIT + "&page=" + KB_DEFAULT_PARAMS.NUMBER_PAGE + "&sortField=" + KB_DEFAULT_PARAMS.SORT_FIELD + "&direction=" + KB_DEFAULT_PARAMS.DIRECTION + "&namespace=" + this.selectedNamespace.id;
const storedNamespace = this.localDbService.getFromStorage(`last_kbnamespace-${this.id_project}`)
From fe761f61afa52b0ac35072ff398240a17c0d7e9a Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Mon, 10 Jun 2024 18:31:57 +0200
Subject: [PATCH 034/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8ebb53641e45..77c0c0aefa99 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.36-rc4
+- Namespace CRUD (in progress)
+
### 2.6.36-rc3
- Namespace CRUD (in progress)
diff --git a/package-lock.json b/package-lock.json
index 7d01f303402f..2963aaa66a44 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc3",
+ "version": "2.6.36-rc4",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index c09ce8ec12f4..e71dbef907b7 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc3",
+ "version": "2.6.36-rc4",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From a50b396fb36c051676446f81981a3449677bca2a Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Tue, 11 Jun 2024 09:03:27 +0200
Subject: [PATCH 035/227] Updates version
---
CHANGELOG.md | 5 +++++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 77c0c0aefa99..53b47b1567d4 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
# tiledesk-dashboard
+### 2.6.36-rc5
+- Fixes bug: filters applied on contents are not reset when changing namespace
+- Fixes bug: infinite scrolling of content does not work
+- Fixes bug: updating namespace name happens even when no changes have been made
+
### 2.6.36-rc4
- Namespace CRUD (in progress)
diff --git a/package-lock.json b/package-lock.json
index 2963aaa66a44..8a946b3100ec 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc4",
+ "version": "2.6.36-rc5",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index e71dbef907b7..8d0fe2418a0c 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc4",
+ "version": "2.6.36-rc5",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From d3d7d691354520d0712f41f20513ee9b21cb01ec Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Tue, 11 Jun 2024 09:34:57 +0200
Subject: [PATCH 036/227] Fixes bug: the app crashes if the namespace saved in
storage does not exist in the namespaces returned by the GET request
---
.../knowledge-bases/knowledge-bases.component.ts | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/app/knowledge-bases/knowledge-bases.component.ts b/src/app/knowledge-bases/knowledge-bases.component.ts
index 8704831b371a..c9e99c377306 100644
--- a/src/app/knowledge-bases/knowledge-bases.component.ts
+++ b/src/app/knowledge-bases/knowledge-bases.component.ts
@@ -259,13 +259,23 @@ export class KnowledgeBasesComponent extends PricingBaseComponent implements OnI
return el.id === storedNamespaceObjct['id'];
});
console.log('[KNOWLEDGE-BASES-COMP] selectLastUsedNamespace on init selectedNamespace (FIND WITH ID GET FROM STORAGE)', this.selectedNamespace)
- console.log('[KNOWLEDGE-BASES-COMP] selectLastUsedNamespace on init selectedNamespace (FIND WITH ID GET FROM STORAGE) ID', this.selectedNamespace.id)
- this.selectedNamespaceName = this.selectedNamespace.name
+
+
+ if (this.selectedNamespace) {
+ console.log('[KNOWLEDGE-BASES-COMP] selectLastUsedNamespace on init selectedNamespace (FIND WITH ID GET FROM STORAGE) ID', this.selectedNamespace.id)
+ this.selectedNamespaceName = this.selectedNamespace.name
+ console.log('[KNOWLEDGE-BASES-COMP] selectLastUsedNamespace on init selectedNamespace (FIND WITH ID GET FROM STORAGE)', this.selectedNamespaceName)
+ } else {
+ this.selectedNamespace = namespaces.find((el) => {
+ return el.default === true
+ });
+ this.selectedNamespaceName = this.selectedNamespace.name
+ }
// if (selectedNameSpaceObjct.length > 0) {
// console.log('[KNOWLEDGE-BASES-COMP] selectLastUsedNamespace on init selectedNameSpaceObjct', selectedNameSpaceObjct)
// this.selectedNamespaceName = selectedNameSpaceObjct[0]['name']
- console.log('[KNOWLEDGE-BASES-COMP] selectLastUsedNamespace on init selectedNamespace (FIND WITH ID GET FROM STORAGE)', this.selectedNamespaceName)
+
// this.selectedNamespaceIsDefault = selectedNameSpaceObjct[0]['default'];
// console.log('[KNOWLEDGE-BASES-COMP] selectLastUsedNamespace on init selectedNamespaceIsDefault (FROM NAMESPACES)', this.selectedNamespaceIsDefault)
From 5460d3bf5713b757474b3ad1e672e88b6aa8bb22 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Tue, 11 Jun 2024 09:35:12 +0200
Subject: [PATCH 037/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 53b47b1567d4..597fdd6a269f 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.36-rc6
+- Fixes bug: the app crashes if the namespace saved in storage does not exist in the namespaces returned by the GET request
+
### 2.6.36-rc5
- Fixes bug: filters applied on contents are not reset when changing namespace
- Fixes bug: infinite scrolling of content does not work
diff --git a/package-lock.json b/package-lock.json
index 8a946b3100ec..d72e324cf8f4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc5",
+ "version": "2.6.36-rc6",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index 8d0fe2418a0c..6713a2bd2f74 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc5",
+ "version": "2.6.36-rc6",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From dd6318e19ce0146b23a1d04c782948df7500ea68 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Tue, 11 Jun 2024 17:37:44 +0200
Subject: [PATCH 038/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 597fdd6a269f..1e5a54208938 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.36-rc7
+- Adds the ability to edit LLM model parameters
+
### 2.6.36-rc6
- Fixes bug: the app crashes if the namespace saved in storage does not exist in the namespaces returned by the GET request
diff --git a/package-lock.json b/package-lock.json
index d72e324cf8f4..62a7f9c2d402 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc6",
+ "version": "2.6.36-rc7",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index 6713a2bd2f74..c931bc59400c 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc6",
+ "version": "2.6.36-rc7",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From 16db7724d8ef524923f1b783ca707e15663a3af1 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Mon, 17 Jun 2024 10:16:15 +0200
Subject: [PATCH 039/227] Updates version
---
CHANGELOG.md | 5 ++++-
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1e5a54208938..7bb968255259 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,10 @@
# tiledesk-dashboard
+### 2.6.38-rc1
+- Adds the ability on the "Manage contents" page to import files
+
### 2.6.36-rc7
-- Adds the ability to edit LLM model parameters
+- Adds the ability on the "Manage contents" page to edit LLM model parameters
### 2.6.36-rc6
- Fixes bug: the app crashes if the namespace saved in storage does not exist in the namespaces returned by the GET request
diff --git a/package-lock.json b/package-lock.json
index 62a7f9c2d402..bbd5b12730de 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc7",
+ "version": "2.6.38-rc1",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index c931bc59400c..ff42f3b977d0 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.36-rc7",
+ "version": "2.6.38-rc1",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From 933edab298e4d57c13a4ce2af7fa4ec4b86e6c0d Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Tue, 18 Jun 2024 15:46:54 +0200
Subject: [PATCH 040/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7bb968255259..85b3f3d05869 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.38-rc2
+- Minor improvements and bug fixing
+
### 2.6.38-rc1
- Adds the ability on the "Manage contents" page to import files
diff --git a/package-lock.json b/package-lock.json
index bbd5b12730de..ad8ba1856190 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc1",
+ "version": "2.6.38-rc2",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index ff42f3b977d0..936e4fe9f093 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc1",
+ "version": "2.6.38-rc2",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From 220153a7866591731083fb7d65137d53fc72972c Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Tue, 18 Jun 2024 18:05:46 +0200
Subject: [PATCH 041/227] Fixes translations
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 85b3f3d05869..872f5a89e920 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.38-rc3
+- Fixes translations
+
### 2.6.38-rc2
- Minor improvements and bug fixing
diff --git a/package-lock.json b/package-lock.json
index ad8ba1856190..299838ccb3c7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc2",
+ "version": "2.6.38-rc3",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index 936e4fe9f093..4a71612ad5df 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc2",
+ "version": "2.6.38-rc3",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From a01c5fb7753fd3fd14bd0f011d88e10975b508ba Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Wed, 19 Jun 2024 09:24:44 +0200
Subject: [PATCH 042/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 872f5a89e920..78399a637326 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.38-rc4
+- Improvements and bug fixing
+
### 2.6.38-rc3
- Fixes translations
diff --git a/package-lock.json b/package-lock.json
index 299838ccb3c7..3950b2b26090 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc3",
+ "version": "2.6.38-rc4",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index 4a71612ad5df..f7573534e945 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc3",
+ "version": "2.6.38-rc4",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From c1df316825b8711be266e46f971526ed9bf31c21 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Wed, 19 Jun 2024 17:29:15 +0200
Subject: [PATCH 043/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 78399a637326..fee3717f3af8 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.38-rc5
+- Improvements and bug fixing
+
### 2.6.38-rc4
- Improvements and bug fixing
diff --git a/package-lock.json b/package-lock.json
index 3950b2b26090..ceaef47d2a3e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc4",
+ "version": "2.6.38-rc5",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index f7573534e945..d47ff78b8fcc 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc4",
+ "version": "2.6.38-rc5",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From bb900c4c68ce408f04b3c61b94fc39e843f5b839 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Thu, 20 Jun 2024 08:59:27 +0200
Subject: [PATCH 044/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fee3717f3af8..b4bc8504971b 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.38-rc6
+- Bug fixing
+
### 2.6.38-rc5
- Improvements and bug fixing
diff --git a/package-lock.json b/package-lock.json
index ceaef47d2a3e..c5a246600069 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc5",
+ "version": "2.6.38-rc6",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index d47ff78b8fcc..a2e3c0921968 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc5",
+ "version": "2.6.38-rc6",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From c3ab7ae2cdd7f06b0035d6c4022e562e6174e9c0 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Thu, 20 Jun 2024 09:58:37 +0200
Subject: [PATCH 045/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b4bc8504971b..a0bff01baf37 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.38-rc7
+- Disables loading of txt files
+
### 2.6.38-rc6
- Bug fixing
diff --git a/package-lock.json b/package-lock.json
index c5a246600069..11d773fc1cf4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc6",
+ "version": "2.6.38-rc7",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index a2e3c0921968..64490a91a015 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc6",
+ "version": "2.6.38-rc7",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From dde585d667bce6b164e664bb5b4a8dc0a3f80aa6 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Thu, 20 Jun 2024 13:23:59 +0200
Subject: [PATCH 046/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a0bff01baf37..591ebf6186d1 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.38-rc8
+- Bug fixing
+
### 2.6.38-rc7
- Disables loading of txt files
diff --git a/package-lock.json b/package-lock.json
index 11d773fc1cf4..2c8d432e84ef 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc7",
+ "version": "2.6.38-rc8",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index 64490a91a015..2e2e5f99eac9 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc7",
+ "version": "2.6.38-rc8",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From 2775d1957292cde19d0b683988910a63548ca626 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Tue, 25 Jun 2024 14:26:52 +0200
Subject: [PATCH 047/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
src/app/bots/bots-list/bots-list.component.scss | 2 +-
4 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 591ebf6186d1..394cf82b7474 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.39-rc1
+- Add the ability to create a chatbot connected to a Knowledge base on the Manage your Knowledge bases page
+
### 2.6.38-rc8
- Bug fixing
diff --git a/package-lock.json b/package-lock.json
index 2c8d432e84ef..a85b4aefc9be 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc8",
+ "version": "2.6.39-rc1",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index 2e2e5f99eac9..3fd1c7995940 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.38-rc8",
+ "version": "2.6.39-rc1",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
diff --git a/src/app/bots/bots-list/bots-list.component.scss b/src/app/bots/bots-list/bots-list.component.scss
index bc8293566eb5..a7eddfe23714 100755
--- a/src/app/bots/bots-list/bots-list.component.scss
+++ b/src/app/bots/bots-list/bots-list.component.scss
@@ -385,7 +385,7 @@ input[type="checkbox"]:disabled {
font-family: "Poppins", "Roboto", "Arial", sans-serif !important;
padding-top: 8px !important;
padding-bottom: 8px !important;
- color: #fff;
+ color: #fff !important;
}
/* New chatbot table
From 87ae531aec8f85a044751db432580555bcd78707 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Wed, 26 Jun 2024 11:09:25 +0200
Subject: [PATCH 048/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 394cf82b7474..ef04cdadae14 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.39-rc2
+- Improvements and bug fixing
+
### 2.6.39-rc1
- Add the ability to create a chatbot connected to a Knowledge base on the Manage your Knowledge bases page
diff --git a/package-lock.json b/package-lock.json
index a85b4aefc9be..99760e867d34 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.39-rc1",
+ "version": "2.6.39-rc2",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index 3fd1c7995940..60926946f760 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.39-rc1",
+ "version": "2.6.39-rc2",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From 442ae3f22639b34fb1f046837133e68fc7fc29f6 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Wed, 26 Jun 2024 12:02:04 +0200
Subject: [PATCH 049/227] Updates version
---
CHANGELOG.md | 3 +++
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ef04cdadae14..b753d21ccbaa 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# tiledesk-dashboard
+### 2.6.39-rc3
+- Improvements and bug fixing
+
### 2.6.39-rc2
- Improvements and bug fixing
diff --git a/package-lock.json b/package-lock.json
index 99760e867d34..02d198e2a076 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.39-rc2",
+ "version": "2.6.39-rc3",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index 60926946f760..2ba358a438be 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.39-rc2",
+ "version": "2.6.39-rc3",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From 71585d76deda9607a97dcc56a20936ea1f4b3a36 Mon Sep 17 00:00:00 2001
From: Nicola Lanzilotto
Date: Thu, 27 Jun 2024 14:58:31 +0200
Subject: [PATCH 050/227] Updates version
---
CHANGELOG.md | 2 +-
package-lock.json | 2 +-
package.json | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 59bc442d37c4..2f6ca3775c5a 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
# tiledesk-dashboard
-### 2.6.41
+### 2.6.41-rc1
- Deploys in production
- Displays information about the Voice channel
diff --git a/package-lock.json b/package-lock.json
index a7e95417fcf6..47c0e154f270 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.41",
+ "version": "2.6.41-rc1",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index 0a27bdbb1d9b..b092d11615dc 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tiledesk/tiledesk-dashboard",
- "version": "2.6.41",
+ "version": "2.6.41-rc1",
"scripts": {
"ng": "ng",
"start": "ng serve --aot",
From 65272de565667e7f6e3c08b644e092b6068565e1 Mon Sep 17 00:00:00 2001
From: Giovanni Troisi
Date: Thu, 27 Jun 2024 16:30:29 +0200
Subject: [PATCH 051/227] added voice integration
---
.../integrations/integrations.component.ts | 31 ++++++++++++++++++
src/app/integrations/utils.ts | 9 +++--
src/assets/img/int/vxml-icon.png | Bin 0 -> 239651 bytes
3 files changed, 37 insertions(+), 3 deletions(-)
create mode 100644 src/assets/img/int/vxml-icon.png
diff --git a/src/app/integrations/integrations.component.ts b/src/app/integrations/integrations.component.ts
index 331ad716774d..bee284affb6f 100644
--- a/src/app/integrations/integrations.component.ts
+++ b/src/app/integrations/integrations.component.ts
@@ -275,6 +275,25 @@ export class IntegrationsComponent implements OnInit, OnDestroy {
}
this.availableApps.push(telegramApp);
+ let voiceApp = response.apps.find(a => (a.title === APPS_TITLE.VOICE && a.version === "v2"));
+ if (environment['voiceConfigUrl']) {
+ if (voiceApp) {
+ voiceApp.runURL = environment['voiceConfigUrl'];
+ voiceApp.channel = "voice";
+ } else {
+ voiceApp = {
+ voiceApp: environment['voiceConfigUrl'],
+ channel: "voice"
+ }
+ }
+ }
+ else {
+ if (voiceApp) {
+ voiceApp.channel = "voice";
+ }
+ }
+ this.availableApps.push(voiceApp);
+
resolve(true);
}, (error) => {
@@ -655,6 +674,11 @@ export class IntegrationsComponent implements OnInit, OnDestroy {
if (index != -1) { this.INTEGRATIONS.splice(index, 1) };
}
+ if (!projectProfileData.customization[this.INT_KEYS.VOICE] || projectProfileData.customization[this.INT_KEYS.VOICE] === false) {
+ let index = this.INTEGRATIONS.findIndex(i => i.key === this.INT_KEYS.VOICE);
+ if (index != -1) { this.INTEGRATIONS.splice(index, 1) };
+ }
+
let index = this.INTEGRATIONS.findIndex(i => i.category === INTEGRATIONS_CATEGORIES.CHANNEL);
if (index === -1) {
let idx = this.CATEGORIES.findIndex(c => c.type === INTEGRATIONS_CATEGORIES.CHANNEL);
@@ -663,6 +687,13 @@ export class IntegrationsComponent implements OnInit, OnDestroy {
}
}
}
+
+ if (projectProfileData && !projectProfileData.customization) {
+ let index = this.INTEGRATIONS.findIndex(i => i.key === this.INT_KEYS.VOICE);
+ if (index != -1) { this.INTEGRATIONS.splice(index, 1) };
+ }
+
+
this.integrationListReady = true;
}
diff --git a/src/app/integrations/utils.ts b/src/app/integrations/utils.ts
index c69358333d60..a82e82eee152 100644
--- a/src/app/integrations/utils.ts
+++ b/src/app/integrations/utils.ts
@@ -15,6 +15,7 @@ export enum INTEGRATIONS_KEYS {
SALESFORCE = 'salesforce',
TELEGRAM = 'telegram',
TWILIO = 'twilio',
+ VOICE = 'voice',
WHATSAPP = 'whatsapp',
ZAPIER = 'zapier',
ZENDESK = 'zendesk',
@@ -24,7 +25,8 @@ export enum INTEGRATIONS_KEYS {
export enum APPS_TITLE {
WHATSAPP = "WhatsApp Business",
MESSENGER = "Facebook Messenger",
- TELEGRAM = "Telegram"
+ TELEGRAM = "Telegram",
+ VOICE = "Voice Channel"
}
export enum INTEGRATIONS_CATEGORIES {
@@ -97,8 +99,9 @@ export const INTEGRATION_LIST_ARRAY = [
{ name: "Messenger", category: INTEGRATIONS_CATEGORIES.CHANNEL, key: INTEGRATIONS_KEYS.MESSENGER, src_icon: "assets/img/int/messenger-icon.png", src_logo: "assets/img/int/messenger-logo.jpeg", pro: true, plan: 'Premium' },
//{ name: "Pipedrive", category: INTEGRATIONS_CATEGORIES.CRM, key: INTEGRATIONS_KEYS.PIPEDRIVE, src_icon: "assets/img/int/pipedrive-icon.png", src_logo: "assets/img/int/pipedrive-logo.png", pro: true, plan: 'Premium' },
//{ name: "Salesforce", category: INTEGRATIONS_CATEGORIES.CRM, key: INTEGRATIONS_KEYS.SALESFORCE, src_icon: "assets/img/int/salesforce-icon.png", src_logo: "assets/img/int/salesforce-logo.png", pro: true, plan: 'Premium' },
- { name: "Telegram", category: INTEGRATIONS_CATEGORIES.CHANNEL, key: INTEGRATIONS_KEYS.TELEGRAM, src_icon: "assets/img/int/telegram-icon.png", src_logo: "assets/img/int/telegram-logo.png", pro: false, plan: 'Sandbox' },
- { name: "WhatsApp", category: INTEGRATIONS_CATEGORIES.CHANNEL, key: INTEGRATIONS_KEYS.WHATSAPP, src_icon: "assets/img/int/whatsapp-icon.png", src_logo: "assets/img/int/whatsapp-logo.png", pro: true, plan: 'Premium' },
+ { name: "Telegram", category: INTEGRATIONS_CATEGORIES.CHANNEL, key: INTEGRATIONS_KEYS.TELEGRAM, src_icon: "assets/img/int/telegram-icon.png", src_logo: "assets/img/int/telegram-logo.png", pro: false, plan: 'Sandbox' },
+ { name: "Voice Channel", category: INTEGRATIONS_CATEGORIES.CHANNEL, key: INTEGRATIONS_KEYS.VOICE, src_icon: "assets/img/int/vxml-icon.png", src_logo: "assets/img/int/vxml-icon.png", pro: true, plan: 'Premium' },
+ { name: "WhatsApp", category: INTEGRATIONS_CATEGORIES.CHANNEL, key: INTEGRATIONS_KEYS.WHATSAPP, src_icon: "assets/img/int/whatsapp-icon.png", src_logo: "assets/img/int/whatsapp-logo.png", pro: true, plan: 'Custom' },
//{ name: "Zapier", category: INTEGRATIONS_CATEGORIES.INT_PLAT, key: INTEGRATIONS_KEYS.ZAPIER, src_icon: "assets/img/int/zapier-icon.png", src_logo: "assets/img/int/zapier-logo.svg", pro: true, plan: 'Basic' },
//{ name: "Zendesk", category: INTEGRATIONS_CATEGORIES.LIVE_CHAT, key: INTEGRATIONS_KEYS.ZENDESK, src_icon: "assets/img/int/zendesk-icon.png", src_logo: "assets/img/int/zendesk-logo.png", pro: true, plan: 'Premium' },
//{ name: "Zoho", category: INTEGRATIONS_CATEGORIES.OTHER, key: INTEGRATIONS_KEYS.ZOHO, src_icon: "assets/img/int/zoho-icon.png", src_logo: "assets/img/int/zoho-logo.png", pro: true, plan: 'Premium' }
diff --git a/src/assets/img/int/vxml-icon.png b/src/assets/img/int/vxml-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..0fac1b5a95d6b53e9acea2b9f446abb4f4264507
GIT binary patch
literal 239651
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 |