parent
604ffb445a
commit
b026a2afe8
9 changed files with 9 additions and 383 deletions
|
|
@ -20,6 +20,7 @@
|
|||
* Gracefully handle XML parse errors within federation [#5991](https://github.com/diaspora/diaspora/pull/5991)
|
||||
* Remove zip-zip workaround gem [#6001](https://github.com/diaspora/diaspora/pull/6001)
|
||||
* Cleanup and reorganize image assets [#6004](https://github.com/diaspora/diaspora/pull/6004)
|
||||
* Replace vendored assets for facebox by gem [#6005](https://github.com/diaspora/diaspora/pull/6005)
|
||||
|
||||
## Bug fixes
|
||||
* Disable auto follow back on aspect deletion [#5846](https://github.com/diaspora/diaspora/pull/5846)
|
||||
|
|
|
|||
2
Gemfile
2
Gemfile
|
|
@ -112,6 +112,8 @@ source "https://rails-assets.org" do
|
|||
gem "rails-assets-jakobmattsson--jquery-elastic", "1.6.11"
|
||||
end
|
||||
|
||||
gem "facebox-rails", "0.2.0"
|
||||
|
||||
# Localization
|
||||
|
||||
gem "http_accept_language", "2.0.5"
|
||||
|
|
|
|||
|
|
@ -182,6 +182,9 @@ GEM
|
|||
sigar (~> 0.7.2)
|
||||
state_machine
|
||||
thor
|
||||
facebox-rails (0.2.0)
|
||||
railties (>= 3.0, < 5.0)
|
||||
thor (>= 0.14, < 2.0)
|
||||
factory_girl (4.5.0)
|
||||
activesupport (>= 3.0.0)
|
||||
factory_girl_rails (4.5.0)
|
||||
|
|
@ -746,6 +749,7 @@ DEPENDENCIES
|
|||
diaspora-vines (~> 0.1.27)
|
||||
entypo-rails (= 2.2.3)
|
||||
eye (= 0.7.pre)
|
||||
facebox-rails (= 0.2.0)
|
||||
factory_girl_rails (= 4.5.0)
|
||||
faraday (= 0.9.1)
|
||||
faraday-cookie_jar (= 0.0.6)
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 168 B |
Binary file not shown.
|
Before Width: | Height: | Size: 2.7 KiB |
|
|
@ -12,7 +12,7 @@
|
|||
//= require jquery.charcount
|
||||
//= require jquery-placeholder
|
||||
//= require rails-timeago
|
||||
//= require facebox
|
||||
//= require jquery.facebox
|
||||
//= require browser_detection
|
||||
//= require jquery.events.input
|
||||
//= require jakobmattsson-jquery-elastic
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
|
||||
/* conversations */
|
||||
@import 'conversations';
|
||||
@import 'vendor/facebox';
|
||||
@import 'jquery.facebox';
|
||||
@import 'facebox';
|
||||
|
||||
/* publisher */
|
||||
|
|
|
|||
72
app/assets/stylesheets/vendor/facebox.css
vendored
72
app/assets/stylesheets/vendor/facebox.css
vendored
|
|
@ -1,72 +0,0 @@
|
|||
#facebox {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 100;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#facebox .popup{
|
||||
position:relative;
|
||||
border:1px solid #999;
|
||||
border-radius:2px;
|
||||
box-shadow:0 0 10px rgba(0,0,0,0.8), 0 2px 200px rgba(255,255,255,0.2);;
|
||||
}
|
||||
|
||||
#facebox .content {
|
||||
display:table;
|
||||
width: 370px;
|
||||
padding: 20px;
|
||||
background: #fff;
|
||||
border-radius:2px;
|
||||
}
|
||||
|
||||
#facebox .content > p:first-child{
|
||||
margin-top:0;
|
||||
}
|
||||
#facebox .content > p:last-child{
|
||||
margin-bottom:0;
|
||||
}
|
||||
|
||||
#facebox .close{
|
||||
position:absolute;
|
||||
top:15px;
|
||||
right:20px;
|
||||
padding:2px;
|
||||
}
|
||||
#facebox .close img{
|
||||
opacity:0.3;
|
||||
}
|
||||
#facebox .close:hover img{
|
||||
opacity:1.0;
|
||||
}
|
||||
|
||||
#facebox .loading {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#facebox .image {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#facebox img {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#facebox_overlay {
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
height:100%;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.facebox_hide {
|
||||
z-index:-100;
|
||||
}
|
||||
|
||||
.facebox_overlayBG {
|
||||
background-color: #000;
|
||||
z-index: 99;
|
||||
}
|
||||
309
vendor/assets/javascripts/facebox.js
vendored
309
vendor/assets/javascripts/facebox.js
vendored
|
|
@ -1,309 +0,0 @@
|
|||
/*
|
||||
* Facebox (for jQuery)
|
||||
* version: 1.3
|
||||
* @requires jQuery v1.2 or later
|
||||
* @homepage https://github.com/defunkt/facebox
|
||||
*
|
||||
* Licensed under the MIT:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* Copyright Forever Chris Wanstrath, Kyle Neath
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* jQuery(document).ready(function() {
|
||||
* jQuery('a[rel*=facebox]').facebox()
|
||||
* })
|
||||
*
|
||||
* <a href="#terms" rel="facebox">Terms</a>
|
||||
* Loads the #terms div in the box
|
||||
*
|
||||
* <a href="terms.html" rel="facebox">Terms</a>
|
||||
* Loads the terms.html page in the box
|
||||
*
|
||||
* <a href="terms.png" rel="facebox">Terms</a>
|
||||
* Loads the terms.png image in the box
|
||||
*
|
||||
*
|
||||
* You can also use it programmatically:
|
||||
*
|
||||
* jQuery.facebox('some html')
|
||||
* jQuery.facebox('some html', 'my-groovy-style')
|
||||
*
|
||||
* The above will open a facebox with "some html" as the content.
|
||||
*
|
||||
* jQuery.facebox(function($) {
|
||||
* $.get('blah.html', function(data) { $.facebox(data) })
|
||||
* })
|
||||
*
|
||||
* The above will show a loading screen before the passed function is called,
|
||||
* allowing for a better ajaxy experience.
|
||||
*
|
||||
* The facebox function can also display an ajax page, an image, or the contents of a div:
|
||||
*
|
||||
* jQuery.facebox({ ajax: 'remote.html' })
|
||||
* jQuery.facebox({ ajax: 'remote.html' }, 'my-groovy-style')
|
||||
* jQuery.facebox({ image: 'stairs.jpg' })
|
||||
* jQuery.facebox({ image: 'stairs.jpg' }, 'my-groovy-style')
|
||||
* jQuery.facebox({ div: '#box' })
|
||||
* jQuery.facebox({ div: '#box' }, 'my-groovy-style')
|
||||
*
|
||||
* Want to close the facebox? Trigger the 'close.facebox' document event:
|
||||
*
|
||||
* jQuery(document).trigger('close.facebox')
|
||||
*
|
||||
* Facebox also has a bunch of other hooks:
|
||||
*
|
||||
* loading.facebox
|
||||
* beforeReveal.facebox
|
||||
* reveal.facebox (aliased as 'afterReveal.facebox')
|
||||
* init.facebox
|
||||
* afterClose.facebox
|
||||
*
|
||||
* Simply bind a function to any of these hooks:
|
||||
*
|
||||
* $(document).bind('reveal.facebox', function() { ...stuff to do after the facebox and contents are revealed... })
|
||||
*
|
||||
*/
|
||||
(function($) {
|
||||
$.facebox = function(data, klass) {
|
||||
$.facebox.loading()
|
||||
|
||||
if (data.ajax) fillFaceboxFromAjax(data.ajax, klass)
|
||||
else if (data.image) fillFaceboxFromImage(data.image, klass)
|
||||
else if (data.div) fillFaceboxFromHref(data.div, klass)
|
||||
else if ($.isFunction(data)) data.call($)
|
||||
else $.facebox.reveal(data, klass)
|
||||
}
|
||||
|
||||
/*
|
||||
* Public, $.facebox methods
|
||||
*/
|
||||
|
||||
$.extend($.facebox, {
|
||||
settings: {
|
||||
opacity : 0.2,
|
||||
overlay : true,
|
||||
loadingImage : '/facebox/loading.gif',
|
||||
closeImage : '/facebox/closelabel.png',
|
||||
imageTypes : [ 'png', 'jpg', 'jpeg', 'gif' ],
|
||||
faceboxHtml : '\
|
||||
<div id="facebox" style="display:none;"> \
|
||||
<div class="popup"> \
|
||||
<div class="content"> \
|
||||
</div> \
|
||||
<a href="#" class="close"></a> \
|
||||
</div> \
|
||||
</div>'
|
||||
},
|
||||
|
||||
loading: function() {
|
||||
init()
|
||||
if ($('#facebox .loading').length == 1) return true
|
||||
showOverlay()
|
||||
|
||||
$('#facebox .content').empty().
|
||||
append('<div class="loading"><img src="'+$.facebox.settings.loadingImage+'"/></div>')
|
||||
|
||||
$('#facebox').show().css({
|
||||
top: getPageScroll()[1] + (getPageHeight() / 10),
|
||||
left: $(window).width() / 2 - ($('#facebox .popup').width() / 2)
|
||||
})
|
||||
|
||||
$(document).bind('keydown.facebox', function(e) {
|
||||
if (e.keyCode == 27) $.facebox.close()
|
||||
return true
|
||||
})
|
||||
$(document).trigger('loading.facebox')
|
||||
},
|
||||
|
||||
reveal: function(data, klass) {
|
||||
$(document).trigger('beforeReveal.facebox')
|
||||
if (klass) $('#facebox .content').addClass(klass)
|
||||
$('#facebox .content').empty().append(data)
|
||||
$('#facebox .popup').children().fadeIn('normal')
|
||||
$('#facebox').css('left', $(window).width() / 2 - ($('#facebox .popup').width() / 2))
|
||||
$(document).trigger('reveal.facebox').trigger('afterReveal.facebox')
|
||||
},
|
||||
|
||||
close: function() {
|
||||
$(document).trigger('close.facebox')
|
||||
return false
|
||||
}
|
||||
})
|
||||
|
||||
/*
|
||||
* Public, $.fn methods
|
||||
*/
|
||||
|
||||
$.fn.facebox = function(settings) {
|
||||
if ($(this).length == 0) return
|
||||
|
||||
init(settings)
|
||||
|
||||
function clickHandler() {
|
||||
$.facebox.loading(true)
|
||||
|
||||
// support for rel="facebox.inline_popup" syntax, to add a class
|
||||
// also supports deprecated "facebox[.inline_popup]" syntax
|
||||
var klass = this.rel.match(/facebox\[?\.(\w+)\]?/)
|
||||
if (klass) klass = klass[1]
|
||||
|
||||
fillFaceboxFromHref(this.href, klass)
|
||||
return false
|
||||
}
|
||||
|
||||
return this.bind('click.facebox', clickHandler)
|
||||
}
|
||||
|
||||
/*
|
||||
* Private methods
|
||||
*/
|
||||
|
||||
// called one time to setup facebox on this page
|
||||
function init(settings) {
|
||||
if ($.facebox.settings.inited) return true
|
||||
else $.facebox.settings.inited = true
|
||||
|
||||
$(document).trigger('init.facebox')
|
||||
makeCompatible()
|
||||
|
||||
var imageTypes = $.facebox.settings.imageTypes.join('|')
|
||||
$.facebox.settings.imageTypesRegexp = new RegExp('\\.(' + imageTypes + ')(\\?.*)?$', 'i')
|
||||
|
||||
if (settings) $.extend($.facebox.settings, settings)
|
||||
$('body').append($.facebox.settings.faceboxHtml)
|
||||
|
||||
var preload = [ new Image(), new Image() ]
|
||||
preload[0].src = $.facebox.settings.closeImage
|
||||
preload[1].src = $.facebox.settings.loadingImage
|
||||
|
||||
$('#facebox').find('.b:first, .bl').each(function() {
|
||||
preload.push(new Image())
|
||||
preload.slice(-1).src = $(this).css('background-image').replace(/url\((.+)\)/, '$1')
|
||||
})
|
||||
|
||||
$('#facebox .close')
|
||||
.click($.facebox.close)
|
||||
.append('<img src="'
|
||||
+ $.facebox.settings.closeImage
|
||||
+ '" class="close_image" title="close">')
|
||||
}
|
||||
|
||||
// getPageScroll() by quirksmode.com
|
||||
function getPageScroll() {
|
||||
var xScroll, yScroll;
|
||||
if (self.pageYOffset) {
|
||||
yScroll = self.pageYOffset;
|
||||
xScroll = self.pageXOffset;
|
||||
} else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
|
||||
yScroll = document.documentElement.scrollTop;
|
||||
xScroll = document.documentElement.scrollLeft;
|
||||
} else if (document.body) {// all other Explorers
|
||||
yScroll = document.body.scrollTop;
|
||||
xScroll = document.body.scrollLeft;
|
||||
}
|
||||
return new Array(xScroll,yScroll)
|
||||
}
|
||||
|
||||
// Adapted from getPageSize() by quirksmode.com
|
||||
function getPageHeight() {
|
||||
var windowHeight
|
||||
if (self.innerHeight) { // all except Explorer
|
||||
windowHeight = self.innerHeight;
|
||||
} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
|
||||
windowHeight = document.documentElement.clientHeight;
|
||||
} else if (document.body) { // other Explorers
|
||||
windowHeight = document.body.clientHeight;
|
||||
}
|
||||
return windowHeight
|
||||
}
|
||||
|
||||
// Backwards compatibility
|
||||
function makeCompatible() {
|
||||
var $s = $.facebox.settings
|
||||
|
||||
$s.loadingImage = $s.loading_image || $s.loadingImage
|
||||
$s.closeImage = $s.close_image || $s.closeImage
|
||||
$s.imageTypes = $s.image_types || $s.imageTypes
|
||||
$s.faceboxHtml = $s.facebox_html || $s.faceboxHtml
|
||||
}
|
||||
|
||||
// Figures out what you want to display and displays it
|
||||
// formats are:
|
||||
// div: #id
|
||||
// image: blah.extension
|
||||
// ajax: anything else
|
||||
function fillFaceboxFromHref(href, klass) {
|
||||
// div
|
||||
if (href.match(/#/)) {
|
||||
var url = window.location.href.split('#')[0]
|
||||
var target = href.replace(url,'')
|
||||
if (target == '#') return
|
||||
$.facebox.reveal($(target).html(), klass)
|
||||
|
||||
// image
|
||||
} else if (href.match($.facebox.settings.imageTypesRegexp)) {
|
||||
fillFaceboxFromImage(href, klass)
|
||||
// ajax
|
||||
} else {
|
||||
fillFaceboxFromAjax(href, klass)
|
||||
}
|
||||
}
|
||||
|
||||
function fillFaceboxFromImage(href, klass) {
|
||||
var image = new Image()
|
||||
image.onload = function() {
|
||||
$.facebox.reveal('<div class="image"><img src="' + image.src + '" /></div>', klass)
|
||||
}
|
||||
image.src = href
|
||||
}
|
||||
|
||||
function fillFaceboxFromAjax(href, klass) {
|
||||
$.get(href, function(data) { $.facebox.reveal(data, klass) })
|
||||
}
|
||||
|
||||
function skipOverlay() {
|
||||
return $.facebox.settings.overlay == false || $.facebox.settings.opacity === null
|
||||
}
|
||||
|
||||
function showOverlay() {
|
||||
if (skipOverlay()) return
|
||||
|
||||
if ($('#facebox_overlay').length == 0)
|
||||
$("body").append('<div id="facebox_overlay" class="facebox_hide"></div>')
|
||||
|
||||
$('#facebox_overlay').hide().addClass("facebox_overlayBG")
|
||||
.css('opacity', $.facebox.settings.opacity)
|
||||
.click(function() { $(document).trigger('close.facebox') })
|
||||
.fadeIn(200)
|
||||
return false
|
||||
}
|
||||
|
||||
function hideOverlay() {
|
||||
if (skipOverlay()) return
|
||||
|
||||
$('#facebox_overlay').fadeOut(200, function(){
|
||||
$("#facebox_overlay").removeClass("facebox_overlayBG")
|
||||
$("#facebox_overlay").addClass("facebox_hide")
|
||||
$("#facebox_overlay").remove()
|
||||
})
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
/*
|
||||
* Bindings
|
||||
*/
|
||||
|
||||
$(document).bind('close.facebox', function() {
|
||||
$(document).unbind('keydown.facebox')
|
||||
$('#facebox').fadeOut(function() {
|
||||
$('#facebox .content').removeClass().addClass('content')
|
||||
$('#facebox .loading').remove()
|
||||
$(document).trigger('afterClose.facebox')
|
||||
})
|
||||
hideOverlay()
|
||||
})
|
||||
|
||||
})(jQuery);
|
||||
Loading…
Reference in a new issue