northpass 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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 -%>