Mercurial Hosting > lang
diff src/edit_course.html.luan @ 24:87fe70201aa8
courses work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 31 Jul 2025 22:30:26 -0600 |
parents | |
children | 3a80ddafe5a4 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/edit_course.html.luan Thu Jul 31 22:30:26 2025 -0600 @@ -0,0 +1,71 @@ +local Luan = require "luan:Luan.luan" +local error = Luan.error +local Html = require "luan:Html.luan" +local html_encode = Html.encode or error() +local Io = require "luan:Io.luan" +local Http = require "luan:http/Http.luan" +local Shared = require "site:/lib/Shared.luan" +local head = Shared.head or error() +local header = Shared.header or error() +local User = require "site:/lib/User.luan" +local current_user = User.current_required or error() +local Course = require "site:/lib/Course.luan" +local get_course_by_id = Course.get_by_id or error() + + +return function() + local user = current_user() + if user == nil then return end + local course_id = Http.request.parameters.course + local course + if course_id ~= nil then + course = get_course_by_id(course_id) or error() + course.user_id == user.id or error() + else + course = Course.new{ + language = Http.request.parameters.language or error() + name = "" + ai_system_prompt = "" + } + end + Io.stdout = Http.response.text_writer() +%> +<!doctype html> +<html lang="en"> + <head> +<% head() %> + <style> + label, + input, + textarea { + display: block; + } + </style> + </head> + <body> +<% header() %> + <form content onsubmit="ajaxForm('/save_course.js',this)" action="javascript:"> + <h1>Edit Course</h1> + <p> + Language: <%= course.language_name() %> + <input type=hidden name=language value="<%=course.language%>"> +<% if course_id ~= nil then %> + <input type=hidden name=course value="<%=course_id%>"> +<% end %> + </p> + <p> + <label prompt>Course name</label> + <input required name=name value="<%=html_encode(course.name)%>"> + </p> + <p> + <label prompt>AI system prompt</label> + <textarea required name=ai_system_prompt><%=html_encode(course.ai_system_prompt)%></textarea> + </p> + <p> + <input type=submit> + </p> + </form> + </body> +</html> +<% +end