Mercurial Hosting > lang
diff src/chat.html.luan @ 41:2a4c83ce3deb
public chat
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 11 Aug 2025 07:58:32 +0900 |
parents | 2737eeedc1d5 |
children | 1d9d9786d76f |
line wrap: on
line diff
--- a/src/chat.html.luan Sun Aug 10 11:29:02 2025 +0900 +++ b/src/chat.html.luan Mon Aug 11 07:58:32 2025 +0900 @@ -13,17 +13,18 @@ local started = Shared.started or error() local voices = Shared.voices or error() local User = require "site:/lib/User.luan" -local current_user = User.current_required or error() +local current_user = User.current or error() local Chat = require "site:/lib/Chat.luan" local get_chat_by_id = Chat.get_by_id or error() local languages = require "site:/lib/languages.luan" return function() - local user = current_user() - if user == nil then return end local chat_id = Http.request.parameters.chat or error() local chat = get_chat_by_id(chat_id) or error() + local user = current_user() + local is_owner = user ~= nil and user.id == chat.user_id + is_owner or not chat.is_private or error "private" local init_text = chat.init_text() Io.stdout = Http.response.text_writer() %> @@ -44,8 +45,10 @@ <span pulldown> <img onclick="clickMenu(this)" src="/images/menu.svg"> <div> +<% if is_owner then %> <span onclick="editChat()">Edit Chat</span> <span onclick="deleteChat()">Delete Chat</span> +<% end %> <span onclick="systemPrompt()">System Prompt</span> </div> </span> @@ -53,6 +56,7 @@ <div messages> <% chat.output_messages_html() %> </div> +<% if is_owner then %> <div ask> <textarea autofocus oninput="fixTextarea(event.target)" onkeydown="textareaKey(event)"><%= html_encode(init_text) %></textarea> <div buttons> @@ -61,6 +65,7 @@ <button onclick="askAi()" title="Send"><img src="/images/send.svg"></button> </div> </div> +<% end %> </div> <img waiting-ai-icon src="/images/spinner_green.gif"> <dialog edit> @@ -95,6 +100,9 @@ <p> <label clickable><input type=checkbox name=show_text>Show text</label> </p> + <p> + <label clickable><input type=checkbox name=is_private>Private chat</label> + </p> <div buttons> <button type=button onclick="closeModal(this)">Cancel</button> <button type=submit>Save</button> @@ -121,8 +129,14 @@ </dialog> <input name=initialized style="display:none"> <script> + 'use strict'; +//let test = 'a'; +//alert(test); +//test = 'b'; setChat(<%= json_string(chat.info()) %>); handleChatMarkdown(); + scrollToEnd(); +/* setTimeout(function(){ let initialized = document.querySelector('[name=initialized]'); if( !initialized.value ) { @@ -131,6 +145,7 @@ scrollToEnd(); } },10); +*/ </script> </body> </html>