competition making and restyling
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 5 Sep 2019 19:33:09 +0000 (14:33 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 5 Sep 2019 19:33:09 +0000 (14:33 -0500)
20 files changed:
.gitignore
codebox/app/app.moon
codebox/controllers/admin/competition/delete.moon [new file with mode: 0644]
codebox/controllers/admin/competition/edit.moon [new file with mode: 0644]
codebox/controllers/admin/competition/new.moon
codebox/controllers/admin/problem/delete.moon
codebox/models/competition_problems.moon
codebox/models/competitions.moon
codebox/models/problems.moon
codebox/static/css/core.css
codebox/static/css/core.css.map
codebox/static/scss/_utils.scss
codebox/static/scss/core.scss
codebox/views/admin/competition.moon
codebox/views/admin/competition/edit.moon [new file with mode: 0644]
codebox/views/admin/problem.moon
codebox/views/admin/problem/edit.moon
codebox/views/admin/submission.moon
codebox/views/admin/user.moon
codebox/views/ssr/job_result.moon

index bd2344a5ef005b51b3b635c6bf798908fcdd4915..ca9a1b8bff4058b408692613001d0c26471a416d 100644 (file)
@@ -1,2 +1,3 @@
 config.env
 .tup/
+.vscode/
\ No newline at end of file
index 11f28b8f507b27f1ffbfece79486cd959caceff2..06f6d197c50ed654479d74640dda85980fc2bae6 100644 (file)
@@ -64,6 +64,8 @@ class extends lapis.Application
 
        ['admin.competition': "/admin/competition"]: controller "admin.competition"
        ['admin.competition.new': "/admin/competition/new"]: controller "admin.competition.new"
+       ['admin.competition.edit': "/admin/competition/edit/:competition_id"]: controller "admin.competition.edit"
+       ['admin.competition.delete': "/admin/competition/delete/:competition_id"]: controller "admin.competition.delete"
 
        [test: '/test']: =>
                user = Users\find 5
diff --git a/codebox/controllers/admin/competition/delete.moon b/codebox/controllers/admin/competition/delete.moon
new file mode 100644 (file)
index 0000000..f195133
--- /dev/null
@@ -0,0 +1,25 @@
+import make_controller from require "controllers.controller"
+import assert_valid from require "lapis.validate"
+import capture_errors, capture_errors_json, yield_error from require 'lapis.application'
+import Competitions from require 'models'
+
+make_controller
+       middleware: { 'logged_in', 'admin_required' }
+
+       get: capture_errors_json =>
+        assert_valid @params, {
+            { "competition_id", exists: true, is_integer: true }
+        }
+
+        comp = Competitions\find @params.competition_id
+        unless comp
+            yield_error 'Competition not found'
+
+        comp_problems = comp\get_competition_problems!
+        if comp_problems
+            for cp in *comp_problems
+                cp\delete!
+
+        comp\delete!
+
+               redirect_to: @url_for 'admin.competition'
diff --git a/codebox/controllers/admin/competition/edit.moon b/codebox/controllers/admin/competition/edit.moon
new file mode 100644 (file)
index 0000000..8ec29d0
--- /dev/null
@@ -0,0 +1,55 @@
+import make_controller from require "controllers.controller"
+import assert_valid from require "lapis.validate"
+import capture_errors, capture_errors_json, yield_error from require 'lapis.application'
+import Competitions, Problems from require 'models'
+
+make_controller
+       layout: require 'views.partials.admin_layout'
+
+       middleware: { 'logged_in', 'admin_required' }
+
+       get: capture_errors_json =>
+               assert_valid @params, {
+                       { "competition_id", exists: true, is_integer: true }
+               }
+
+               @navbar.selected = 3
+
+               @comp = Competitions\find @params.competition_id
+               unless @comp
+                       yield_error "Competition not found"
+                       return
+
+               @comp_problems = @comp\get_problems!
+               @all_problems = Problems\select!
+
+               -- Postgres puts a space between the date and time, need a T
+               if @comp.start
+                       @comp.start = @comp.start\gsub " ", "T"
+               if @comp.end
+                       @comp.end = @comp.end\gsub " ", "T"
+
+               render: true
+
+       post: capture_errors =>
+               @navbar.selected = 3
+
+               assert_valid @params, {
+                       { "id", exists: true, is_integer: true }
+                       { "name", exists: true }
+                       { "start_time", exists: true }
+                       { "end_time", exists: true }
+               }
+
+               @comp = Competitions\find @params.id
+               unless @comp
+                       yield_error "Competition not found"
+
+               @comp\update {
+                       name: @params.name
+                       start: @params.start_time
+                       end: @params.end_time
+               }
+               @comp\refresh!
+
+               redirect_to: @url_for "admin.competition.edit", { competition_id: @params.id }
index eb205ea8d6328bfe2602bba683ff96ffdaa20b10..fdcc3057975cec561aaaa5813a7a5fbd5a8859c2 100644 (file)
@@ -29,4 +29,4 @@ make_controller
                        end: @params.end_time
                }
 
-               redirect_to: @url_for 'admin.compeition'
+               redirect_to: @url_for 'admin.competition'
index 620d0a4b2afaeb4d5cb08caede871814005d8e06..3c7b5a296ed037922e65cba7603a76e349e57d04 100644 (file)
@@ -20,6 +20,16 @@ make_controller
                        for tc in *test_cases
                                tc\delete!
 
+               competition_problems = problem\get_competitions!
+               if competition_problems
+                       for cp in *competition_problems
+                               cp\delete!
+
+               jobs = problem\get_jobs!
+               if jobs
+                       for job in *jobs
+                               job\delete!
+
                problem\delete!
 
                json: { success: true }
index 96fa7cfc26282519580509cf0cbde0a0b02741bf..94575596513f99a25e02eec53d8857b979d6e2ab 100644 (file)
@@ -1,3 +1,7 @@
 import Model from require 'lapis.db.model'
 
 class CompetitionProblems extends Model
+       @relations: {
+               { "problem", belongs_to: 'Problems' }
+               { "competition", belongs_to: 'Competitions' }
+       }
index 25e9416ca5118fedb9d7b0ca9c697e5c5985217b..ff738ceeb05d3f81be10eebf978ebea0e63c427e 100644 (file)
@@ -8,6 +8,7 @@ class Competitions extends Model
                        from problems
                        inner join competition_problems on problems.id = competition_problems.problem_id
                        inner join competitions on competition_problems.competition_id = competitions.id
-                       where competitions.id=? orber by competition_problems.letter asc", @id
+                       where competitions.id=? order by competition_problems.letter asc", @id
                }
+               { "competition_problems", has_many: "CompetitionProblems" }
        }
index aab9b91b15aca743a934680ade86df28dfafe36d..720b022a4680adcaddf9d8dcd858bd7abe881d88 100644 (file)
@@ -14,6 +14,7 @@ class Problems extends Model
                        has_many: 'TestCases'
                        order: "testcase_order asc"
                }
+               { "competitions", has_many: "CompetitionProblems" }
                { "correct_jobs", fetch: =>
                        db.query "select count(job_id) from jobs where problem_id=? and status=4", @id
                }
index b44ad8c54ca54519784bf84ed2c88150b57c6d29..3707ef2e482762c4c231f378f7e0c7fc2189155d 100644 (file)
@@ -66,16 +66,34 @@ a {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
 }
+.split-2 > *:first-child {
+  margin-right: 12px;
+}
+.split-2 > *:last-child {
+  margin-left: 12px;
+}
 
 .split-3 {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
 }
+.split-3 > *:first-child {
+  margin-right: 12px;
+}
+.split-3 > *:last-child {
+  margin-left: 12px;
+}
 
 .split-4 {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
 }
+.split-4 > *:first-child {
+  margin-right: 12px;
+}
+.split-4 > *:last-child {
+  margin-left: 12px;
+}
 
 .split-lr {
   display: grid;
@@ -591,496 +609,1536 @@ pre .hljs-ln-line {
   margin-left: 11px;
 }
 
-.mar-r-11 {
-  margin-right: 11px;
+.mar-r-11 {
+  margin-right: 11px;
+}
+
+.mar-t-11 {
+  margin-top: 11px;
+}
+
+.mar-b-11 {
+  margin-bottom: 11px;
+}
+
+.pad-12 {
+  padding: 12px;
+}
+
+.pad-l-12 {
+  padding-left: 12px;
+}
+
+.pad-r-12 {
+  padding-right: 12px;
+}
+
+.pad-t-12 {
+  padding-top: 12px;
+}
+
+.pad-b-12 {
+  padding-bottom: 12px;
+}
+
+.mar-12 {
+  margin: 12px;
+}
+
+.mar-l-12 {
+  margin-left: 12px;
+}
+
+.mar-r-12 {
+  margin-right: 12px;
+}
+
+.mar-t-12 {
+  margin-top: 12px;
+}
+
+.mar-b-12 {
+  margin-bottom: 12px;
+}
+
+.pad-13 {
+  padding: 13px;
+}
+
+.pad-l-13 {
+  padding-left: 13px;
+}
+
+.pad-r-13 {
+  padding-right: 13px;
+}
+
+.pad-t-13 {
+  padding-top: 13px;
+}
+
+.pad-b-13 {
+  padding-bottom: 13px;
+}
+
+.mar-13 {
+  margin: 13px;
+}
+
+.mar-l-13 {
+  margin-left: 13px;
+}
+
+.mar-r-13 {
+  margin-right: 13px;
+}
+
+.mar-t-13 {
+  margin-top: 13px;
+}
+
+.mar-b-13 {
+  margin-bottom: 13px;
+}
+
+.pad-14 {
+  padding: 14px;
+}
+
+.pad-l-14 {
+  padding-left: 14px;
+}
+
+.pad-r-14 {
+  padding-right: 14px;
+}
+
+.pad-t-14 {
+  padding-top: 14px;
+}
+
+.pad-b-14 {
+  padding-bottom: 14px;
+}
+
+.mar-14 {
+  margin: 14px;
+}
+
+.mar-l-14 {
+  margin-left: 14px;
+}
+
+.mar-r-14 {
+  margin-right: 14px;
+}
+
+.mar-t-14 {
+  margin-top: 14px;
+}
+
+.mar-b-14 {
+  margin-bottom: 14px;
+}
+
+.pad-15 {
+  padding: 15px;
+}
+
+.pad-l-15 {
+  padding-left: 15px;
+}
+
+.pad-r-15 {
+  padding-right: 15px;
+}
+
+.pad-t-15 {
+  padding-top: 15px;
+}
+
+.pad-b-15 {
+  padding-bottom: 15px;
+}
+
+.mar-15 {
+  margin: 15px;
+}
+
+.mar-l-15 {
+  margin-left: 15px;
+}
+
+.mar-r-15 {
+  margin-right: 15px;
+}
+
+.mar-t-15 {
+  margin-top: 15px;
+}
+
+.mar-b-15 {
+  margin-bottom: 15px;
+}
+
+.pad-16 {
+  padding: 16px;
+}
+
+.pad-l-16 {
+  padding-left: 16px;
+}
+
+.pad-r-16 {
+  padding-right: 16px;
+}
+
+.pad-t-16 {
+  padding-top: 16px;
+}
+
+.pad-b-16 {
+  padding-bottom: 16px;
+}
+
+.mar-16 {
+  margin: 16px;
+}
+
+.mar-l-16 {
+  margin-left: 16px;
+}
+
+.mar-r-16 {
+  margin-right: 16px;
+}
+
+.mar-t-16 {
+  margin-top: 16px;
+}
+
+.mar-b-16 {
+  margin-bottom: 16px;
+}
+
+.pad-17 {
+  padding: 17px;
+}
+
+.pad-l-17 {
+  padding-left: 17px;
+}
+
+.pad-r-17 {
+  padding-right: 17px;
+}
+
+.pad-t-17 {
+  padding-top: 17px;
+}
+
+.pad-b-17 {
+  padding-bottom: 17px;
+}
+
+.mar-17 {
+  margin: 17px;
+}
+
+.mar-l-17 {
+  margin-left: 17px;
+}
+
+.mar-r-17 {
+  margin-right: 17px;
+}
+
+.mar-t-17 {
+  margin-top: 17px;
+}
+
+.mar-b-17 {
+  margin-bottom: 17px;
+}
+
+.pad-18 {
+  padding: 18px;
+}
+
+.pad-l-18 {
+  padding-left: 18px;
+}
+
+.pad-r-18 {
+  padding-right: 18px;
+}
+
+.pad-t-18 {
+  padding-top: 18px;
+}
+
+.pad-b-18 {
+  padding-bottom: 18px;
+}
+
+.mar-18 {
+  margin: 18px;
+}
+
+.mar-l-18 {
+  margin-left: 18px;
+}
+
+.mar-r-18 {
+  margin-right: 18px;
+}
+
+.mar-t-18 {
+  margin-top: 18px;
+}
+
+.mar-b-18 {
+  margin-bottom: 18px;
+}
+
+.pad-19 {
+  padding: 19px;
+}
+
+.pad-l-19 {
+  padding-left: 19px;
+}
+
+.pad-r-19 {
+  padding-right: 19px;
+}
+
+.pad-t-19 {
+  padding-top: 19px;
+}
+
+.pad-b-19 {
+  padding-bottom: 19px;
+}
+
+.mar-19 {
+  margin: 19px;
+}
+
+.mar-l-19 {
+  margin-left: 19px;
+}
+
+.mar-r-19 {
+  margin-right: 19px;
+}
+
+.mar-t-19 {
+  margin-top: 19px;
+}
+
+.mar-b-19 {
+  margin-bottom: 19px;
+}
+
+.pad-20 {
+  padding: 20px;
+}
+
+.pad-l-20 {
+  padding-left: 20px;
+}
+
+.pad-r-20 {
+  padding-right: 20px;
+}
+
+.pad-t-20 {
+  padding-top: 20px;
+}
+
+.pad-b-20 {
+  padding-bottom: 20px;
+}
+
+.mar-20 {
+  margin: 20px;
+}
+
+.mar-l-20 {
+  margin-left: 20px;
+}
+
+.mar-r-20 {
+  margin-right: 20px;
+}
+
+.mar-t-20 {
+  margin-top: 20px;
+}
+
+.mar-b-20 {
+  margin-bottom: 20px;
+}
+
+.pad-21 {
+  padding: 21px;
+}
+
+.pad-l-21 {
+  padding-left: 21px;
+}
+
+.pad-r-21 {
+  padding-right: 21px;
+}
+
+.pad-t-21 {
+  padding-top: 21px;
+}
+
+.pad-b-21 {
+  padding-bottom: 21px;
+}
+
+.mar-21 {
+  margin: 21px;
+}
+
+.mar-l-21 {
+  margin-left: 21px;
+}
+
+.mar-r-21 {
+  margin-right: 21px;
+}
+
+.mar-t-21 {
+  margin-top: 21px;
+}
+
+.mar-b-21 {
+  margin-bottom: 21px;
+}
+
+.pad-22 {
+  padding: 22px;
+}
+
+.pad-l-22 {
+  padding-left: 22px;
+}
+
+.pad-r-22 {
+  padding-right: 22px;
+}
+
+.pad-t-22 {
+  padding-top: 22px;
+}
+
+.pad-b-22 {
+  padding-bottom: 22px;
+}
+
+.mar-22 {
+  margin: 22px;
+}
+
+.mar-l-22 {
+  margin-left: 22px;
+}
+
+.mar-r-22 {
+  margin-right: 22px;
+}
+
+.mar-t-22 {
+  margin-top: 22px;
+}
+
+.mar-b-22 {
+  margin-bottom: 22px;
+}
+
+.pad-23 {
+  padding: 23px;
+}
+
+.pad-l-23 {
+  padding-left: 23px;
+}
+
+.pad-r-23 {
+  padding-right: 23px;
+}
+
+.pad-t-23 {
+  padding-top: 23px;
+}
+
+.pad-b-23 {
+  padding-bottom: 23px;
+}
+
+.mar-23 {
+  margin: 23px;
+}
+
+.mar-l-23 {
+  margin-left: 23px;
+}
+
+.mar-r-23 {
+  margin-right: 23px;
+}
+
+.mar-t-23 {
+  margin-top: 23px;
+}
+
+.mar-b-23 {
+  margin-bottom: 23px;
+}
+
+.pad-24 {
+  padding: 24px;
+}
+
+.pad-l-24 {
+  padding-left: 24px;
+}
+
+.pad-r-24 {
+  padding-right: 24px;
+}
+
+.pad-t-24 {
+  padding-top: 24px;
+}
+
+.pad-b-24 {
+  padding-bottom: 24px;
+}
+
+.mar-24 {
+  margin: 24px;
+}
+
+.mar-l-24 {
+  margin-left: 24px;
+}
+
+.mar-r-24 {
+  margin-right: 24px;
+}
+
+.mar-t-24 {
+  margin-top: 24px;
+}
+
+.mar-b-24 {
+  margin-bottom: 24px;
+}
+
+.pad-25 {
+  padding: 25px;
+}
+
+.pad-l-25 {
+  padding-left: 25px;
+}
+
+.pad-r-25 {
+  padding-right: 25px;
+}
+
+.pad-t-25 {
+  padding-top: 25px;
+}
+
+.pad-b-25 {
+  padding-bottom: 25px;
+}
+
+.mar-25 {
+  margin: 25px;
+}
+
+.mar-l-25 {
+  margin-left: 25px;
+}
+
+.mar-r-25 {
+  margin-right: 25px;
+}
+
+.mar-t-25 {
+  margin-top: 25px;
+}
+
+.mar-b-25 {
+  margin-bottom: 25px;
+}
+
+.pad-26 {
+  padding: 26px;
+}
+
+.pad-l-26 {
+  padding-left: 26px;
+}
+
+.pad-r-26 {
+  padding-right: 26px;
+}
+
+.pad-t-26 {
+  padding-top: 26px;
+}
+
+.pad-b-26 {
+  padding-bottom: 26px;
+}
+
+.mar-26 {
+  margin: 26px;
+}
+
+.mar-l-26 {
+  margin-left: 26px;
+}
+
+.mar-r-26 {
+  margin-right: 26px;
+}
+
+.mar-t-26 {
+  margin-top: 26px;
+}
+
+.mar-b-26 {
+  margin-bottom: 26px;
+}
+
+.pad-27 {
+  padding: 27px;
+}
+
+.pad-l-27 {
+  padding-left: 27px;
+}
+
+.pad-r-27 {
+  padding-right: 27px;
+}
+
+.pad-t-27 {
+  padding-top: 27px;
+}
+
+.pad-b-27 {
+  padding-bottom: 27px;
+}
+
+.mar-27 {
+  margin: 27px;
+}
+
+.mar-l-27 {
+  margin-left: 27px;
+}
+
+.mar-r-27 {
+  margin-right: 27px;
+}
+
+.mar-t-27 {
+  margin-top: 27px;
+}
+
+.mar-b-27 {
+  margin-bottom: 27px;
+}
+
+.pad-28 {
+  padding: 28px;
+}
+
+.pad-l-28 {
+  padding-left: 28px;
+}
+
+.pad-r-28 {
+  padding-right: 28px;
+}
+
+.pad-t-28 {
+  padding-top: 28px;
+}
+
+.pad-b-28 {
+  padding-bottom: 28px;
+}
+
+.mar-28 {
+  margin: 28px;
+}
+
+.mar-l-28 {
+  margin-left: 28px;
+}
+
+.mar-r-28 {
+  margin-right: 28px;
+}
+
+.mar-t-28 {
+  margin-top: 28px;
+}
+
+.mar-b-28 {
+  margin-bottom: 28px;
+}
+
+.pad-29 {
+  padding: 29px;
+}
+
+.pad-l-29 {
+  padding-left: 29px;
+}
+
+.pad-r-29 {
+  padding-right: 29px;
+}
+
+.pad-t-29 {
+  padding-top: 29px;
+}
+
+.pad-b-29 {
+  padding-bottom: 29px;
+}
+
+.mar-29 {
+  margin: 29px;
+}
+
+.mar-l-29 {
+  margin-left: 29px;
+}
+
+.mar-r-29 {
+  margin-right: 29px;
+}
+
+.mar-t-29 {
+  margin-top: 29px;
+}
+
+.mar-b-29 {
+  margin-bottom: 29px;
+}
+
+.pad-30 {
+  padding: 30px;
+}
+
+.pad-l-30 {
+  padding-left: 30px;
+}
+
+.pad-r-30 {
+  padding-right: 30px;
+}
+
+.pad-t-30 {
+  padding-top: 30px;
+}
+
+.pad-b-30 {
+  padding-bottom: 30px;
+}
+
+.mar-30 {
+  margin: 30px;
+}
+
+.mar-l-30 {
+  margin-left: 30px;
+}
+
+.mar-r-30 {
+  margin-right: 30px;
+}
+
+.mar-t-30 {
+  margin-top: 30px;
+}
+
+.mar-b-30 {
+  margin-bottom: 30px;
+}
+
+.pad-31 {
+  padding: 31px;
+}
+
+.pad-l-31 {
+  padding-left: 31px;
+}
+
+.pad-r-31 {
+  padding-right: 31px;
+}
+
+.pad-t-31 {
+  padding-top: 31px;
+}
+
+.pad-b-31 {
+  padding-bottom: 31px;
+}
+
+.mar-31 {
+  margin: 31px;
+}
+
+.mar-l-31 {
+  margin-left: 31px;
+}
+
+.mar-r-31 {
+  margin-right: 31px;
+}
+
+.mar-t-31 {
+  margin-top: 31px;
+}
+
+.mar-b-31 {
+  margin-bottom: 31px;
+}
+
+.pad-32 {
+  padding: 32px;
+}
+
+.pad-l-32 {
+  padding-left: 32px;
+}
+
+.pad-r-32 {
+  padding-right: 32px;
+}
+
+.pad-t-32 {
+  padding-top: 32px;
+}
+
+.pad-b-32 {
+  padding-bottom: 32px;
+}
+
+.mar-32 {
+  margin: 32px;
+}
+
+.mar-l-32 {
+  margin-left: 32px;
+}
+
+.mar-r-32 {
+  margin-right: 32px;
+}
+
+.mar-t-32 {
+  margin-top: 32px;
+}
+
+.mar-b-32 {
+  margin-bottom: 32px;
+}
+
+.pad-33 {
+  padding: 33px;
+}
+
+.pad-l-33 {
+  padding-left: 33px;
+}
+
+.pad-r-33 {
+  padding-right: 33px;
+}
+
+.pad-t-33 {
+  padding-top: 33px;
+}
+
+.pad-b-33 {
+  padding-bottom: 33px;
+}
+
+.mar-33 {
+  margin: 33px;
+}
+
+.mar-l-33 {
+  margin-left: 33px;
+}
+
+.mar-r-33 {
+  margin-right: 33px;
+}
+
+.mar-t-33 {
+  margin-top: 33px;
+}
+
+.mar-b-33 {
+  margin-bottom: 33px;
+}
+
+.pad-34 {
+  padding: 34px;
+}
+
+.pad-l-34 {
+  padding-left: 34px;
+}
+
+.pad-r-34 {
+  padding-right: 34px;
+}
+
+.pad-t-34 {
+  padding-top: 34px;
+}
+
+.pad-b-34 {
+  padding-bottom: 34px;
+}
+
+.mar-34 {
+  margin: 34px;
+}
+
+.mar-l-34 {
+  margin-left: 34px;
+}
+
+.mar-r-34 {
+  margin-right: 34px;
+}
+
+.mar-t-34 {
+  margin-top: 34px;
+}
+
+.mar-b-34 {
+  margin-bottom: 34px;
+}
+
+.pad-35 {
+  padding: 35px;
+}
+
+.pad-l-35 {
+  padding-left: 35px;
+}
+
+.pad-r-35 {
+  padding-right: 35px;
+}
+
+.pad-t-35 {
+  padding-top: 35px;
+}
+
+.pad-b-35 {
+  padding-bottom: 35px;
+}
+
+.mar-35 {
+  margin: 35px;
+}
+
+.mar-l-35 {
+  margin-left: 35px;
+}
+
+.mar-r-35 {
+  margin-right: 35px;
+}
+
+.mar-t-35 {
+  margin-top: 35px;
+}
+
+.mar-b-35 {
+  margin-bottom: 35px;
+}
+
+.pad-36 {
+  padding: 36px;
+}
+
+.pad-l-36 {
+  padding-left: 36px;
+}
+
+.pad-r-36 {
+  padding-right: 36px;
+}
+
+.pad-t-36 {
+  padding-top: 36px;
+}
+
+.pad-b-36 {
+  padding-bottom: 36px;
+}
+
+.mar-36 {
+  margin: 36px;
+}
+
+.mar-l-36 {
+  margin-left: 36px;
+}
+
+.mar-r-36 {
+  margin-right: 36px;
+}
+
+.mar-t-36 {
+  margin-top: 36px;
+}
+
+.mar-b-36 {
+  margin-bottom: 36px;
+}
+
+.pad-37 {
+  padding: 37px;
+}
+
+.pad-l-37 {
+  padding-left: 37px;
+}
+
+.pad-r-37 {
+  padding-right: 37px;
+}
+
+.pad-t-37 {
+  padding-top: 37px;
+}
+
+.pad-b-37 {
+  padding-bottom: 37px;
+}
+
+.mar-37 {
+  margin: 37px;
+}
+
+.mar-l-37 {
+  margin-left: 37px;
+}
+
+.mar-r-37 {
+  margin-right: 37px;
 }
 
-.mar-t-11 {
-  margin-top: 11px;
+.mar-t-37 {
+  margin-top: 37px;
 }
 
-.mar-b-11 {
-  margin-bottom: 11px;
+.mar-b-37 {
+  margin-bottom: 37px;
 }
 
-.pad-12 {
-  padding: 12px;
+.pad-38 {
+  padding: 38px;
 }
 
-.pad-l-12 {
-  padding-left: 12px;
+.pad-l-38 {
+  padding-left: 38px;
 }
 
-.pad-r-12 {
-  padding-right: 12px;
+.pad-r-38 {
+  padding-right: 38px;
 }
 
-.pad-t-12 {
-  padding-top: 12px;
+.pad-t-38 {
+  padding-top: 38px;
 }
 
-.pad-b-12 {
-  padding-bottom: 12px;
+.pad-b-38 {
+  padding-bottom: 38px;
 }
 
-.mar-12 {
-  margin: 12px;
+.mar-38 {
+  margin: 38px;
 }
 
-.mar-l-12 {
-  margin-left: 12px;
+.mar-l-38 {
+  margin-left: 38px;
 }
 
-.mar-r-12 {
-  margin-right: 12px;
+.mar-r-38 {
+  margin-right: 38px;
 }
 
-.mar-t-12 {
-  margin-top: 12px;
+.mar-t-38 {
+  margin-top: 38px;
 }
 
-.mar-b-12 {
-  margin-bottom: 12px;
+.mar-b-38 {
+  margin-bottom: 38px;
 }
 
-.pad-13 {
-  padding: 13px;
+.pad-39 {
+  padding: 39px;
 }
 
-.pad-l-13 {
-  padding-left: 13px;
+.pad-l-39 {
+  padding-left: 39px;
 }
 
-.pad-r-13 {
-  padding-right: 13px;
+.pad-r-39 {
+  padding-right: 39px;
 }
 
-.pad-t-13 {
-  padding-top: 13px;
+.pad-t-39 {
+  padding-top: 39px;
 }
 
-.pad-b-13 {
-  padding-bottom: 13px;
+.pad-b-39 {
+  padding-bottom: 39px;
 }
 
-.mar-13 {
-  margin: 13px;
+.mar-39 {
+  margin: 39px;
 }
 
-.mar-l-13 {
-  margin-left: 13px;
+.mar-l-39 {
+  margin-left: 39px;
 }
 
-.mar-r-13 {
-  margin-right: 13px;
+.mar-r-39 {
+  margin-right: 39px;
 }
 
-.mar-t-13 {
-  margin-top: 13px;
+.mar-t-39 {
+  margin-top: 39px;
 }
 
-.mar-b-13 {
-  margin-bottom: 13px;
+.mar-b-39 {
+  margin-bottom: 39px;
 }
 
-.pad-14 {
-  padding: 14px;
+.pad-40 {
+  padding: 40px;
 }
 
-.pad-l-14 {
-  padding-left: 14px;
+.pad-l-40 {
+  padding-left: 40px;
 }
 
-.pad-r-14 {
-  padding-right: 14px;
+.pad-r-40 {
+  padding-right: 40px;
 }
 
-.pad-t-14 {
-  padding-top: 14px;
+.pad-t-40 {
+  padding-top: 40px;
 }
 
-.pad-b-14 {
-  padding-bottom: 14px;
+.pad-b-40 {
+  padding-bottom: 40px;
 }
 
-.mar-14 {
-  margin: 14px;
+.mar-40 {
+  margin: 40px;
 }
 
-.mar-l-14 {
-  margin-left: 14px;
+.mar-l-40 {
+  margin-left: 40px;
 }
 
-.mar-r-14 {
-  margin-right: 14px;
+.mar-r-40 {
+  margin-right: 40px;
 }
 
-.mar-t-14 {
-  margin-top: 14px;
+.mar-t-40 {
+  margin-top: 40px;
 }
 
-.mar-b-14 {
-  margin-bottom: 14px;
+.mar-b-40 {
+  margin-bottom: 40px;
 }
 
-.pad-15 {
-  padding: 15px;
+.pad-41 {
+  padding: 41px;
 }
 
-.pad-l-15 {
-  padding-left: 15px;
+.pad-l-41 {
+  padding-left: 41px;
 }
 
-.pad-r-15 {
-  padding-right: 15px;
+.pad-r-41 {
+  padding-right: 41px;
 }
 
-.pad-t-15 {
-  padding-top: 15px;
+.pad-t-41 {
+  padding-top: 41px;
 }
 
-.pad-b-15 {
-  padding-bottom: 15px;
+.pad-b-41 {
+  padding-bottom: 41px;
 }
 
-.mar-15 {
-  margin: 15px;
+.mar-41 {
+  margin: 41px;
 }
 
-.mar-l-15 {
-  margin-left: 15px;
+.mar-l-41 {
+  margin-left: 41px;
 }
 
-.mar-r-15 {
-  margin-right: 15px;
+.mar-r-41 {
+  margin-right: 41px;
 }
 
-.mar-t-15 {
-  margin-top: 15px;
+.mar-t-41 {
+  margin-top: 41px;
 }
 
-.mar-b-15 {
-  margin-bottom: 15px;
+.mar-b-41 {
+  margin-bottom: 41px;
 }
 
-.pad-16 {
-  padding: 16px;
+.pad-42 {
+  padding: 42px;
 }
 
-.pad-l-16 {
-  padding-left: 16px;
+.pad-l-42 {
+  padding-left: 42px;
 }
 
-.pad-r-16 {
-  padding-right: 16px;
+.pad-r-42 {
+  padding-right: 42px;
 }
 
-.pad-t-16 {
-  padding-top: 16px;
+.pad-t-42 {
+  padding-top: 42px;
 }
 
-.pad-b-16 {
-  padding-bottom: 16px;
+.pad-b-42 {
+  padding-bottom: 42px;
 }
 
-.mar-16 {
-  margin: 16px;
+.mar-42 {
+  margin: 42px;
 }
 
-.mar-l-16 {
-  margin-left: 16px;
+.mar-l-42 {
+  margin-left: 42px;
 }
 
-.mar-r-16 {
-  margin-right: 16px;
+.mar-r-42 {
+  margin-right: 42px;
 }
 
-.mar-t-16 {
-  margin-top: 16px;
+.mar-t-42 {
+  margin-top: 42px;
 }
 
-.mar-b-16 {
-  margin-bottom: 16px;
+.mar-b-42 {
+  margin-bottom: 42px;
 }
 
-.pad-17 {
-  padding: 17px;
+.pad-43 {
+  padding: 43px;
 }
 
-.pad-l-17 {
-  padding-left: 17px;
+.pad-l-43 {
+  padding-left: 43px;
 }
 
-.pad-r-17 {
-  padding-right: 17px;
+.pad-r-43 {
+  padding-right: 43px;
 }
 
-.pad-t-17 {
-  padding-top: 17px;
+.pad-t-43 {
+  padding-top: 43px;
 }
 
-.pad-b-17 {
-  padding-bottom: 17px;
+.pad-b-43 {
+  padding-bottom: 43px;
 }
 
-.mar-17 {
-  margin: 17px;
+.mar-43 {
+  margin: 43px;
 }
 
-.mar-l-17 {
-  margin-left: 17px;
+.mar-l-43 {
+  margin-left: 43px;
 }
 
-.mar-r-17 {
-  margin-right: 17px;
+.mar-r-43 {
+  margin-right: 43px;
 }
 
-.mar-t-17 {
-  margin-top: 17px;
+.mar-t-43 {
+  margin-top: 43px;
 }
 
-.mar-b-17 {
-  margin-bottom: 17px;
+.mar-b-43 {
+  margin-bottom: 43px;
 }
 
-.pad-18 {
-  padding: 18px;
+.pad-44 {
+  padding: 44px;
 }
 
-.pad-l-18 {
-  padding-left: 18px;
+.pad-l-44 {
+  padding-left: 44px;
 }
 
-.pad-r-18 {
-  padding-right: 18px;
+.pad-r-44 {
+  padding-right: 44px;
 }
 
-.pad-t-18 {
-  padding-top: 18px;
+.pad-t-44 {
+  padding-top: 44px;
 }
 
-.pad-b-18 {
-  padding-bottom: 18px;
+.pad-b-44 {
+  padding-bottom: 44px;
 }
 
-.mar-18 {
-  margin: 18px;
+.mar-44 {
+  margin: 44px;
 }
 
-.mar-l-18 {
-  margin-left: 18px;
+.mar-l-44 {
+  margin-left: 44px;
 }
 
-.mar-r-18 {
-  margin-right: 18px;
+.mar-r-44 {
+  margin-right: 44px;
 }
 
-.mar-t-18 {
-  margin-top: 18px;
+.mar-t-44 {
+  margin-top: 44px;
 }
 
-.mar-b-18 {
-  margin-bottom: 18px;
+.mar-b-44 {
+  margin-bottom: 44px;
 }
 
-.pad-19 {
-  padding: 19px;
+.pad-45 {
+  padding: 45px;
 }
 
-.pad-l-19 {
-  padding-left: 19px;
+.pad-l-45 {
+  padding-left: 45px;
 }
 
-.pad-r-19 {
-  padding-right: 19px;
+.pad-r-45 {
+  padding-right: 45px;
 }
 
-.pad-t-19 {
-  padding-top: 19px;
+.pad-t-45 {
+  padding-top: 45px;
 }
 
-.pad-b-19 {
-  padding-bottom: 19px;
+.pad-b-45 {
+  padding-bottom: 45px;
 }
 
-.mar-19 {
-  margin: 19px;
+.mar-45 {
+  margin: 45px;
 }
 
-.mar-l-19 {
-  margin-left: 19px;
+.mar-l-45 {
+  margin-left: 45px;
 }
 
-.mar-r-19 {
-  margin-right: 19px;
+.mar-r-45 {
+  margin-right: 45px;
 }
 
-.mar-t-19 {
-  margin-top: 19px;
+.mar-t-45 {
+  margin-top: 45px;
 }
 
-.mar-b-19 {
-  margin-bottom: 19px;
+.mar-b-45 {
+  margin-bottom: 45px;
 }
 
-.pad-20 {
-  padding: 20px;
+.pad-46 {
+  padding: 46px;
 }
 
-.pad-l-20 {
-  padding-left: 20px;
+.pad-l-46 {
+  padding-left: 46px;
 }
 
-.pad-r-20 {
-  padding-right: 20px;
+.pad-r-46 {
+  padding-right: 46px;
 }
 
-.pad-t-20 {
-  padding-top: 20px;
+.pad-t-46 {
+  padding-top: 46px;
 }
 
-.pad-b-20 {
-  padding-bottom: 20px;
+.pad-b-46 {
+  padding-bottom: 46px;
 }
 
-.mar-20 {
-  margin: 20px;
+.mar-46 {
+  margin: 46px;
 }
 
-.mar-l-20 {
-  margin-left: 20px;
+.mar-l-46 {
+  margin-left: 46px;
 }
 
-.mar-r-20 {
-  margin-right: 20px;
+.mar-r-46 {
+  margin-right: 46px;
 }
 
-.mar-t-20 {
-  margin-top: 20px;
+.mar-t-46 {
+  margin-top: 46px;
 }
 
-.mar-b-20 {
-  margin-bottom: 20px;
+.mar-b-46 {
+  margin-bottom: 46px;
 }
 
-.pad-21 {
-  padding: 21px;
+.pad-47 {
+  padding: 47px;
 }
 
-.pad-l-21 {
-  padding-left: 21px;
+.pad-l-47 {
+  padding-left: 47px;
 }
 
-.pad-r-21 {
-  padding-right: 21px;
+.pad-r-47 {
+  padding-right: 47px;
 }
 
-.pad-t-21 {
-  padding-top: 21px;
+.pad-t-47 {
+  padding-top: 47px;
 }
 
-.pad-b-21 {
-  padding-bottom: 21px;
+.pad-b-47 {
+  padding-bottom: 47px;
 }
 
-.mar-21 {
-  margin: 21px;
+.mar-47 {
+  margin: 47px;
 }
 
-.mar-l-21 {
-  margin-left: 21px;
+.mar-l-47 {
+  margin-left: 47px;
 }
 
-.mar-r-21 {
-  margin-right: 21px;
+.mar-r-47 {
+  margin-right: 47px;
 }
 
-.mar-t-21 {
-  margin-top: 21px;
+.mar-t-47 {
+  margin-top: 47px;
 }
 
-.mar-b-21 {
-  margin-bottom: 21px;
+.mar-b-47 {
+  margin-bottom: 47px;
 }
 
-.pad-22 {
-  padding: 22px;
+.pad-48 {
+  padding: 48px;
 }
 
-.pad-l-22 {
-  padding-left: 22px;
+.pad-l-48 {
+  padding-left: 48px;
 }
 
-.pad-r-22 {
-  padding-right: 22px;
+.pad-r-48 {
+  padding-right: 48px;
 }
 
-.pad-t-22 {
-  padding-top: 22px;
+.pad-t-48 {
+  padding-top: 48px;
 }
 
-.pad-b-22 {
-  padding-bottom: 22px;
+.pad-b-48 {
+  padding-bottom: 48px;
 }
 
-.mar-22 {
-  margin: 22px;
+.mar-48 {
+  margin: 48px;
 }
 
-.mar-l-22 {
-  margin-left: 22px;
+.mar-l-48 {
+  margin-left: 48px;
 }
 
-.mar-r-22 {
-  margin-right: 22px;
+.mar-r-48 {
+  margin-right: 48px;
 }
 
-.mar-t-22 {
-  margin-top: 22px;
+.mar-t-48 {
+  margin-top: 48px;
 }
 
-.mar-b-22 {
-  margin-bottom: 22px;
+.mar-b-48 {
+  margin-bottom: 48px;
 }
 
-.pad-23 {
-  padding: 23px;
+.pad-49 {
+  padding: 49px;
 }
 
-.pad-l-23 {
-  padding-left: 23px;
+.pad-l-49 {
+  padding-left: 49px;
 }
 
-.pad-r-23 {
-  padding-right: 23px;
+.pad-r-49 {
+  padding-right: 49px;
 }
 
-.pad-t-23 {
-  padding-top: 23px;
+.pad-t-49 {
+  padding-top: 49px;
 }
 
-.pad-b-23 {
-  padding-bottom: 23px;
+.pad-b-49 {
+  padding-bottom: 49px;
 }
 
-.mar-23 {
-  margin: 23px;
+.mar-49 {
+  margin: 49px;
 }
 
-.mar-l-23 {
-  margin-left: 23px;
+.mar-l-49 {
+  margin-left: 49px;
 }
 
-.mar-r-23 {
-  margin-right: 23px;
+.mar-r-49 {
+  margin-right: 49px;
 }
 
-.mar-t-23 {
-  margin-top: 23px;
+.mar-t-49 {
+  margin-top: 49px;
 }
 
-.mar-b-23 {
-  margin-bottom: 23px;
+.mar-b-49 {
+  margin-bottom: 49px;
 }
 
 .sidebar-problem-list {
@@ -2018,7 +3076,7 @@ button + button, button + a.button, a.button + button, a.button + a.button {
   margin-left: 12px;
 }
 
-input, textarea {
+input, textarea, select {
   border: none;
   background-color: #111;
   color: white;
@@ -2026,11 +3084,16 @@ input, textarea {
   display: inline-block;
   padding: 0.25rem;
 }
-input::placeholder, textarea::placeholder {
+input::placeholder, textarea::placeholder, select::placeholder {
   color: #999;
 }
 
-form input, form textarea {
+input[type=submit] {
+  cursor: pointer;
+  background-color: #0077c2;
+}
+
+form input, form textarea, form select {
   z-index: 20;
   box-shadow: 0px 2px 6px 0.5px rgba(0, 0, 0, 0.7);
   padding: 0.75rem;
@@ -2046,10 +3109,10 @@ form label {
   box-shadow: 0px 2px 6px 0.5px rgba(0, 0, 0, 0.7);
   background-color: #0077c2;
   width: 100%;
-  line-height: 48px;
+  line-height: 44px;
   display: inline-block;
-  padding-left: 12px;
-  margin-top: 16px;
+  padding: 4px 12px 4px;
+  margin-top: 12px;
 }
 
 .error-list ul li {
index 7d0bbc64e92aabaab4af8b59398949bd1f20d02a..117b018a00362554c1b39d96998c5fe452989052 100644 (file)
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["../scss/_navbar.scss","../scss/_vars.scss","../scss/_utils.scss","../scss/_elevate.scss","../scss/problem/_sidebar.scss","../scss/vendor/circle.scss","../scss/vendor/_mixins.scss","../scss/vendor/_variables.scss","../scss/core.scss"],"names":[],"mappings":"AAAA;EACC;EACA;EACA,YCIc;EDHd,QCoBe;EDnBf;EAEA;EAEA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA,kBClCY;EDoCZ;;AAEA;EACC;EACA;;;AE/CJ;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAIA;EACC;EACA;;;AAFD;EACC;EACA;;;AAFD;EACC;EACA;;;AAIF;EACC;EACA;;AAGC;EACC;;AAGD;EACC;;;AAKH;EC3CI;ED6CH;;AAGC;EAEC;;AAIF;EAGC;;;AAIF;EACC;EACA;;;AAGD;EACC;;AAEA;EAAW;;AACX;EAAW;;AACX;EAAW;;AACX;EAAW;;AAEC;EAAW,kBDtEd;;ACuES;EAAW,kBDtEd;;ACuEE;EAAW,kBDtEd;;ACwEA;EAAW,kBDtEd;;ACuES;EAAW,kBDtEd;;ACuEE;EAAW,kBDtEd;;ACwEN;EAAW,kBDtEd;;ACuES;EAAW,kBDtEd;;ACuEE;EAAW,kBDtEd;;;ACyEb;ECvFI;EDyFH;;AAEA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAIA;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AEpHhB;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EAEA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EAEA;EACA;EACA;EAEA;EACA;;;AC9CF;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;ECNA;EACA;EACA;EACA;EACA;;;ADMJ;ECVI;EACA;EACA;EACA;EACA;;;ADWJ;EAMI;EACA;EACA;EACA;EACA;EACA;EACA,kBEjCc;;AFsBd;AAAA;AAAA;ECRA,oBDWwB;ECVxB,iBDUwB;ECTxB,YDSwB;;AAUxB;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OEzDU;EF0DV;EACA;EACA;ECzCJ,6BD0CiC;ECzCjC,0BDyCiC;ECxCjC,wBDwCiC;ECvCjC,qBDuCiC;ECnCjC,6BDoCiC;ECnCjC,0BDmCiC;EClCjC,wBDkCiC;ECjCjC,qBDiCiC;EC7BjC,oCD8BwC;EC7BxC,iCD6BwC;EC5BxC,+BD4BwC;EC3BxC,4BD2BwC;;AAGxC;EACI;EACA,KExEO;EFyEP,MEzEO;EF0EP;EACA;EACA;EACA,kBExEG;EFyEH;EACA;ECxDJ,6BDyDiC;ECxDjC,0BDwDiC;ECvDjC,wBDuDiC;ECtDjC,qBDsDiC;EClDjC,6BDmDiC;EClDjC,0BDkDiC;ECjDjC,wBDiDiC;EChDjC,qBDgDiC;EC5CjC,oCD6CwC;EC5CxC,iCD4CwC;EC3CxC,+BD2CwC;EC1CxC,4BD0CwC;;AAGxC;EACI;EACA;EACA;EACA;;AAuBA;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADwGA;EACI;;AACA;EACI;EACA;EACA;EACA,OEzHI;;AF2HR;EACI,KE9HS;EF+HT,ME/HS;EFgIT;EACA;;AAIR;EACI,kBJhIO;;AIiIP;AAAA;EAEI;;AAEJ;EACI,OJtIG;;AIwIP;EACI,kBErII;;AFwIJ;EACI,OJ9IA;;AIkJZ;EACF,kBJ1IW;;AI2IL;AAAA;EAEI;;AAGA;EACI,OJnJR;;AIsJN;EACC,OJrJU;;;AOPb;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EAEA;EACA;EACA;EACA;;;AAGD;ELhCI;EKkCH;EACA,kBP7Bc;EO8Bd;EAEA;EACA;EACA;EACA;EAEA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACC;;;AAKD;EACC;ELlEE;EKqEF;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;ELhFE;EKkFF,kBP5Ea;EO6Eb;EACA;EAEA;EACA;EACA;;;AAOD;EL/FG;EKkGF;EACA,kBPzFe;EO0Ff;EACA;;AAEA;EACC,kBPlGY;;;AOuGf;EACC;EACA;;;AAGD;EAKC;ELvHG;EK0HH;EACA;EAEA;EACA;EACA;EACA,OPjIO;;AOoHP;EACC;;;AAeF;ELnII;EKsIH,kBPhIc;EOiId;EACA;EACA;EACA;;AAEA;EACC;EACA;;;AAIF;EAGC;EACA;;AAEA;EACC;;;AAKD;EACC;EACA,kBP5JQ;EO6JR;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA","file":"core.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["../scss/_navbar.scss","../scss/_vars.scss","../scss/_utils.scss","../scss/_elevate.scss","../scss/problem/_sidebar.scss","../scss/vendor/circle.scss","../scss/vendor/_mixins.scss","../scss/vendor/_variables.scss","../scss/core.scss"],"names":[],"mappings":"AAAA;EACC;EACA;EACA,YCIc;EDHd,QCoBe;EDnBf;EAEA;EAEA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA,kBClCY;EDoCZ;;AAEA;EACC;EACA;;;AE/CJ;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAIA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;;AATF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;;AATF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;;AAKH;EACC;EACA;;AAGC;EACC;;AAGD;EACC;;;AAKH;ECnDI;EDqDH;;AAGC;EAEC;;AAIF;EAGC;;;AAIF;EACC;EACA;;;AAGD;EACC;;AAEA;EAAW;;AACX;EAAW;;AACX;EAAW;;AACX;EAAW;;AAEC;EAAW,kBD9Ed;;AC+ES;EAAW,kBD9Ed;;AC+EE;EAAW,kBD9Ed;;ACgFA;EAAW,kBD9Ed;;AC+ES;EAAW,kBD9Ed;;AC+EE;EAAW,kBD9Ed;;ACgFN;EAAW,kBD9Ed;;AC+ES;EAAW,kBD9Ed;;AC+EE;EAAW,kBD9Ed;;;ACiFb;EC/FI;EDiGH;;AAEA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAIA;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AE5HhB;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EAEA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EAEA;EACA;EACA;EAEA;EACA;;;AC9CF;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;ECNA;EACA;EACA;EACA;EACA;;;ADMJ;ECVI;EACA;EACA;EACA;EACA;;;ADWJ;EAMI;EACA;EACA;EACA;EACA;EACA;EACA,kBEjCc;;AFsBd;AAAA;AAAA;ECRA,oBDWwB;ECVxB,iBDUwB;ECTxB,YDSwB;;AAUxB;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OEzDU;EF0DV;EACA;EACA;ECzCJ,6BD0CiC;ECzCjC,0BDyCiC;ECxCjC,wBDwCiC;ECvCjC,qBDuCiC;ECnCjC,6BDoCiC;ECnCjC,0BDmCiC;EClCjC,wBDkCiC;ECjCjC,qBDiCiC;EC7BjC,oCD8BwC;EC7BxC,iCD6BwC;EC5BxC,+BD4BwC;EC3BxC,4BD2BwC;;AAGxC;EACI;EACA,KExEO;EFyEP,MEzEO;EF0EP;EACA;EACA;EACA,kBExEG;EFyEH;EACA;ECxDJ,6BDyDiC;ECxDjC,0BDwDiC;ECvDjC,wBDuDiC;ECtDjC,qBDsDiC;EClDjC,6BDmDiC;EClDjC,0BDkDiC;ECjDjC,wBDiDiC;EChDjC,qBDgDiC;EC5CjC,oCD6CwC;EC5CxC,iCD4CwC;EC3CxC,+BD2CwC;EC1CxC,4BD0CwC;;AAGxC;EACI;EACA;EACA;EACA;;AAuBA;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADwGA;EACI;;AACA;EACI;EACA;EACA;EACA,OEzHI;;AF2HR;EACI,KE9HS;EF+HT,ME/HS;EFgIT;EACA;;AAIR;EACI,kBJhIO;;AIiIP;AAAA;EAEI;;AAEJ;EACI,OJtIG;;AIwIP;EACI,kBErII;;AFwIJ;EACI,OJ9IA;;AIkJZ;EACF,kBJ1IW;;AI2IL;AAAA;EAEI;;AAGA;EACI,OJnJR;;AIsJN;EACC,OJrJU;;;AOPb;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EAEA;EACA;EACA;EACA;;;AAGD;ELhCI;EKkCH;EACA,kBP7Bc;EO8Bd;EAEA;EACA;EACA;EACA;EAEA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;EACA,kBP5Dc;;;AOgEd;EACC;ELvEE;EK0EF;EACA;EACA;;AAID;EACC;EACA;;AAGD;EACC;ELtFE;EKwFF,kBPlFa;EOmFb;EACA;EAEA;EACA;EACA;;;AAOD;ELrGG;EKwGF;EACA,kBP/Fe;EOgGf;EACA;;AAEA;EACC,kBPxGY;;;AO6Gf;EACC;EACA;;;AAGD;EAKC;EL7HG;EKgIH;EACA;EAEA;EACA;EACA;EACA,OPvIO;;AO0HP;EACC;;;AAeF;ELzII;EK4IH,kBPtIc;EOuId;EACA;EACA;EACA;;AAEA;EACC;EACA;;;AAIF;EAGC;EACA;;AAEA;EACC;;;AAKD;EACC;EACA,kBPlKQ;EOmKR;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA","file":"core.css"}
\ No newline at end of file
index 4eed3ecc15c292a1fbfd32a1688517df608fac87..feab6a24c73d284ae0c06043e136dfc7ceb256db 100644 (file)
@@ -24,6 +24,14 @@ a {
        .split-#{$i} {
                display: grid;
                grid-template-columns: repeat(#{$i}, 1fr);
+
+               & > *:first-child {
+                       margin-right: 12px;
+               }
+
+               & > *:last-child {
+                       margin-left: 12px;
+               }
        }
 }
 
@@ -103,7 +111,7 @@ pre {
        width: 100%;
 }
 
-@for $i from 1 to 24 {
+@for $i from 1 to 50 {
        .pad-#{$i} { padding: #{$i}px; }
        .pad-l-#{$i} { padding-left: #{$i}px; }
        .pad-r-#{$i} { padding-right: #{$i}px; }
index 3f4dcb0b54f186d89d61f3fc520af8116218f6d7..719b85d5ceb8ad6aeb3df1902a5f4398859d4cf4 100644 (file)
@@ -49,7 +49,7 @@ button, a.button {
        }
 }
 
-input, textarea {
+input, textarea, select {
        border: none;
        background-color: #111;
        color: white;
@@ -63,8 +63,13 @@ input, textarea {
        }
 }
 
+input[type="submit"] {
+       cursor: pointer;
+       background-color: $primary-dark;
+}
+
 form {
-       input, textarea {
+       input, textarea, select {
                z-index: 20;
                @include elevate(2px, rgba(0, 0, 0, 0.7));
 
@@ -73,6 +78,7 @@ form {
                width: 100%;
        }
 
+
        textarea {
                background-color: #111;
                height: 50vh;
@@ -83,11 +89,11 @@ form {
                @include elevate(2px, rgba(0, 0, 0, 0.7));
                background-color: $primary-dark;
                width: 100%;
-               line-height: 48px;
+               line-height: 44px;
 
                display: inline-block;
-               padding-left: 12px;
-               margin-top: 16px;
+               padding: 4px 12px 4px;
+               margin-top: 12px;
        }
 }
 
index 0c01de44f57564943b0c1fdb6f320e0b300f4900..8c07245ae48996abb4747981ce4ddcedb9906206 100644 (file)
@@ -9,8 +9,11 @@ class AdminCompetition extends html.Widget
                                -> text 'Create a competition'
 
                        for comp in *@competitions
-                               div class: 'header-line', ->
+                               div class: 'option-line', ->
                                        span comp.name
+                                       div class: 'button-list', ->
+                                               a href: (@url_for "admin.competition.edit", { competition_id: comp.id }), "Edit"
+                                               a href: (@url_for "admin.competition.delete", { competition_id: comp.id}), 'Delete'
 
                                div class: 'box', ->
                                        div class: 'highlight pad-12 split-lr', ->
@@ -20,5 +23,3 @@ class AdminCompetition extends html.Widget
                                        div class: 'highlight pad-12 split-lr', ->
                                                span 'End time'
                                                span comp.end
-
-
diff --git a/codebox/views/admin/competition/edit.moon b/codebox/views/admin/competition/edit.moon
new file mode 100644 (file)
index 0000000..297a52f
--- /dev/null
@@ -0,0 +1,53 @@
+html = require "lapis.html"
+
+class AdminCompetitionEdit extends html.Widget
+       content: =>
+               h1 "Editing '#{@comp.name}'"
+
+               div class: 'content', ->
+                       div class: 'split-2', ->
+                               form method: 'POST', ->
+                                       input type: 'hidden', name: 'id', value: "#{@comp.id}", ""
+
+                                       label for: 'name', 'Competition name'
+                                       input type: 'text', name: 'name', value: "#{@comp.name}", ""
+
+                                       label for: 'start_time', 'Start time'
+                                       input type: 'datetime-local', name: 'start_time', value: "#{@comp.start}", ""
+
+                                       label for: 'end_time', 'End time'
+                                       input type: 'datetime-local', name: 'end_time', value: "#{@comp.end}", ""
+
+                                       input type: 'submit', value: 'Save competition'
+                               
+                               div ->
+                                       div class: 'header-line', ->
+                                               span "Problems"
+
+                                       div class: 'box', ->
+                                               if @comp_problems
+                                                       for cp in *@comp_problems
+                                                               div class: 'highlight split-lr', ->
+                                                                       div class: 'tabbed-split tab-32 primary-dark', ->
+                                                                               span class: 'pad-12', -> text cp.letter
+                                                                               div class: 'pad-12', -> text "#{cp.name}"
+
+                                                                       div class: 'pad-12 button-list', ->
+                                                                               a 'Remove'
+
+                                       h2 class: 'mar-t-32', "Add problem"
+                                       form method: 'POST', action: '/test', ->
+                                               input type: 'hidden', name: 'competition_id', value: "#{@comp.id}", ""
+
+                                               label for: 'problem_name', 'Problem name'
+                                               element 'select', name: 'problem_name', ->
+                                                       for prob in *@all_problems
+                                                               option value: "#{prob.short_name}", "#{prob.name}"
+
+                                               label for: 'letter', 'Problem letter'
+                                               element 'select', ->
+                                                       for i = 0, 25, 1
+                                                               letter = string.char (65 + i)
+                                                               option value: "#{letter}", "#{letter}"
+
+                                               input type: 'submit', value: 'Add problem'
index bde1c9fa4b78eb944ef33b8157e06694afa6ff3a..a7872b1742b0c6304afe32ec98ff4c0584a1c8ee 100644 (file)
@@ -10,16 +10,27 @@ class AdminProblems extends html.Widget
 
                        br ''
                        for problem in *@problems
-                               div class: 'option-line', ->
-                                       span "#{problem.name}"
-                                       div class: 'button-list', ->
-                                               a href: (@url_for 'admin.problem.edit', problem_name: problem.short_name), 'Edit'
-                                               a { 'data-problem-delete': problem.short_name }, 'Delete'
-                               div class: 'box', ->
-                                       div class: 'highlight pad-12 split-lr', ->
-                                               span "Short name:"
-                                               span "#{problem.short_name}"
-                                       div class: 'highlight pad-12 split-lr', ->
-                                               span "Time limit:"
-                                               span "#{problem.time_limit}ms"
+                               div class: 'w50 left pad-12', ->
+                                       div class: 'option-line', ->
+                                               span "#{problem.name}"
+                                               div class: 'button-list', ->
+                                                       a href: (@url_for 'admin.problem.edit', problem_name: problem.short_name), 'Edit'
+                                                       a { 'data-problem-delete': problem.short_name }, 'Delete'
+
+                                       div class: 'box', ->
+                                               div class: 'highlight pad-12 split-lr', ->
+                                                       span "Short name:"
+                                                       span "#{problem.short_name}"
+                                               div class: 'highlight pad-12 split-lr', ->
+                                                       span "Time limit:"
+                                                       span "#{problem.time_limit}ms"
+                                               div class: 'highlight pad-12 split-lr', ->
+                                                       span "Correct submissions:"
+                                                       span "#{problem\get_correct_jobs![1].count}"
+                                               div class: 'highlight pad-12 split-lr', ->
+                                                       span "Wrong submissions:"
+                                                       span "#{problem\get_wrong_answer_jobs![1].count}"
+                                               div class: 'highlight pad-12 split-lr', ->
+                                                       span "Timed out submissions:"
+                                                       span "#{problem\get_timed_out_jobs![1].count}"
 
index c03eb8edce4a76d2f8fcc1665b64e1318d3e0bd1..611713c281e466fa54357e0486fcb2d5df602f36 100644 (file)
@@ -6,29 +6,34 @@ class AdminProblemEdit extends html.Widget
                h1 "Editing '#{@problem.name}'"
 
                div class: 'content', ->
-                       form method: 'POST', ->
-                               input type: 'hidden', name: 'csrf_token', value: @csrf_token
-                               input type: 'hidden', name: 'problem_id', value: @problem.id
+                       div class: 'split-2', ->
+                               div ->
+                                       h2 class: 'pad-l-12', 'Problem info'
+                                       form method: 'POST', ->
+                                               input type: 'hidden', name: 'csrf_token', value: @csrf_token
+                                               input type: 'hidden', name: 'problem_id', value: @problem.id
 
-                               label for: 'name', 'Problem name'
-                               input type: 'text', name: 'name', placeholder: 'Problem name', value: @problem.name, ""
+                                               label for: 'name', 'Problem name'
+                                               input type: 'text', name: 'name', placeholder: 'Problem name', value: @problem.name, ""
 
-                               label for: 'name', 'Short name'
-                               input type: 'text', name: 'short_name', placeholder: 'Short URL name', value: @problem.short_name, ""
+                                               label for: 'name', 'Short name'
+                                               input type: 'text', name: 'short_name', placeholder: 'Short URL name', value: @problem.short_name, ""
 
-                               label for: 'name', 'Problem description'
-                               textarea name: 'description', placeholder: 'Problem description', @problem.description
+                                               label for: 'name', 'Problem description'
+                                               textarea name: 'description', placeholder: 'Problem description', @problem.description
 
-                               label for: 'name', 'Time limit'
-                               input type: 'number', value: 500, name: 'time_limit', value: @problem.time_limit, ""
+                                               label for: 'name', 'Time limit'
+                                               input type: 'number', value: 500, name: 'time_limit', value: @problem.time_limit, ""
 
-                               input type: 'submit', value: 'Update problem'
+                                               input type: 'submit', value: 'Update problem info'
 
-                       h2 style: 'margin: 48px 0 16px; padding-left: 12px', 'Test cases'
+                               div ->
+                                       h2 class: 'pad-l-12', 'Test cases' 
 
-                       div class: 'test-cases', ->
-                               for test_case in *@test_cases
-                                       widget (TestCase test_case.testcase_order, test_case.uuid, test_case.input, test_case.output)
+                                       div class: 'test-cases', ->
+                                               for test_case in *@test_cases
+                                                       widget (TestCase test_case.testcase_order, test_case.uuid, test_case.input, test_case.output)
 
-                       button { 'data-new-tc': @problem.short_name }, 'New test case'
-                       button { 'data-tc-save-all': true }, 'Save all'
+                                       button { 'data-new-tc': @problem.short_name }, 'New test case'
+                                       button { 'data-tc-save-all': true }, 'Save all'
+       
\ No newline at end of file
index 20b1d438322d3926e39e3b71b680068e8794b4af..d45e58580823bbb9a7a6e03ab4cb0c8753afe89e 100644 (file)
@@ -7,22 +7,23 @@ class AdminSubmission extends html.Widget
 
                div class: 'content', ->
                        for job in *@jobs
-                               div class: 'option-line', ->
-                                       span "#{job.job_id}"
-                                       div class: 'button-list', ->
-                                               a href: (@url_for 'admin.submission.edit', {}, { submission_id: job.job_id }), 'View'
+                               div class: 'w50 left pad-12', ->
+                                       div class: 'option-line', ->
+                                               span "#{job.job_id}"
+                                               div class: 'button-list', ->
+                                                       a href: (@url_for 'admin.submission.edit', {}, { submission_id: job.job_id }), 'View'
 
-                               div class: 'box', ->
-                                       div class: 'highlight pad-12 split-lr', ->
-                                               span 'Status:'
-                                               span Jobs.statuses\to_name job.status
-                                       div class: 'highlight pad-12 split-lr', ->
-                                               span 'Username:'
-                                               span job\get_user!.username
-                                       div class: 'highlight pad-12 split-lr', ->
-                                               span 'Problem:'
-                                               span job\get_problem!.short_name
-                                       div class: 'highlight pad-12 split-lr', ->
-                                               span 'Language:'
-                                               span job.lang
+                                       div class: 'box', ->
+                                               div class: 'highlight pad-12 split-lr', ->
+                                                       span 'Status:'
+                                                       span Jobs.statuses\to_name job.status
+                                               div class: 'highlight pad-12 split-lr', ->
+                                                       span 'Username:'
+                                                       span job\get_user!.username
+                                               div class: 'highlight pad-12 split-lr', ->
+                                                       span 'Problem:'
+                                                       span job\get_problem!.short_name
+                                               div class: 'highlight pad-12 split-lr', ->
+                                                       span 'Language:'
+                                                       span job.lang
 
index f81358773e3b98b69cb35ac46e1f5a0fd97b7725..ae68b2f2953eaf4f3cd4e70a1142c7ae085d8582 100644 (file)
@@ -6,15 +6,16 @@ class AdminUsers extends html.Widget
 
                div class: 'content', ->
                        for user in *@users
-                               div class: 'option-line', ->
-                                       span "#{user.username}"
-                                       div class: 'button-list', ->
-                                               button { 'data-user-reset-password': user.username }, 'Reset password'
-                                               button { 'data-user-delete': user.username }, 'Delete'
-                               div class: 'box', ->
-                                       div class: 'highlight pad-12 split-lr', ->
-                                               span "Nickname:"
-                                               span "#{user.nickname}"
-                                       div class: 'highlight pad-12 split-lr', ->
-                                               span "Email:"
-                                               span "#{user.email}"
+                               div class: 'w50 left pad-12', ->
+                                       div class: 'option-line', ->
+                                               span "#{user.username}"
+                                               div class: 'button-list', ->
+                                                       button { 'data-user-reset-password': user.username }, 'Reset password'
+                                                       button { 'data-user-delete': user.username }, 'Delete'
+                                       div class: 'box', ->
+                                               div class: 'highlight pad-12 split-lr', ->
+                                                       span "Nickname:"
+                                                       span "#{user.nickname}"
+                                               div class: 'highlight pad-12 split-lr', ->
+                                                       span "Email:"
+                                                       span "#{user.email}"
index bd32efc17e5a6d396859632830a4eb8bad1fea46..4fa8a898b7766e4ce86a20ea5cbf08675ef61424 100644 (file)
@@ -55,15 +55,15 @@ class JobResultView extends html.Widget
                                                div class: "highlight pad-12 pad-b-4 split-lr", ->
                                                        div "Status:"
                                                        div "#{@status_str}"
+                                               div class: "highlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr", ->
+                                                       div "User:"
+                                                       div "#{@username}"
                                                div class: "highlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr", ->
                                                        div "Problem:"
                                                        div "#{@problem}"
                                                div class: "highlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr", ->
                                                        div "Time submittted:"
                                                        div "#{@time_started}"
-                                               div class: "highlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr", ->
-                                                       div "Bytes:"
-                                                       div "N/A"
                        div ->
                                if @show_slash
                                        div class: 'header-line', ->