showoff 0.1.0 → 0.1.1

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