showoff 0.1.0 → 0.1.1

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.
data/public/js/onepage.js CHANGED
@@ -1,10 +1,5 @@
1
1
  function setupOnePage() {
2
2
  sh_highlightDocument('/js/sh_lang/', '.min.js')
3
3
 
4
- $(".preso > .slide").each(function(s, elem) {
5
- var slide_height = $(elem).height()
6
- var mar_top = (0.5 * parseFloat($(elem).parent().height())) - (0.5 * parseFloat(slide_height))
7
- $(elem).css('margin-top', mar_top)
8
- })
9
-
4
+ centerSlides($("#slides > .slide"))
10
5
  }
data/public/js/showoff.js CHANGED
@@ -4,6 +4,7 @@ var preso_started = false
4
4
  var slidenum = 0
5
5
  var slideTotal = 0
6
6
  var slides
7
+ var currentSlide
7
8
  var totalslides = 0
8
9
  var slidesLoaded = false
9
10
  var incrSteps = 0
@@ -31,20 +32,56 @@ function setupPreso() {
31
32
  }
32
33
 
33
34
  function loadSlides() {
34
- $('#slides').hide();
35
+ //load slides offscreen, wait for images and then initialize
35
36
  $("#slides").load("/slides", false, function(){
36
- slides = $('#slides > .slide')
37
- slideTotal = slides.size()
38
- setupMenu()
39
- if (slidesLoaded) {
40
- showSlide()
41
- alert('slides loaded')
42
- } else {
43
- showFirstSlide()
44
- slidesLoaded = true
45
- }
46
- sh_highlightDocument('/js/sh_lang/', '.min.js')
47
- })
37
+ $("#slides img").batchImageLoad({
38
+ loadingCompleteCallback: initializePresentation
39
+ })
40
+ })
41
+ }
42
+
43
+ function initializePresentation() {
44
+ //center slides offscreen
45
+ centerSlides($('#slides > .slide'))
46
+
47
+ //copy into presentation area
48
+ $("#preso").empty()
49
+ $('#slides > .slide').appendTo($("#preso"))
50
+
51
+ //populate vars
52
+ slides = $('#preso > .slide')
53
+ slideTotal = slides.size()
54
+
55
+ //setup manual jquery cycle
56
+ $('#preso').cycle({
57
+ timeout: 0
58
+ })
59
+
60
+ setupMenu()
61
+ if (slidesLoaded) {
62
+ showSlide()
63
+ alert('slides loaded')
64
+ } else {
65
+ showFirstSlide()
66
+ slidesLoaded = true
67
+ }
68
+ sh_highlightDocument('/js/sh_lang/', '.min.js')
69
+ }
70
+
71
+ function centerSlides(slides) {
72
+ slides.each(function(s, slide) {
73
+ centerSlide(slide)
74
+ })
75
+ }
76
+
77
+ function centerSlide(slide) {
78
+ var slide_content = $(slide).children(".content").first()
79
+ var height = slide_content.height()
80
+ var mar_top = (0.5 * parseFloat($(slide).height())) - (0.5 * parseFloat(height))
81
+ if (mar_top < 0) {
82
+ mar_top = 0
83
+ }
84
+ slide_content.css('margin-top', mar_top)
48
85
  }
49
86
 
50
87
  function setupMenu() {
@@ -52,16 +89,17 @@ function setupMenu() {
52
89
 
53
90
  var currSlide = 0
54
91
  var menu = new ListMenu()
55
-
92
+
56
93
  slides.each(function(s, elem) {
57
- shortTxt = $(elem).text().substr(0, 20)
58
- path = $(elem).attr('ref').split('/')
94
+ content = $(elem).children(".content")
95
+ shortTxt = $(content).text().substr(0, 20)
96
+ path = $(content).attr('ref').split('/')
59
97
  currSlide += 1
60
98
  menu.addItem(path, shortTxt, currSlide)
61
99
  })
62
100
 
63
101
  $('#navigation').html(menu.getList())
64
- $('#navmenu').menu({
102
+ $('#navmenu').menu({
65
103
  content: $('#navigation').html(),
66
104
  flyOut: true
67
105
  });
@@ -91,13 +129,12 @@ function showSlide(back_step) {
91
129
  return
92
130
  }
93
131
 
94
- // TODO: calculate and set the height margins on slide load, not here
95
-
96
- $("#preso").html(slides.eq(slidenum).clone())
97
- curr_slide = $("#preso > .slide")
98
- var slide_height = curr_slide.height()
99
- var mar_top = (0.5 * parseFloat($("#preso").height())) - (0.5 * parseFloat(slide_height))
100
- $("#preso > .slide").css('margin-top', mar_top)
132
+ currentSlide = slides.eq(slidenum)
133
+ var transition = currentSlide.attr('data-transition')
134
+ if (back_step) {
135
+ transition = 'none'
136
+ }
137
+ $('#preso').cycle(slidenum, transition)
101
138
 
102
139
  percent = getSlidePercent()
103
140
  $("#slideInfo").text((slidenum + 1) + '/' + slideTotal + ' - ' + percent + '%')
@@ -123,11 +160,11 @@ function determineIncremental()
123
160
  {
124
161
  incrCurr = 0
125
162
  incrCode = false
126
- incrElem = $("#preso > .incremental > ul > li")
163
+ incrElem = currentSlide.find(".incremental > ul > li")
127
164
  incrSteps = incrElem.size()
128
165
  if(incrSteps == 0) {
129
166
  // also look for commandline
130
- incrElem = $("#preso > .incremental > pre > code > code")
167
+ incrElem = currentSlide.find(".incremental > pre > code > code")
131
168
  incrSteps = incrElem.size()
132
169
  incrCode = true
133
170
  }
@@ -158,7 +195,7 @@ function doDebugStuff()
158
195
  $('#debugInfo').show()
159
196
  debug('debug mode on')
160
197
  } else {
161
- $('#debugInfo').hide()
198
+ $('#debugInfo').hide()
162
199
  }
163
200
  }
164
201
 
@@ -255,7 +292,7 @@ function ListMenu(s)
255
292
  }
256
293
  newMenu.append(domItem)
257
294
  }
258
- return newMenu
295
+ return newMenu
259
296
  }
260
297
  }
261
298
 
@@ -267,7 +304,7 @@ function ListMenuItem(t, s)
267
304
  }
268
305
 
269
306
  var removeResults = function() {
270
- $('.results').remove();
307
+ $('.results').remove();
271
308
  };
272
309
 
273
310
  var print = function(text) {
data/views/index.erb CHANGED
@@ -7,9 +7,12 @@
7
7
 
8
8
  <title>Presentation</title>
9
9
 
10
+ <link rel="stylesheet" href="css/reset.css" type="text/css"/>
10
11
  <link rel="stylesheet" href="css/showoff.css" type="text/css"/>
11
12
 
12
13
  <script type="text/javascript" src="/js/jquery-1.4.min.js"></script>
14
+ <script type="text/javascript" src="/js/jquery.cycle.all.js"></script>
15
+ <script type="text/javascript" src="/js/jquery.batchImageLoad.js"></script>
13
16
  <script type="text/javascript" src="/js/jquery-print.js"></script>
14
17
  <script type="text/javascript" src="/js/fg.menu.js"></script>
15
18
  <script type="text/javascript" src="/js/showoff.js"></script>
@@ -30,8 +33,8 @@
30
33
  <% end %>
31
34
 
32
35
  <script type="text/javascript">
33
- $(function(){
34
- setupPreso()
36
+ $(document).ready(function() {
37
+ setupPreso();
35
38
  });
36
39
  </script>
37
40
  </head>
@@ -59,7 +62,7 @@
59
62
  <span id="debugInfo"></span>
60
63
  </div>
61
64
 
62
- <div id="slides"></div>
65
+ <div id="slides" class="offscreen"></div>
63
66
 
64
67
  </body>
65
68
  </html>
data/views/onepage.erb CHANGED
@@ -12,7 +12,7 @@
12
12
  <% else %>
13
13
  <%= inline_css(['onepage.css'], 'public/css') %>
14
14
  <% end %>
15
- <%= inline_css(['showoff.css', 'theme/ui.all.css', 'sh_style.css'], 'public/css') %>
15
+ <%= inline_css(['reset.css', 'showoff.css', 'theme/ui.all.css', 'sh_style.css'], 'public/css') %>
16
16
  <% css_files.each do |css_file| %>
17
17
  <%= inline_css(css_file) %>
18
18
  <% end %>
@@ -20,7 +20,7 @@
20
20
  <% if !@no_js %>
21
21
  <%= inline_js(['jquery-1.4.min.js', 'jquery-print.js', 'showoff.js', 'onepage.js', 'sh_main.min.js'], 'public/js') %>
22
22
  <script type="text/javascript">
23
- $(function(){
23
+ $(document).ready(function() {
24
24
  setupOnePage()
25
25
  });
26
26
  </script>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: showoff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Chacon
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-26 00:00:00 -05:00
12
+ date: 2010-03-15 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -73,6 +73,7 @@ files:
73
73
  - public/css/fg.menu.css
74
74
  - public/css/onepage.css
75
75
  - public/css/pdf.css
76
+ - public/css/reset.css
76
77
  - public/css/sh_style.css
77
78
  - public/css/showoff.css
78
79
  - public/css/theme/images/ui-bg_diagonals-small_100_f0efea_40x40.png
@@ -104,6 +105,8 @@ files:
104
105
  - public/js/fg.menu.js
105
106
  - public/js/jquery-1.4.min.js
106
107
  - public/js/jquery-print.js
108
+ - public/js/jquery.batchImageLoad.js
109
+ - public/js/jquery.cycle.all.js
107
110
  - public/js/jTypeWriter.js
108
111
  - public/js/onepage.js
109
112
  - public/js/sh_lang/sh_bison.min.js
@@ -147,7 +150,7 @@ files:
147
150
  - public/js/sh_lang/sh_xorg.min.js
148
151
  - public/js/sh_main.min.js
149
152
  - public/js/showoff.js
150
- has_rdoc: true
153
+ has_rdoc: false
151
154
  homepage: http://github.com/schacon/showoff
152
155
  licenses: []
153
156