Mercurial Hosting > hghosting
diff src/admin/index.html.luan @ 0:dfc36e7ed22c
init
author | Vadim Filimonov <fffilimonov@yandex.ru> |
---|---|
date | Thu, 12 May 2022 13:51:59 +0400 |
parents | |
children | 028e74c8889d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/admin/index.html.luan Thu May 12 13:51:59 2022 +0400 @@ -0,0 +1,76 @@ +local Luan = require "luan:Luan.luan" +local error = Luan.error +local pairs = Luan.pairs or error() +local ipairs = Luan.ipairs 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.admin_header or error() +local get_user = Shared.get_user or error() +local config = Shared.config or error() + + +local user_repos = {} +for _, repo in pairs(config.repos) do + for user in pairs(repo.users) do + local repos = user_repos[user] + if repos == nil then + repos = {} + user_repos[user] = repos + end + repos[#repos+1] = repo + end +end + +return function() + local user = get_user() + Io.stdout = Http.response.text_writer() +%> +<!doctype html> +<html> + <head> +<% head() %> + <title>Your Mercurial Repositories</title> + <script> + function deleteRepo(name) { + if( confirm('Are you sure that you want to delete repo "'+name+'"?') ) + location = "delete.html?repo="+name; + } + </script> + </head> + <body> +<% header() %> + <div content> + <h1>Repositories of <%=user%></h1> +<% for _, repo in ipairs(user_repos[user] or {}) do + local name = repo.name +%> + <p> + <a href="/repo/<%=name%>/"><%=name%></a> +<% if repo.admins[user] then %> + - <a href="edit.html?repo=<%=name%>">edit</a> + - <a href="javascript:deleteRepo('<%=name%>')">delete</a> +<% end %> + </p> +<% end %> + <hr> + <h2>Add Repository</h2> + <form action="add.html"> + <p> + <label prompt>Repo name</label> + <input type=text name=repo required> + </p> + <p> + <input type=submit value="Add Repo"> + </p> + </form> +<% if config.private==nil or config.private[user] then %> + <hr> + <p><a href="/private/">/private/</a></p> +<% end %> + </div> + </body> +</html> +<% +end