require "ecr/macros" require "../page" class Guff::TestAuthHTMLView TITLE = "Guff Auth Test" FEATURES = %w{bootstrap font-awesome} TEMPLATES = TemplateCache.new({ user: "%{name}" }) MOCK_USERS = [{ "id": "0", "name": "Guest", "active": "1", }, { "id": "1", "name": "Admin", "active": "0", }, { "id": "2", "name": "Test User 1", "active": "0", }, { "id": "2", "name": "Test User 2", "active": "0", }, { "id": "3", "name": "Test User<<<<>>>>>&&&&&&2", "active": "0", }] def self.run(models, context : HTTP::Server::Context) new(models).run(context) end def initialize(@models : Models) end def run(context) page = PageHTMLView.new(TITLE, self.to_s) page.add_features(FEATURES) context.response.content_type = page.content_type context.response.puts page end def users MOCK_USERS.map { |row| TEMPLATES[:user].run(row.merge({ "name": h(row["name"]), "css": (row["active"] == "1") ? "active" : "", })) }.join("") end def h(s : String) HTML.escape(s || "") end ECR.def_to_s("./src/guff/views/ecrs/test/auth.ecr") end