diff options
Diffstat (limited to 'src/guff')
-rw-r--r-- | src/guff/api/content-type.cr | 2 | ||||
-rw-r--r-- | src/guff/api/methods.cr | 8 | ||||
-rw-r--r-- | src/guff/api/test.cr | 38 | ||||
-rw-r--r-- | src/guff/handlers/api.cr | 4 | ||||
-rw-r--r-- | src/guff/page-features.cr | 8 | ||||
-rw-r--r-- | src/guff/views/ecrs/test/auth.ecr | 26 | ||||
-rw-r--r-- | src/guff/views/html/test/auth.cr | 43 |
7 files changed, 82 insertions, 47 deletions
diff --git a/src/guff/api/content-type.cr b/src/guff/api/content-type.cr index 589e6b0..648ee3a 100644 --- a/src/guff/api/content-type.cr +++ b/src/guff/api/content-type.cr @@ -1,6 +1,6 @@ module Guff::API::ContentType CONTENT_TYPES = { - "development": "text/html; charset=utf-8", + "development": "text/json; charset=utf-8", "production": "application/json; charset=utf8", } diff --git a/src/guff/api/methods.cr b/src/guff/api/methods.cr index 9b35596..0247460 100644 --- a/src/guff/api/methods.cr +++ b/src/guff/api/methods.cr @@ -350,6 +350,14 @@ module Guff "error": { text: "Test error response", }, + + "get_users": { + text: "Get mock list of users", + }, + + "set_user": { + text: "Set mock user", + }, } } diff --git a/src/guff/api/test.cr b/src/guff/api/test.cr index 7549c11..44b5e10 100644 --- a/src/guff/api/test.cr +++ b/src/guff/api/test.cr @@ -17,6 +17,44 @@ module Guff [{foo: "bar"}, {foo: "asdf"}].to_json end + MOCK_USERS = { + "users": [{ + "id": "0", + "name": "Guest", + "active": true, + }, { + "id": "1", + "name": "Admin", + "active": false, + }, { + "id": "2", + "name": "Test User 1", + "active": false, + }, { + "id": "2", + "name": "Test User 2", + "active": false, + }, { + "id": "3", + "name": "Test User<<<<>>>>>&&&&&&2", + "active": false, + }] + } + + private def do_test_get_users( + context : HTTP::Server::Context, + args : Hash(String, String) + ) + MOCK_USERS + end + + private def do_test_set_user( + context : HTTP::Server::Context, + args : Hash(String, String) + ) + { ok: true } + end + private def do_test_error( context : HTTP::Server::Context, args : Hash(String, String) diff --git a/src/guff/handlers/api.cr b/src/guff/handlers/api.cr index c6f78d7..eab0383 100644 --- a/src/guff/handlers/api.cr +++ b/src/guff/handlers/api.cr @@ -127,6 +127,8 @@ class Guff::Handlers::APIHandler < Guff::Handler version, get_posts, error, + get_users, + set_user, ], }) rescue e @@ -139,7 +141,7 @@ class Guff::Handlers::APIHandler < Guff::Handler end # send body - context.response.puts json + context.response << json end private def do_api_docs(context : HTTP::Server::Context) diff --git a/src/guff/page-features.cr b/src/guff/page-features.cr index 887197e..5b0c107 100644 --- a/src/guff/page-features.cr +++ b/src/guff/page-features.cr @@ -34,6 +34,14 @@ module Guff::PageFeatures # TODO metas: [] of Hash(String, String), }, + + "guff/util": { + deps: %w{jquery luigi-template}, + + scripts: %w{ + /guff-stuff/js/util.js + }, + }, } def self.add(key : String, page) diff --git a/src/guff/views/ecrs/test/auth.ecr b/src/guff/views/ecrs/test/auth.ecr index 4c032ec..c28f178 100644 --- a/src/guff/views/ecrs/test/auth.ecr +++ b/src/guff/views/ecrs/test/auth.ecr @@ -20,13 +20,31 @@ <div class='panel-heading'> <b> <i class='fa fa-users'></i> - Auth Test + Users </b> + + <a + href='#' + id='reload' + class='btn btn-default btn-xs pull-right' + title='Reload users.' + > + <span class='loading'> + <i class='fa fa-refresh'></i> + </span> + + <span class='loading hidden'> + <i class='fa fa-spinner fa-spin'></i> + </span> + </a><!-- #reload --> </div><!-- panel-heading --> - <div class='list-group'><%= - users - %></div><!-- list-group --> + <div id='users' class='list-group'> + <span class='list-group-item disabled'> + <i class='fa fa-spinner fa-spin'></i> + Loading... + </span><!-- list-group-item --> + </div><!-- list-group --> </div><!-- panel --> </div><!-- col-md-8 --> </div><!-- container --> diff --git a/src/guff/views/html/test/auth.cr b/src/guff/views/html/test/auth.cr index b21ebf6..9f5d1ad 100644 --- a/src/guff/views/html/test/auth.cr +++ b/src/guff/views/html/test/auth.cr @@ -3,38 +3,7 @@ require "../page" class Guff::TestAuthHTMLView TITLE = "Guff Auth Test" - FEATURES = %w{bootstrap font-awesome} - - TEMPLATES = TemplateCache.new({ - user: "<a - href='#' - class='list-group-item %{css}' - title='Set user to \"%{name}.\"' - data-user_id='%{id}' - >%{name}</a>" - }) - - 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", - }] + FEATURES = %w{bootstrap font-awesome guff/util} def self.run(models, context : HTTP::Server::Context) new(models).run(context) @@ -46,19 +15,11 @@ class Guff::TestAuthHTMLView def run(context) page = PageHTMLView.new(TITLE, self.to_s) page.add_features(FEATURES) + page.scripts << "/guff-stuff/test/auth.js" 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 |