Skip to content

Commit d9531d9

Browse files
committed
basic lightbox support
1 parent 14c0b96 commit d9531d9

15 files changed

Lines changed: 191 additions & 44 deletions

File tree

app/assets/images/border1.png

1.03 KB
Loading

app/assets/images/border2.png

170 Bytes
Loading

app/assets/images/loading.gif

9.21 KB
Loading

app/assets/javascripts/discourse.js.coffee

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ window.Discourse = Ember.Application.createWithMixins
134134
return if href is '#'
135135
return if $currentTarget.attr('target')
136136
return if $currentTarget.data('auto-route')
137+
return if $currentTarget.hasClass('lightbox')
137138
return if href.indexOf("mailto:") is 0
138139

139140
if href.match(/^http[s]?:\/\//i) && !href.match new RegExp("^http:\\/\\/" + window.location.hostname,"i")

app/assets/javascripts/discourse/components/click_track.js.coffee

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ window.Discourse.ClickTrack =
66

77
$a = $(e.currentTarget)
88

9+
return if $a.hasClass('lightbox')
10+
911
e.preventDefault()
1012

1113
# We don't track clicks on quote back buttons
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Helper object for light boxes. Uses highlight.js which is loaded
2+
# on demand.
3+
window.Discourse.Lightbox =
4+
5+
apply: ($elem) ->
6+
$('a.lightbox', $elem).each (i, e) =>
7+
$LAB.script("/javascripts/jquery.colorbox-min.js").wait ->
8+
$(e).colorbox()

app/assets/javascripts/discourse/views/post_view.js.coffee

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ window.Discourse.PostView = Ember.View.extend
212212

213213
# Add syntax highlighting
214214
Discourse.SyntaxHighlighting.apply($post)
215+
Discourse.Lightbox.apply($post)
215216

216217
# If we're scrolling upwards, adjust the scroll position accordingly
217218
if scrollTo = @get('post.scrollTo')
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/*
2+
ColorBox Core Style:
3+
The following CSS is consistent between example themes and should not be altered.
4+
*/
5+
#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
6+
#cboxOverlay{position:fixed; width:100%; height:100%;}
7+
#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
8+
#cboxContent{position:relative;}
9+
#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
10+
#cboxTitle{margin:0;}
11+
#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
12+
#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
13+
.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none;}
14+
.cboxIframe{width:100%; height:100%; display:block; border:0;}
15+
#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
16+
17+
/*
18+
User Style:
19+
Change the following styles to modify the appearance of ColorBox. They are
20+
ordered & tabbed in a way that represents the nesting of the generated HTML.
21+
*/
22+
#cboxOverlay{background:#fff;}
23+
#colorbox{outline:0;}
24+
#cboxTopLeft{width:25px; height:25px; background:image-url("images/border1.png") no-repeat 0 0;}
25+
#cboxTopCenter{height:25px; background:image-url("images/border1.png") repeat-x 0 -50px;}
26+
#cboxTopRight{width:25px; height:25px; background:image-url("images/border1.png") no-repeat -25px 0;}
27+
#cboxBottomLeft{width:25px; height:25px; background:image-url("images/border1.png") no-repeat 0 -25px;}
28+
#cboxBottomCenter{height:25px; background:image-url("images/border1.png") repeat-x 0 -75px;}
29+
#cboxBottomRight{width:25px; height:25px; background:image-url("images/border1.png") no-repeat -25px -25px;}
30+
#cboxMiddleLeft{width:25px; background:image-url("images/border2.png") repeat-y 0 0;}
31+
#cboxMiddleRight{width:25px; background:image-url("images/border2.png") repeat-y -25px 0;}
32+
#cboxContent{background:#fff; overflow:hidden;}
33+
.cboxIframe{background:#fff;}
34+
#cboxError{padding:50px; border:1px solid #ccc;}
35+
#cboxLoadedContent{margin-bottom:20px;}
36+
#cboxTitle{position:absolute; bottom:0px; left:0; text-align:center; width:100%; color:#999;}
37+
#cboxCurrent{position:absolute; bottom:0px; left:100px; color:#999;}
38+
#cboxLoadingOverlay{background:#fff image-url("images/loading.gif") no-repeat 5px 5px;}
39+
40+
/* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
41+
#cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
42+
43+
/* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
44+
#cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
45+
46+
#cboxSlideshow{position:absolute; bottom:0px; right:42px; color:#444;}
47+
#cboxPrevious{position:absolute; bottom:0px; left:0; color:#444;}
48+
#cboxNext{position:absolute; bottom:0px; left:63px; color:#444;}
49+
#cboxClose{position:absolute; bottom:0; right:0; display:block; color:#444;}
50+

app/models/post.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,10 @@ module HiddenReason
1414
FLAG_THRESHOLD_REACHED_AGAIN = 2
1515
end
1616

17-
1817
versioned
19-
2018
rate_limit
21-
2219
acts_as_paranoid
20+
2321
after_recover :update_flagged_posts_count
2422
after_destroy :update_flagged_posts_count
2523

app/models/site_customization.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def self.lookup_style(key)
107107

108108
@lock.synchronize do
109109
style = self.where(key: key).first
110-
style.ensure_stylesheet_on_disk!
110+
style.ensure_stylesheet_on_disk! if style
111111
@cache[key] = style
112112
end
113113
end

0 commit comments

Comments
 (0)