Added contact and term btn
This commit is contained in:
parent
c05de5d325
commit
a4a528b6ca
55
Chat.go
55
Chat.go
@ -296,14 +296,65 @@ func generateWelcomeChatHTML() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func generateEnterKeyChatHTML() string {
|
func generateEnterKeyChatHTML() string {
|
||||||
welcomeMessage := `To start using JADE, please enter at least one key in the settings.`
|
welcomeMessage := `
|
||||||
|
<p class="mt-2">To start using JADE, please enter at least one key in the settings.</p>
|
||||||
|
<ul>
|
||||||
|
<li>OpenAI: <a href="https://openai.com/index/openai-api" target="_blank">Link</a></li>
|
||||||
|
<li>Anthropic: <a href="https://www.anthropic.com/api" target="_blank">Link</a></li>
|
||||||
|
<li>Mistral: <a href="https://mistral.ai/news/la-plateforme" target="_blank">Link</a></li>
|
||||||
|
<li>Groq: <a href="https://console.groq.com/login" target="_blank">Link</a></li>
|
||||||
|
</ul>
|
||||||
|
`
|
||||||
|
|
||||||
htmlString := "<div class='columns is-centered' id='chat-container'><div class='column is-12-mobile is-8-tablet is-6-desktop' id='chat-messages'>"
|
htmlString := "<div class='columns is-centered' id='chat-container'><div class='column is-12-mobile is-8-tablet is-6-desktop' id='chat-messages'>"
|
||||||
|
|
||||||
NextMessages := []TemplateMessage{}
|
NextMessages := []TemplateMessage{}
|
||||||
nextMsg := TemplateMessage{
|
nextMsg := TemplateMessage{
|
||||||
Icon: "icons/bouvai2.png", // Assuming Icon is a field you want to include from Message
|
Icon: "icons/bouvai2.png", // Assuming Icon is a field you want to include from Message
|
||||||
Content: "<br>" + markdownToHTML(welcomeMessage),
|
Content: welcomeMessage,
|
||||||
|
Hidden: false, // Assuming Hidden is a field you want to include from Message
|
||||||
|
Id: "0",
|
||||||
|
Name: "JADE",
|
||||||
|
}
|
||||||
|
NextMessages = append(NextMessages, nextMsg)
|
||||||
|
|
||||||
|
botOut, err := botTmpl.Execute(pongo2.Context{"Messages": NextMessages, "ConversationAreaId": 0, "NotClickable": true})
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
htmlString += botOut
|
||||||
|
htmlString += "<div style='height: 10px;'></div>"
|
||||||
|
htmlString += "</div></div>"
|
||||||
|
|
||||||
|
// Render the HTML template with the messages
|
||||||
|
return htmlString
|
||||||
|
}
|
||||||
|
|
||||||
|
func generateTermAndServiceHandler(c *fiber.Ctx) error {
|
||||||
|
return c.SendString(generateTermAndServiceChatHTML())
|
||||||
|
}
|
||||||
|
|
||||||
|
func generateTermAndServiceChatHTML() string {
|
||||||
|
welcomeMessage := `
|
||||||
|
<p class="mt-2">TODO Add terms and service.</p>
|
||||||
|
`
|
||||||
|
|
||||||
|
closeBtn := `
|
||||||
|
<div class="is-flex is-justify-content-flex-end">
|
||||||
|
<a class="button is-small is-danger is-outlined" hx-get="/loadChat" hx-target="#chat-container" hx-swap="outerHTML"
|
||||||
|
hx-trigger="click">
|
||||||
|
<span class="icon">
|
||||||
|
<i class="fa-solid fa-xmark"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</div>`
|
||||||
|
|
||||||
|
htmlString := "<div class='columns is-centered' id='chat-container'><div class='column is-12-mobile is-8-tablet is-6-desktop' id='chat-messages'>"
|
||||||
|
|
||||||
|
NextMessages := []TemplateMessage{}
|
||||||
|
nextMsg := TemplateMessage{
|
||||||
|
Icon: "icons/bouvai2.png", // Assuming Icon is a field you want to include from Message
|
||||||
|
Content: welcomeMessage + closeBtn,
|
||||||
Hidden: false, // Assuming Hidden is a field you want to include from Message
|
Hidden: false, // Assuming Hidden is a field you want to include from Message
|
||||||
Id: "0",
|
Id: "0",
|
||||||
Name: "JADE",
|
Name: "JADE",
|
||||||
|
1
main.go
1
main.go
@ -97,6 +97,7 @@ func main() {
|
|||||||
app.Get("/", ChatPageHandler)
|
app.Get("/", ChatPageHandler)
|
||||||
app.Get("/loadChat", LoadChatHandler)
|
app.Get("/loadChat", LoadChatHandler)
|
||||||
app.Get("/pricingTable", PricingTableHandler)
|
app.Get("/pricingTable", PricingTableHandler)
|
||||||
|
app.Get("/generateTermAndService", generateTermAndServiceHandler)
|
||||||
|
|
||||||
// Chat routes
|
// Chat routes
|
||||||
app.Post("/deleteMessage", DeleteMessageHandler)
|
app.Post("/deleteMessage", DeleteMessageHandler)
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
<input class="input is-small mt-2 is-hidden" type="text" id="conversation-name-input"
|
<input class="input is-small mt-2 is-hidden" type="text" id="conversation-name-input"
|
||||||
name="conversation-name-input" placeholder="Conversation name" autocomplete="off">
|
name="conversation-name-input" placeholder="Conversation name" autocomplete="off">
|
||||||
<div class="is-flex is-justify-content-space-between mt-4">
|
<div class="is-flex is-justify-content-space-between mt-4">
|
||||||
<button class="button is-small is-danger" id="delete-conversation-button"
|
<button disabled class="button is-small is-danger" id="delete-conversation-button"
|
||||||
hx-get="/deleteConversation" hx-swap="outerHTML" hx-target="#conversation-dropdown"
|
hx-get="/deleteConversation" hx-swap="outerHTML" hx-target="#conversation-dropdown"
|
||||||
hx-vals="js:{conversationId: findSelectedConversationID()}">
|
hx-vals="js:{conversationId: findSelectedConversationID()}">
|
||||||
<span class="icon">
|
<span class="icon">
|
||||||
@ -61,6 +61,7 @@
|
|||||||
function findSelectedConversationID() {
|
function findSelectedConversationID() {
|
||||||
return document.getElementsByClassName('icon-conv selected')[0].getAttribute('data-id');
|
return document.getElementsByClassName('icon-conv selected')[0].getAttribute('data-id');
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleConversationSelection(element) {
|
function toggleConversationSelection(element) {
|
||||||
const elements = Array.from(document.getElementsByClassName('icon-conv'));
|
const elements = Array.from(document.getElementsByClassName('icon-conv'));
|
||||||
|
|
||||||
@ -86,8 +87,12 @@
|
|||||||
element.classList.add('selected');
|
element.classList.add('selected');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make an HTMX request to update the chat
|
// If the text inside the selected button is Default
|
||||||
|
if (element.textContent === 'Default') {
|
||||||
|
document.getElementById('delete-conversation-button').disabled = true;
|
||||||
|
} else {
|
||||||
|
document.getElementById('delete-conversation-button').disabled = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var sortable = new Sortable(document.getElementById('conversation-list'), {
|
var sortable = new Sortable(document.getElementById('conversation-list'), {
|
||||||
|
@ -20,9 +20,9 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
<div class="is-flex is-justify-content-space-between mt-4">
|
<div class="is-flex is-justify-content-space-between mt-4">
|
||||||
<button class="button is-small is-danger is-outlined" hx-get="/deleteLLM" hx-swap="outerHTML"
|
<button disabled class="button is-small is-danger" hx-get="/deleteLLM" hx-swap="outerHTML"
|
||||||
hx-target="#models-dropdown" hx-confirm="Are you sure?" hx-trigger="click"
|
hx-target="#models-dropdown" hx-confirm="Are you sure?" hx-trigger="click"
|
||||||
hx-vals="js:{selectedLLMIds: getSelectedModelsIDs()}">
|
hx-vals="js:{selectedLLMIds: getSelectedModelsIDs()}" id="delete-model-button">
|
||||||
<span class="icon">
|
<span class="icon">
|
||||||
<i class="fa-solid fa-trash"></i>
|
<i class="fa-solid fa-trash"></i>
|
||||||
</span>
|
</span>
|
||||||
@ -199,6 +199,14 @@
|
|||||||
element.classList.toggle('selected');
|
element.classList.toggle('selected');
|
||||||
element.classList.toggle('unselected');
|
element.classList.toggle('unselected');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If at least one model is selected, enable the delete button
|
||||||
|
if (document.getElementsByClassName('selected icon-llm').length > 0) {
|
||||||
|
document.getElementById('delete-model-button').disabled = false;
|
||||||
|
} else {
|
||||||
|
document.getElementById('delete-model-button').disabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
toggleSendButton();
|
toggleSendButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,6 +108,19 @@
|
|||||||
<span>Subscribe to JADE</span>
|
<span>Subscribe to JADE</span>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<a class="button is-small mt-1" hx-get="/generateTermAndService" hx-target="#chat-container"
|
||||||
|
hx-swap="outerHTML" hx-trigger="click">
|
||||||
|
<span class="icon is-small">
|
||||||
|
<i class="fa-regular fa-file-lines"></i>
|
||||||
|
</span>
|
||||||
|
<span>Terms and conditions</span>
|
||||||
|
</a>
|
||||||
|
<a class="button is-small mt-1" href="mailto:adrien.bouvais.pro@gmail.com">
|
||||||
|
<span class="icon is-small">
|
||||||
|
<i class="fa-solid fa-address-card"></i>
|
||||||
|
</span>
|
||||||
|
<span>Contact</span>
|
||||||
|
</a>
|
||||||
<a class="button is-small mt-1" href="/signout">
|
<a class="button is-small mt-1" href="/signout">
|
||||||
<span class="icon is-small">
|
<span class="icon is-small">
|
||||||
<i class="fa-solid fa-right-from-bracket"></i>
|
<i class="fa-solid fa-right-from-bracket"></i>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user