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