northpass 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.pairs +16 -0
  4. data/.rspec +2 -0
  5. data/Gemfile +6 -0
  6. data/Gemfile.ocra +7 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +100 -0
  9. data/Rakefile +36 -0
  10. data/bin/sk +10 -0
  11. data/bin/sk_gui +8 -0
  12. data/circle.yml +8 -0
  13. data/config/ca-bundle.crt +3894 -0
  14. data/config/color_scheme.css.erb +91 -0
  15. data/config/fixtures.yml +255 -0
  16. data/config/learning.html.erb +43 -0
  17. data/config/learning_color_scheme.css.erb +70 -0
  18. data/config/locale.yml +110 -0
  19. data/config/school_website.html.erb +37 -0
  20. data/lib/schoolkeep.rb +16 -0
  21. data/lib/schoolkeep/cli.rb +135 -0
  22. data/lib/schoolkeep/client.rb +54 -0
  23. data/lib/schoolkeep/fixture.rb +130 -0
  24. data/lib/schoolkeep/fixture/stubs.rb +106 -0
  25. data/lib/schoolkeep/gui_client.rb +99 -0
  26. data/lib/schoolkeep/scribble.rb +480 -0
  27. data/lib/schoolkeep/scribble/methods/app.rb +17 -0
  28. data/lib/schoolkeep/scribble/methods/collection_each.rb +3 -0
  29. data/lib/schoolkeep/scribble/methods/display_search_form.rb +28 -0
  30. data/lib/schoolkeep/scribble/methods/filter_parameter_value.rb +11 -0
  31. data/lib/schoolkeep/scribble/methods/hide_search_box.rb +17 -0
  32. data/lib/schoolkeep/scribble/methods/l.rb +13 -0
  33. data/lib/schoolkeep/scribble/methods/limit.rb +11 -0
  34. data/lib/schoolkeep/scribble/methods/no_filter_selected_class.rb +19 -0
  35. data/lib/schoolkeep/scribble/methods/pluralize.rb +32 -0
  36. data/lib/schoolkeep/scribble/methods/query_parameter_value.rb +11 -0
  37. data/lib/schoolkeep/scribble/methods/script.rb +45 -0
  38. data/lib/schoolkeep/scribble/methods/t.rb +25 -0
  39. data/lib/schoolkeep/server.rb +132 -0
  40. data/lib/schoolkeep/template.rb +67 -0
  41. data/lib/schoolkeep/template_names.rb +24 -0
  42. data/lib/schoolkeep/version.rb +3 -0
  43. data/lib/schoolkeep/views/asset_cache.rb +34 -0
  44. data/lib/schoolkeep/views/color_scheme.rb +19 -0
  45. data/lib/schoolkeep/views/layout.rb +72 -0
  46. data/media/schoolkeep.ico +0 -0
  47. data/media/sk-144.gif +0 -0
  48. data/media/sk-16.gif +0 -0
  49. data/media/sk-57.gif +0 -0
  50. data/media/sk-72.gif +0 -0
  51. data/schoolkeep.gemspec +28 -0
  52. data/spec/cli_spec.rb +70 -0
  53. data/spec/features/cli_spec.rb +51 -0
  54. data/spec/features/client_spec.rb +48 -0
  55. data/spec/fixture_spec.rb +68 -0
  56. data/spec/methods/filter_parameter_value_spec.rb +28 -0
  57. data/spec/methods/pluralize_spec.rb +41 -0
  58. data/spec/methods/query_parameter_value_spec.rb +26 -0
  59. data/spec/methods/script_spec.rb +52 -0
  60. data/spec/methods/t_spec.rb +33 -0
  61. data/spec/server_spec.rb +81 -0
  62. data/spec/spec_helper.rb +48 -0
  63. data/spec/views/asset_cache_spec.rb +24 -0
  64. data/spec/views/color_scheme_spec.rb +15 -0
  65. metadata +223 -0
@@ -0,0 +1,91 @@
1
+ a:not(.uk-button) {
2
+ <%- if @color_scheme.button_color? -%>
3
+ color: <%= @color_scheme.button_color %>;
4
+ <% end %>
5
+ }
6
+
7
+ .uk-button-primary {
8
+ <%- if @color_scheme.button_color? -%>
9
+ background: <%= @color_scheme.button_color %> !important;
10
+ border-color: <%= @color_scheme.button_color %> !important;
11
+ <%- end -%>
12
+ <% if @color_scheme.button_font_color? %>
13
+ color: <%= @color_scheme.button_font_color %> !important;
14
+ <% end %>
15
+ }
16
+
17
+ .uk-button-primary:hover {
18
+ <%- if @color_scheme.button_hover_color? -%>
19
+ background: <%= @color_scheme.button_hover_color %> !important;
20
+ <%- end -%>
21
+ <% if @color_scheme.button_font_color? %>
22
+ color: <%= @color_scheme.button_font_color %> !important;
23
+ <% end %>
24
+ }
25
+
26
+ .uk-button-outline {
27
+ <%- if @color_scheme.button_color? -%>
28
+ border-color: <%= @color_scheme.button_color %> !important;
29
+ color: <%= @color_scheme.button_color %> !important;
30
+ <% end %>
31
+ }
32
+
33
+ .uk-button-outline:hover {
34
+ <%- if @color_scheme.button_hover_color? -%>
35
+ border-color: <%= @color_scheme.button_hover_color %> !important;
36
+ color: <%= @color_scheme.button_hover_color %> !important;
37
+ <%- end -%>
38
+ }
39
+
40
+ .school-website-header {
41
+ <%- if @color_scheme.header_color? -%>
42
+ background: <%= @color_scheme.header_color %>;
43
+ <%- end -%>
44
+ }
45
+
46
+ <%- if @color_scheme.header_font_color? -%>
47
+ .school-website-header .uk-navbar a {
48
+ color: <%= @color_scheme.header_font_color %>;
49
+ }
50
+ <%- end -%>
51
+
52
+ <%- if @color_scheme.header_font_hover_color? %>
53
+ .school-website-header .uk-navbar a:hover {
54
+ color: <%= @color_scheme.header_font_hover_color %>;
55
+ }
56
+ <%- end -%>
57
+
58
+ .uk-progress {
59
+ <%- if @color_scheme.header_color? -%>
60
+ background: <%= @color_scheme.header_color %>;
61
+ <%- end -%>
62
+ }
63
+
64
+ .uk-progress-bar {
65
+ <%- if @color_scheme.button_color? -%>
66
+ background: <%= @color_scheme.button_color %> !important;
67
+ <%- end -%>
68
+ <% if @color_scheme.button_font_color? %>
69
+ color: <%= @color_scheme.button_font_color %> !important;
70
+ <% end %>
71
+ }
72
+
73
+ ::-moz-selection {
74
+ <%- if @color_scheme.button_color? -%>
75
+ background: <%= @color_scheme.button_color %>;
76
+ <% end %>
77
+ <%- if @color_scheme.button_font_color? -%>
78
+ color: <%= @color_scheme.button_font_color %>;
79
+ <% end %>
80
+ text-shadow: none;
81
+ }
82
+
83
+ ::selection {
84
+ <%- if @color_scheme.button_color? -%>
85
+ background: <%= @color_scheme.button_color %>;
86
+ <% end %>
87
+ <%- if @color_scheme.button_font_color? -%>
88
+ color: <%= @color_scheme.button_font_color %>;
89
+ <% end %>
90
+ text-shadow: none;
91
+ }
@@ -0,0 +1,255 @@
1
+ ---
2
+ globals:
3
+ search_result:
4
+ count: 1
5
+ routes:
6
+ my_courses_path: "/my_courses"
7
+ my_content_path: "/my_courses"
8
+ my_profile_path: "/account/edit"
9
+ log_out_path: "/learners/sign_out"
10
+ log_in_path: "/learners/sign_in"
11
+ sign_up_path: "/learners/sign_up"
12
+ color_scheme_path: "/color_scheme.css"
13
+ custom_styles_path: "/styles.css.sktl"
14
+ schoolkeep_styles_url: "//app.northpass.com/assets/v1/school_website.css"
15
+ schoolkeep_v3_styles_url: "//app.northpass.com/assets/v3/school_website.css"
16
+ current_school:
17
+ apps:
18
+ commerce:
19
+ active: true
20
+ multiple_languages:
21
+ active: true
22
+ disable_social_share: false
23
+ favicon_url: "https://www.filepicker.io/api/file/AcrheRrtSsCwPNIEPpUg"
24
+ filtering_enabled?: false
25
+ has_custom_styles?: true
26
+ logo_navigation_url: "homepage.html.sktl"
27
+ logo_url: "http://d3p3alwwakpeoy.cloudfront.net/api/file/J4HV0nrRJ6vFo1xBcONW/convert?cache=true&fit=max&h=60&w=450"
28
+ my_content_path: "/my_courses"
29
+ name: "Straight Shot Photography"
30
+ filterable_categories:
31
+ - :category_1
32
+ - :category_2
33
+ current_learner:
34
+ name: "Test Learner"
35
+ access_course?: false
36
+ email: "current_learner@example.com"
37
+ sso_uid: "testuid1234"
38
+ id: "1234-id-1234"
39
+ enrolled_in_course?: false
40
+ filterable_categories:
41
+ - :category_1
42
+ - :category_2
43
+ current_person:
44
+ name: "Test Learner"
45
+ access_course?: true
46
+ email: "current_person@example.com"
47
+ sso_uid: "testuid1234"
48
+ id: "1234-id-1234"
49
+ enrolled_in_course?: true
50
+ filterable_categories:
51
+ - :category_1
52
+ - :category_2
53
+ params:
54
+ controller: "school_website/search"
55
+ models:
56
+ category_1:
57
+ name: Sample Category 1
58
+ link: /
59
+ category_2:
60
+ name: Sample Category 2
61
+ link: /
62
+ 1-1405715549:
63
+ about_label: "About the Course"
64
+ buy_label: "Buy Course"
65
+ cover_path: "/server_error.html.sktl"
66
+ details_path: "/catalog/1-1405715549"
67
+ enrollment_path: "/server_error.html.sktl"
68
+ featured_image_url: "http://d3p3alwwakpeoy.cloudfront.net/api/file/5JHkka9DRDm9gxSlEB9P/convert?fit=crop&h=503&w=819"
69
+ formatted_price: "100.00 USD"
70
+ full_description: >
71
+ We are all born to be photographers, but we're not born with the
72
+ technical knowledge we need to make our photos look the way we want
73
+ them to. In this class you'll learn every principle necessary to take
74
+ beautiful photos that capture your artistic vision. Whether you have a
75
+ point and shoot or you just got your first digital SLR, during this
76
+ educational seminar you will learn the fundamentals you need to get the
77
+ most from your camera and give you inspiration with your education to
78
+ help you capture your own artistic vision.
79
+ go_to_label: "Go to Course"
80
+ has_outline?: true
81
+ list_image_url: "http://d3p3alwwakpeoy.cloudfront.net/api/file/mTESnhHqSWKGjuyVsHR5/convert?fit=crop&h=217&w=354"
82
+ my_content_label: "My Courses"
83
+ name: "photography course"
84
+ outline_label: "Course Syllabus"
85
+ partnership_names: "Sample Instructor, Instructor 2"
86
+ partnerships:
87
+ start_or_continue: "Start"
88
+ register_for_events: "Register for events"
89
+ instructor_names: "Sample Instructor, Instructor 2"
90
+ instructors:
91
+ - name: "Sample Instructor"
92
+ image_url: "http://d3p3alwwakpeoy.cloudfront.net/api/file/Ibn82NrzQ1y2JU8KpZgg/convert?fit=crop&h=500&w=500"
93
+ title: "Teaching great courses since 1990"
94
+ bio: >
95
+ I first became interested in photography as a form of expression,
96
+ but having studied the fine arts - having drawn, printed, painted,
97
+ and sculpted - I realized that photography was a medium that could
98
+ foster a greater connection to the outside world.
99
+ payment_required?: true
100
+ progress_text: "50% Complete"
101
+ promo_video_embed:
102
+ published_sections:
103
+ - name: "Section 1: Sample Syllabus"
104
+ activities:
105
+ - list_class: "rich_text"
106
+ title: "Welcome"
107
+ completed?: true
108
+ - list_class: "download"
109
+ title: "What You'll Need"
110
+ completed?: false
111
+ - list_class: "video"
112
+ title: "ISO: A little or a lot of sensitivity"
113
+ - list_class: "slideshare"
114
+ title: "A Brief History of Photography"
115
+ - list_class: "survey"
116
+ title: "Feedback"
117
+ - list_class: "webpage"
118
+ title: "Your Instructor"
119
+ - list_class: "scribd"
120
+ title: "Shutter Speed: Stopping motion and capturing movement"
121
+ - list_class: "assignment"
122
+ title: "Get out into the world and take some photos"
123
+ - list_class: "quiz"
124
+ title: "Test your knowledge"
125
+ ribbon: "Sample"
126
+ short_description: >
127
+ This four-hour class will give you a lifetime of better photographs.
128
+ Learn all the basics, including exposure, lighting, composition and
129
+ digital editing. The lessons are taken on your own, so enjoy the
130
+ learning at a pace that suits your daily routine.
131
+ url: "/"
132
+ view_label: "View Course"
133
+ navigation_items:
134
+ - name: "Home"
135
+ path: "/homepage.html.sktl"
136
+ external?: false
137
+ - name: "Catalog"
138
+ path: "/course_index.html.sktl"
139
+ external?: false
140
+ - name: "Custom Page"
141
+ path: "/custom_page.html.sktl"
142
+ external?: false
143
+ - name: "External Link"
144
+ path: "https://www.northpass.com"
145
+ external?: true
146
+ templates:
147
+ _header.html.sktl:
148
+ header_navigations: :navigation_items
149
+ _footer.html.sktl:
150
+ website_footer:
151
+ show_navigation_links?: true
152
+ show_social_media_links?: true
153
+ show_customer_service_email?: true
154
+ show_powered_by_school_keep?: true
155
+ school_customer_service_email: "contact-us@example.com"
156
+ social_media_links:
157
+ - name: "facebook"
158
+ link: "https://www.facebook.com/"
159
+ - name: "twitter"
160
+ link: "https://www.twitter.com/"
161
+ - name: "linkedin"
162
+ link: "https://www.linkedin.com/"
163
+ - name: "youtube"
164
+ link: "https://www.youtube.com/"
165
+ - name: "gplus"
166
+ link: "https://plus.google.com/"
167
+ - name: "instagram"
168
+ link: "http://instagram.com/"
169
+ footer_navigations: :navigation_items
170
+ course_cover.html.sktl:
171
+ course: :1-1405715549
172
+ preview_banner: ""
173
+ learner_syllabus:
174
+ sections:
175
+ - name: "Section 1"
176
+ will_be_published?: false
177
+ activities:
178
+ - title: "Activity 1"
179
+ locked?: true
180
+ completed?: true
181
+ - name: "Scheduled Section"
182
+ will_be_published?: true
183
+ published_at: "2016/11/28"
184
+ activities:
185
+ - title: "Activity 1"
186
+ locked?: true
187
+ completed?: true
188
+ course_details.html.sktl:
189
+ course: :1-1405715549
190
+ course_index.html.sktl:
191
+ course_catalog:
192
+ headline: "Sample Course Catalog"
193
+ subheadline: "Learn how to be a great photographer"
194
+ courses:
195
+ - :1-1405715549
196
+ - :1-1405715549
197
+ - :1-1405715549
198
+ custom_page.html.sktl:
199
+ custom_page:
200
+ page_title: "FAQ | Straight Shot Photography"
201
+ headline: "Sample Custom Page"
202
+ subheadline: "Frequently Asked Questions"
203
+ image_url: "https://www.filepicker.io/api/file/81GG6V0KSnArPRVOEq0j"
204
+ content: |
205
+ <p>
206
+ <strong>Do I need to buy camera?</strong><br>
207
+ No, it is not necessary, however, if you would like to have it with
208
+ you to follow along with the discussion on camera settings then feel
209
+ free to bring it. We will also do our best to answer any questions you
210
+ have about your camera if you bring it up to the instructor, so bring it
211
+ if you would like to, but don't worry if you don't, because you will
212
+ learn everything the same way even if you don't have it with you.
213
+ </p>
214
+ <p>
215
+ <strong>Is there a way to avoid paying online, but attend the classes?</strong><br>
216
+ We do have other payment options for those of you who do not have a
217
+ PayPal account or prefer to not pay online with a credit card. You
218
+ have the option to e-mail hello@straightshot.com with the class name,
219
+ date, time, and transactions number, and we will make sure to add you
220
+ to the roster with a note that we have yet to receive payment from you.
221
+ Please be prepared to present payment to instructor before class begins
222
+ by arriving 5-10 minutes early.
223
+ </p>"
224
+ homepage.html.sktl:
225
+ homepage:
226
+ headline: "Sample School Homepage"
227
+ subheadline: "Photography courses from beginner to advanced"
228
+ artwork_url: "http://d3p3alwwakpeoy.cloudfront.net/api/file/TJUR9TXZQ82vQEpwATZj?cache=true"
229
+ featured_courses_headline: "Featured courses"
230
+ featured_courses_subheadline: "The best courses we have to offer"
231
+ published_featured_courses:
232
+ - :1-1405715549
233
+ - :1-1405715549
234
+ - :1-1405715549
235
+ my_content.html.sktl:
236
+ my_content:
237
+ headline: "My Courses"
238
+ subheadline: "Courses in which you're currently enrolled"
239
+ courses:
240
+ - :1-1405715549
241
+ - :1-1405715549
242
+ - :1-1405715549
243
+ styles.css.sktl:
244
+ color_palette:
245
+ button_color: "#07a9cb"
246
+ button_font_color: "#ffffff"
247
+ button_hover_color: "#0587a2"
248
+ header_color: "#ffffff"
249
+ header_font_color: "#3b3f3d"
250
+ header_font_hover_color: "#3b3f3d"
251
+ learning_header_color: "#ffffff"
252
+ learning_header_font_color: "#3b3f3d"
253
+ learning_header_font_hover_color: "#3b3f3d"
254
+ learning_link_button_color: "#c41b24"
255
+ learning_progress_bar_color: "#c41b24"
@@ -0,0 +1,43 @@
1
+ <!DOCTYPE html>
2
+ <html class="learner-experience">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title><%= current_school.name %></title>
6
+
7
+ <meta name="HandheldFriendly" content="true" />
8
+ <meta name="apple-mobile-web-app-capable" content="yes" />
9
+ <meta name="apple-mobile-web-app-status-bar-style" content="white" />
10
+ <meta name="apple-mobile-web-app-title" content="<%= current_school.name %>">
11
+ <meta name="viewport" content="initial-scale=1 maximum-scale=1 user-scalable=0 minimal-ui" />
12
+
13
+ <% if @school.favicon_url.nil? || @school.favicon_url == "" %>
14
+ <link href="<%= asset_url("/assets/sw-favicon.ico") %>" rel="shortcut icon" type="image/vnd.microsoft.icon" />
15
+ <% else %>
16
+ <link href="<%= @school.favicon_url %>" rel="shortcut icon" type="image/vnd.microsoft.icon" />
17
+ <% end %>
18
+
19
+ <script src="//use.typekit.net/fzx2rdx.js"></script>
20
+ <script>try { Typekit.load(); } catch(e) {};</script>
21
+
22
+ <link rel="stylesheet" media="all" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
23
+ <link rel="stylesheet" media="all" href="<%= asset_url("/assets/v3/learning.css") %>">
24
+ <link rel="stylesheet" media="all" href="/learning_color_scheme.css">
25
+
26
+ <% if current_school.lx_css_enabled? %>
27
+ <%= current_school.lx_custom_head %>
28
+ <% end %>
29
+ </head>
30
+
31
+ <body ontouchstart="">
32
+ <div id="learning" class="main-content">
33
+ <%= body %>
34
+ </div>
35
+
36
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
37
+ <script type="text/javascript">
38
+ // Fixes a bug where font's don't load on Chrome
39
+ // https://github.com/SchoolKeep/schoolkeep/pull/511
40
+ $(function() { $("body").hide().show(); });
41
+ </script>
42
+ </body>
43
+ </html>
@@ -0,0 +1,70 @@
1
+ <%- if @color_scheme.learning_header_color %>
2
+ .uk-navbar {
3
+ background: <%= @color_scheme.learning_header_color %> !important;
4
+ }
5
+ <%- end -%>
6
+
7
+ <%- if @color_scheme.learning_header_font_color %>
8
+ .uk-navbar-nav li a,
9
+ .uk-navbar-nav li button,
10
+ .nav--sidebar_title .uk-navbar-nav-subtitle:hover {
11
+ color: <%= @color_scheme.learning_header_font_color %> !important;
12
+ }
13
+ <%- end -%>
14
+
15
+ <%- if @color_scheme.learning_link_button_color %>
16
+ a:not(.uk-button),
17
+ .uk-link,
18
+ .sidebar-nav ul li a:hover,
19
+ .sidebar-nav ul li a:focus,
20
+ .sidebar-nav ul li .completed i,
21
+ .sidebar-nav ul li .completed:hover,
22
+ .sidebar-nav ul li .completed.active,
23
+ .footer-navigation i.uk-icon-check-circle-o {
24
+ color: <%= @color_scheme.learning_link_button_color %>;
25
+ }
26
+
27
+ .sidebar-nav ul li .active,
28
+ .sidebar-nav ul li .active i,
29
+ .sidebar-nav ul li .active:active,
30
+ .sidebar-nav ul li .active:focus,
31
+ .sidebar-nav ul li .active:hover,
32
+ .sidebar-nav ul li .active:visited,
33
+ .sidebar-nav ul li .active.completed {
34
+ background: <%= @color_scheme.learning_link_button_color %> !important;
35
+ color: #fff !important;
36
+ opacity: 1.0 !important;
37
+ }
38
+
39
+ .uk-button-primary,
40
+ .completion-button {
41
+ background: <%= @color_scheme.learning_link_button_color %> !important;
42
+ border: 1px solid <%= @color_scheme.learning_link_button_color %> !important;
43
+ }
44
+
45
+ .uk-text-primary {
46
+ color: <%= @color_scheme.learning_link_button_color %> !important;
47
+ }
48
+
49
+ .cover-syllabus li.completed:before {
50
+ background: <%= @color_scheme.learning_link_button_color %> !important;
51
+ border-color: <%= @color_scheme.learning_link_button_color %> !important;
52
+ }
53
+
54
+ .cover-syllabus li.completed:after {
55
+ background: <%= @color_scheme.learning_link_button_color %> !important;
56
+ }
57
+ <%- end -%>
58
+
59
+ <%- if @color_scheme.learning_header_font_hover_color %>
60
+ .uk-navbar-nav li a:hover,
61
+ .uk-navbar-nav li button:hover {
62
+ color: <%= @color_scheme.learning_header_font_hover_color %> !important;
63
+ }
64
+ <%- end -%>
65
+
66
+ <%- if @color_scheme.learning_progress_bar_color %>
67
+ .uk-progress-bar {
68
+ background-color: <%= @color_scheme.learning_progress_bar_color %>;
69
+ }
70
+ <%- end -%>