woople-theme 0.0.6 → 0.1.0

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.
@@ -5,28 +5,6 @@ header + .outline h2 {
5
5
  border-top:0;
6
6
  }
7
7
 
8
- #course {
9
- overflow:hidden;
10
-
11
- .page-header {
12
- img {
13
- .course-image();
14
- max-width:@imageWidth;
15
- float:left;
16
- margin-right:@gridGutterWidth;
17
- }
18
-
19
- p, h1 {
20
- margin-left: @gridGutterWidth + @imageWidth;
21
- }
22
- }
23
-
24
- > header {
25
- margin:0;
26
- }
27
-
28
- }
29
-
30
8
  @media (max-width: 767px) {
31
9
  #course {
32
10
  .modal-body {
@@ -3,16 +3,12 @@
3
3
 
4
4
  .outline {
5
5
  margin-bottom:20px;
6
+ overflow:hidden;
6
7
 
7
8
  h2 {
8
9
  .outline-title();
9
10
  }
10
11
 
11
- p {
12
- padding-left:@leftColumnOffset;
13
- padding-right:@contentPadding;
14
- }
15
-
16
12
  .assessment {
17
13
  margin-left:@leftColumnOffset;
18
14
  margin-top:@contentPadding;
@@ -1,6 +1,19 @@
1
1
  @import "woople-theme/variables.css.less";
2
2
  @import "woople-theme/colours.css.less";
3
3
 
4
+ .page-header-with-image {
5
+ img {
6
+ .course-image();
7
+ max-width:@imageWidth;
8
+ float:left;
9
+ margin-right:@gridGutterWidth;
10
+ }
11
+
12
+ p, h1 {
13
+ margin-left: @gridGutterWidth + @imageWidth;
14
+ }
15
+ }
16
+
4
17
  .page-header {
5
18
  border-color:fade(@highlight, 10%);
6
19
  padding-left:@contentPadding;
@@ -19,9 +19,11 @@ module ThemeHelper
19
19
  render partial: 'woople-theme/content_item_header'
20
20
  end
21
21
 
22
- def outline(items, presenter = nil)
23
- collection = ThemePresentation.wrap_collection(items, OutlinePresenter, presenter)
24
- render partial: 'woople-theme/outline', collection: collection
22
+ def outline(item, &block)
23
+ presenter = ThemePresentation.wrap(item, OutlinePresenter)
24
+ presenter.view_context = self
25
+
26
+ render partial: 'woople-theme/outline', locals: { outline: presenter, block: block }
25
27
  end
26
28
 
27
29
  def profile
@@ -1,7 +1,18 @@
1
1
  module ContentImage
2
2
  DEFAULT_IMAGE = 'woople-theme/missing.png'
3
+ MISSING_WOOPLE_IMAGE = '/images/original/missing.png'
3
4
 
4
5
  def image(&block)
5
- yield(__getobj__.image || DEFAULT_IMAGE) if __getobj__.respond_to? :image
6
+ yield(normalized(__getobj__.image) || DEFAULT_IMAGE) if __getobj__.respond_to? :image
7
+ end
8
+
9
+ private
10
+
11
+ def normalized(image)
12
+ if image.is_a?(Paperclip::Attachment) && image.to_s == MISSING_WOOPLE_IMAGE
13
+ DEFAULT_IMAGE
14
+ else
15
+ image
16
+ end
6
17
  end
7
18
  end
@@ -1,31 +1,38 @@
1
+ require 'action_view'
1
2
  require 'delegate'
2
3
 
3
4
  class OutlinePresenter < SimpleDelegator
4
- def assessment
5
- css_class = "assessment"
6
- css_class << " disabled" if assessment_disabled?
5
+ include ActionView::Helpers::TagHelper
7
6
 
8
- yield(css_class) if has_assessment?
9
- end
7
+ attr_accessor :view_context
10
8
 
11
- def render_downloads(view_context)
12
- wrapped_downloads = ThemePresentation.wrap_collection(downloads, OutlineDownloadPresenter)
13
- view_context.render partial: 'woople-theme/outline_download', collection: wrapped_downloads
9
+ def name
10
+ content_tag(:h2, outline.name)
14
11
  end
15
12
 
16
- def render_videos(view_context)
13
+ def videos(videos = outline.videos)
17
14
  wrapped_videos = ThemePresentation.wrap_collection(videos, OutlineVideoPresenter)
18
- view_context.render partial: 'woople-theme/outline_video', collection: wrapped_videos
15
+ view_context.render partial: 'woople-theme/outline_videos', locals: { videos: wrapped_videos }
19
16
  end
20
17
 
21
- def downloads
22
- outline.downloads
18
+ def downloads(downloads = outline.downloads)
19
+ wrapped_downloads = ThemePresentation.wrap_collection(downloads, OutlineDownloadPresenter)
20
+ view_context.render partial: 'woople-theme/outline_downloads', locals: { downloads: wrapped_downloads }
23
21
  end
24
22
 
25
- def videos
26
- outline.videos
23
+ def assessment
24
+ view_context.render partial: 'woople-theme/outline_assessment', locals: { outline: self }
27
25
  end
28
26
 
27
+ def render_assessment
28
+ css_class = "assessment"
29
+ css_class << " disabled" if assessment_disabled?
30
+
31
+ yield(css_class) if has_assessment?
32
+ end
33
+
34
+ private
35
+
29
36
  def assessment_disabled?
30
37
  outline.respond_to?(:assessment_enabled) && !outline.assessment_enabled
31
38
  end
@@ -3,4 +3,30 @@ require_relative 'content_image'
3
3
 
4
4
  class PageHeaderPresenter < SimpleDelegator
5
5
  include ContentImage
6
+
7
+ def title
8
+ name || header.title
9
+ end
10
+
11
+ def image_class
12
+ 'page-header-with-image' if has_image?
13
+ end
14
+
15
+ private
16
+
17
+ def has_image?
18
+ header.respond_to?(:image)
19
+ end
20
+
21
+ def name
22
+ if header.respond_to?(:name)
23
+ header.name
24
+ else
25
+ nil
26
+ end
27
+ end
28
+
29
+ def header
30
+ __getobj__
31
+ end
6
32
  end
@@ -1,20 +1,3 @@
1
1
  <div class="outline">
2
- <h2><%= outline.name %></h2>
3
- <table class="table">
4
- <thead>
5
- <tr>
6
- <th></th>
7
- <th class="string"><%=t 'woople_theme.outline.name' %></th>
8
- <th class="count"><%=t 'woople_theme.outline.duration' %></th>
9
- </tr>
10
- </thead>
11
- <tbody>
12
- <%= outline.render_downloads(self) %>
13
- <%= outline.render_videos(self) %>
14
- </tbody>
15
- </table>
16
-
17
- <% outline.assessment do |assessment_class| %>
18
- <p class="<%= assessment_class %>"><a><%=t 'woople_theme.outline.start_assessment' %></a></p>
19
- <% end %>
2
+ <% block.call(outline) %>
20
3
  </div>
@@ -0,0 +1,3 @@
1
+ <% outline.render_assessment do |assessment_class| %>
2
+ <p class="<%= assessment_class %>"><a><%=t 'woople_theme.outline.start_assessment' %></a></p>
3
+ <% end %>
@@ -0,0 +1,10 @@
1
+ <table class="table">
2
+ <thead>
3
+ <tr>
4
+ <th colspan='3'></th>
5
+ </tr>
6
+ </thead>
7
+ <tbody>
8
+ <%= render partial: 'woople-theme/outline_download', collection: downloads %>
9
+ </tbody>
10
+ </table>
@@ -0,0 +1,12 @@
1
+ <table class="table">
2
+ <thead>
3
+ <tr>
4
+ <th></th>
5
+ <th class="string"><%=t 'woople_theme.outline.name' %></th>
6
+ <th class="count"><%=t 'woople_theme.outline.duration' %></th>
7
+ </tr>
8
+ </thead>
9
+ <tbody>
10
+ <%= render partial: 'woople-theme/outline_video', collection: videos %>
11
+ </tbody>
12
+ </table>
@@ -1,4 +1,4 @@
1
- <header class="page-header">
1
+ <header class="page-header <%= header.image_class %>">
2
2
  <% header.image do |url| %>
3
3
  <%= image_tag(url) %>
4
4
  <% end %>
@@ -1,3 +1,3 @@
1
1
  module WoopleTheme
2
- VERSION = "0.0.6"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: woople-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-04-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70294236106240 !ruby/object:Gem::Requirement
16
+ requirement: &70259944353220 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.2.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70294236106240
24
+ version_requirements: *70259944353220
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: less-rails-bootstrap
27
- requirement: &70294236105820 !ruby/object:Gem::Requirement
27
+ requirement: &70259944352800 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70294236105820
35
+ version_requirements: *70259944352800
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &70294236105360 !ruby/object:Gem::Requirement
38
+ requirement: &70259944352340 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70294236105360
46
+ version_requirements: *70259944352340
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: sqlite3
49
- requirement: &70294236104940 !ruby/object:Gem::Requirement
49
+ requirement: &70259944351920 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70294236104940
57
+ version_requirements: *70259944351920
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec-rails
60
- requirement: &70294236104440 !ruby/object:Gem::Requirement
60
+ requirement: &70259944351420 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 2.9.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70294236104440
68
+ version_requirements: *70259944351420
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: capybara
71
- requirement: &70294236104020 !ruby/object:Gem::Requirement
71
+ requirement: &70259944351000 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70294236104020
79
+ version_requirements: *70259944351000
80
80
  description: All Front-End all the Time
81
81
  email:
82
82
  - developers@bigbangtechnology.com
@@ -149,8 +149,11 @@ files:
149
149
  - app/views/woople-theme/_content_item_header.html.erb
150
150
  - app/views/woople-theme/_menu.html.erb
151
151
  - app/views/woople-theme/_outline.html.erb
152
+ - app/views/woople-theme/_outline_assessment.html.erb
152
153
  - app/views/woople-theme/_outline_download.html.erb
154
+ - app/views/woople-theme/_outline_downloads.html.erb
153
155
  - app/views/woople-theme/_outline_video.html.erb
156
+ - app/views/woople-theme/_outline_videos.html.erb
154
157
  - app/views/woople-theme/_page_header.html.erb
155
158
  - app/views/woople-theme/_profile.html.erb
156
159
  - app/views/woople-theme/_video_modal.html.erb
@@ -181,7 +184,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
181
184
  version: '0'
182
185
  segments:
183
186
  - 0
184
- hash: -2123981156988969400
187
+ hash: -2849809229566666187
185
188
  required_rubygems_version: !ruby/object:Gem::Requirement
186
189
  none: false
187
190
  requirements:
@@ -190,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
193
  version: '0'
191
194
  segments:
192
195
  - 0
193
- hash: -2123981156988969400
196
+ hash: -2849809229566666187
194
197
  requirements: []
195
198
  rubyforge_project:
196
199
  rubygems_version: 1.8.10