Spade
Mini Shell
abstract.js000064400000000047151167475070006723 0ustar00window.EasyBlog =
abstractComponent();
dashboard/blogimage.js000064400000005701151167475070010777 0ustar00//
module: start
EasyBlog.module("dashboard/blogimage", function($) {
var module = this;
EasyBlog.require()
.library("image")
.done(function(){
// controller: start
EasyBlog.Controller("Dashboard.BlogImage",
{
defaultOptions: {
// Containers
"{placeHolder}" : ".blogImagePlaceHolder",
"{imageData}" : ".imageData",
"{image}" : ".image",
// Actions
"{selectBlogImageButton}": ".selectBlogImage",
"{removeBlogImageButton}": ".removeBlogImage"
}
},
// Instance properties
function(self) { return {
init: function() {
EasyBlog.dashboard.registerPlugin("blogImage", self);
var meta = $.trim(self.imageData().val());
if (meta) {
self.setImage($.evalJSON(meta));
}
},
"{selectBlogImageButton} click": function() {
// Optional: For the first param which is null now,
// by passing in the key of the previously selected blog image,
// it will activate the item on the browser.
EasyBlog.mediaManager.browse(null, "blogimage");
},
"{removeBlogImageButton} click" : function(el) {
self.removeImage();
el.blur();
},
removeImage: function() {
self.image().remove();
self.element.addClass("empty");
self.imageData().val("");
},
setImage: function(meta) {
if (!meta) return;
self.removeImage();
self.element
.addClass("loading");
clearTimeout(self.imageTimer);
// Clone the meta
var meta = $.extend({}, meta);
// Delete metadata
delete meta.data;
$.Image.get(meta.thumbnail.url)
.done(function(image) {
var resize = function(){
// Keep a copy of the placeholder's width & height
var placeHolder = self.placeHolder();
maxWidth = placeHolder.width();
maxHeight = placeHolder.height();
// Calculate size
var size = $.Image.resizeWithin(
image.data("width"),
image.data("height"),
maxWidth,
maxHeight
);
size.top = (maxHeight - size.height) / 2;
size.left = (maxWidth - size.width) / 2;
return size;
};
var size = resize();
var checkDimension = function() {
if (size.width===0 || size.height===0) {
self.imageTimer = setTimeout(function(){
size = resize();
checkDimension();
}, 1000);
} else {
image.css(size);
}
}
checkDimension();
// Resize and insert
image
.addClass("image")
.css(size)
.appendTo(self.placeHolder());
self.imageData().val($.toJSON(meta));
self.element.removeClass("empty");
})
.fail(function(){
self.element.addClass("empty");
})
.always(function(){
self.element.removeClass("loading");
});
}
}}
);
// controller: end
module.resolve();
});
// require: end
});
// module: end
dashboard/editor.js000064400000001166151167475070010340 0ustar00// module:
start
EasyBlog.module("dashboard/editor", function($){
var module = this;
EasyBlog.Controller(
"Dashboard.Editor",
{
defaultOptions: {
editorId: "write_content"
}
},
function(self) { return {
init: function() {
EasyBlog.dashboard.registerPlugin("editor", self);
},
insert: function(html) {
window.jInsertEditorText(html, self.options.editorId);
},
content: function(html) {
// TODO: Port eblog.editor to this new controller
if (html!==undefined) {
window.eblog.editor.setContent(html);
}
return window.eblog.editor.getContent();
}
}}
);
module.resolve();
});
dashboard/index.html000064400000000037151167475070010505
0ustar00<!DOCTYPE html><title></title>
dashboard/medialink.js000064400000001126151167475070011003 0ustar00//
module: start
EasyBlog.module("dashboard/medialink", function($) {
var module = this;
EasyBlog.Controller(
"Dashboard.MediaLink",
{
defaultOptions: {
"{menu}": ".ui-togmenu",
"{content}": ".ui-togbox"
}
},
function(self){ return {
init: function() {
},
"{menu} click": function(el) {
var hiding = el.hasClass("active");
self.menu().removeClass("active");
self.content().removeClass("active");
if (!hiding) {
el.addClass("active");
self.content("." +
el.attr("togbox")).addClass("active");
}
}
}}
);
module.resolve();
});
// module: end
dashboard.js000064400000000631151167475070007046 0ustar00// module: start
EasyBlog.module("dashboard", function($){
var module = this;
EasyBlog.Controller(
"Dashboard",
{
defaultOptions: function() {
}
},
function(self) { return {
init: function() {
EasyBlog.dashboard = self;
},
registerPlugin: function(pluginName, instance) {
if (self[pluginName]===undefined) {
self[pluginName] = instance;
}
}
}}
);
module.resolve();
});
eblog.js000064400000133207151167475070006215 0ustar00/**
* @package EasyBlog
* @copyright Copyright (C) 2010 Stack Ideas Private Limited. All rights
reserved.
* @license GNU/GPL, see LICENSE.php
*
* EasyBlog is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
EasyBlog.module('eblog', function($){
var module = this;
window.isSave = false;
var eblog = window.eblog = {
stream: {
load: function( startlimit ){
ejax.load( 'dashboard' , 'loadStream' , startlimit
);
}
},
login:{
toggle: function(){
$( '#easyblog-search-form'
).hide().siblings().removeClass('active');
$( '.user-options'
).hide().siblings().removeClass('active');
$( '#easyblog-login-form' ).toggle();
$( '#easyblog-login-form'
).siblings().toggleClass('active')
}
},
report:{
show: function( objId , objType ){
EasyBlog.ajax( 'site.views.reports.show' , {
id: objId,
type: objType
}, function( title , html ){
ejax.dialog( { 'title' : title , 'content' : html }
);
});
}
},
search:{
toggle: function(){
$( '.user-options'
).hide().siblings().removeClass('active');
$( '#easyblog-login-form'
).hide().siblings().removeClass('active');
$( '#easyblog-search-form' ).toggle();
$( '#easyblog-search-form' ).siblings().toggleClass(
'active' );
}
},
toolbar:{
dashboard: function(){
$( '#easyblog-search-form' ).hide();
$( '#easyblog-login-form' ).hide();
$( '.user-options' ).toggle();
$( '.user-options' ).siblings().toggleClass(
'active' );
}
},
images: {
initFancybox: function(element, options) {
if (window.eblog_lightbox_strip_extension &&
window.eblog_lightbox_title) {
$(element).each(function(){
var el = $(this),
title = el.attr("title") || "",
parts = title.split(".").reverse();
if (/jpg|png|gif|xcf|odg|bmp|jpeg/.test(parts[0].toLowerCase())) {
parts.splice(0, 1);
}
title = parts.reverse().join('.');
el.fancybox($.extend(true, {}, options, {title: title}));
});
} else {
$(element).fancybox(options);
}
},
initCaption: function(images) {
$(images).each(function(i, image){
var image = $(image).removeClass("easyblog-image-caption");
if (image.parents(".easyblog-image-caption-container").length
> 0) {
return;
}
var imageUrl = $(image).attr("src"),
hasFancybox =
image.parent().hasClass("easyblog-thumb-preview");
var hasSiblings = function(image) {
var image = image[0],
value = false;
$.each(image.parentNode.childNodes, function(i, node){
if (node!=image &&
!$(node).hasClass("easyblog-image-caption") &&
!$(node).hasClass("easyblog-thumb-preview")) {
value = true;
}
});
return value;
}
// Reinject src so we can trigger the load function
image
.one("load", function() {
var target = (hasFancybox) ? image.parent() : image;
// Decide where to float
var orientation = target.css("float");
if (orientation=="none") {
orientation = image.css("float");
}
if (orientation=="none") {
var props = (image.attr("style") ||
"").split(";"),
css = {};
$.each(props, function(i, prop){
var _prop = prop.split(":");
css[$.trim(_prop[0])] = $.trim(_prop[1]);
});
if (css["margin-left"]=="auto" &&
css["margin-right"]=="auto") {
orientation = "center";
}
}
// Use alignment
if (orientation=="none") {
var alignment = image.parent().attr("align");
if (alignment===undefined || alignment=="none") {
alignment = image.attr("align");
}
switch (alignment) {
case "left":
orientation = "left";
break;
case "right":
orientation = "right";
break;
case "center":
case "middle":
orientation = "center";
break;
}
}
if (!/none|center/.test(orientation)) {
orientation = ((hasSiblings(target)) ? "float" :
"align") + orientation;
}
// Prepare container
var container =
$("<span>")
.addClass("easyblog-image-caption-container orientation-"
+ orientation);
if (orientation=="center" ||
orientation=="alignright" || orientation=="alignleft")
{
var additionalWrapper = $("<span>");
target.wrap(additionalWrapper);
target.parent().wrap(container);
} else {
// Insert container
target.wrap(container);
}
// Prepare caption
var caption =
$("<span>").addClass("easyblog-image-caption");
caption
.width(target.outerWidth())
.html(image.attr("title"));
// Insert caption
target.after(caption);
})
.removeAttr("src")
.attr("src", imageUrl);
});
}
},
captcha: {
reload: function(){
var previousId = $( '#captcha-id' ).val();
ejax.load( 'entry' , 'reloadCaptcha' , previousId );
},
reloadImage: function( id , source ){
$( '#captcha-image' ).attr( 'src' , source );
$( '#captcha-id' ).val( id );
$( '#captcha-response' ).val( '' );
}
},
comments:{
edit: function( id ){
ejax.load( 'entry' , 'editComment' , id );
},
remove: function( id ){
ejax.load( 'entry' , 'deleteComment' , id );
}
},
checkbox: {
render: function(){
// Transform all checkboxes into nicer switches
$( '.option-enable' ).click( function(){
var parent = $(this).parent();
$( '.option-disable' , parent ).removeClass(
'selected' );
$( this ).addClass( 'selected' );
$( '.radiobox' , parent ).attr( 'value' , 1 );
});
$( '.option-disable' ).click( function(){
var parent = $(this).parent();
$( '.option-enable' , parent ).removeClass(
'selected' );
$( this ).addClass( 'selected' );
$( '.radiobox' , parent ).attr( 'value' , 0 );
});
}
},
categories :
{
loadMore : function( element )
{
$( element ).parent().hide().next( '.more-subcategories'
).show();
}
},
drafts: {
getContent: null,
// Frequency of draft checks by default to 5 seconds
frequency: 15000,
chars: 0,
check: function(){
// Returns the content
var content = eblog.drafts.getContent();
if( typeof content == 'undefined' )
{
return;
}
var title = $("#title").val();
if( content.length > 0 || ( title.length > 0 && title !=
emptyText ))
{
// Only run this when there's more contents
ejax.load( 'dashboard' , 'saveDraft' ,
ejax.getFormVal( '#blogForm' ) , content , '' );
}
setTimeout( 'eblog.drafts.check()', eblog.drafts.frequency );
},
save: function() {
//do submitting
eblog.editor.toggleSave();
$(window).unbind('beforeunload');
$('#form-task').val('savedraft');
var data = eblog.editor.getContent(),
content = $( '<div>' ).html( data ).html();
$('#write_content_hidden' ).val( content );
$('#blogForm').submit();
}
},
subscription: {
// show subscription
show: function( type , id ) {
ejax.load( 'subscription', 'showForm' , type , id );
},
submit: function( type ) {
eblog.loader.loading( 'eblog_loader' );
ejax.load( 'subscription', 'submitForm', type ,
ejax.getFormVal('#frmSubscribe') );
}
},
/**
* Dashboard
*/
dashboard: {
logout: function(){
$( '#eblog-logout' ).submit();
},
changeCollab: function( type ){
$( '#blog_contribute_source' ).val( type );
},
changeAuthor: function( title , url ){
ejax.dialog({
width: 700,
height: 500,
title: title ,
content: '',
beforeDisplay: function(){
var dialog = $(this);
// Remove padding from dialog
dialog.find('.dialog-middle').css('padding', 0);
},
afterDisplay: function(){
var dialog = $(this);
// Add iframe
$('<iframe>')
.attr('src', url )
.css({
width: dialog.find('.dialog-middle').width(),
height: dialog.find('.dialog-middle').height(),
border: 'none'
})
.appendTo(dialog.find('.dialog-middle-content'));
}
});
},
changeCategory: function( title, url ){
ejax.dialog({
width: 700,
height: 500,
title: title ,
content: '',
beforeDisplay: function(){
var dialog = $(this);
// Remove padding from dialog
dialog.find('.dialog-middle').css('padding', 0);
},
afterDisplay: function(){
var dialog = $(this);
// Add iframe
$('<iframe>')
.attr('src', url )
.css({
width: dialog.find('.dialog-middle').width(),
height: dialog.find('.dialog-middle').height(),
border: 'none'
})
.appendTo(dialog.find('.dialog-middle-content'));
}
});
},
socialshare: {
setActive: function( element ){
$( element ).parent().toggleClass( 'active' );
}
},
drafts: {
discard: function( cids ){
ejax.load( 'dashboard' , 'confirmDeleteDraft' ,
cids );
},
discardAll: function(){
ejax.load( 'dashboard' , 'confirmDeleteAllDraft' );
}
},
lists: {
init: function( element ){
$( '#dashboard-'+ element ).checkList({
checkbox: ".stackSelect",
masterCheckbox: ".stackSelectAll",
check: function(){
this.parent('.ui-list-select').addClass('active');
$('#select-actions').show();
},
uncheck: function(){
this.parent('.ui-list-select').removeClass('active');
$('#select-actions').hide();
},
change: function(selected, deselected){
}
});
}
},
toggle: function( element ){
if( $( element ).parent().next().css( 'display' ) ==
'block' )
{
$( element ).parent().addClass( 'ui-togbox' );
$( element ).parent().next().hide();
}
else
{
$( element ).parent().removeClass( 'ui-togbox' );
$( element ).parent().next().show();
}
},
quickpost: {
notify: function( type , message ){
$( '#eblog-message' ).removeClass( 'error info
success' ).addClass( type );
$( '#eblog-message div' ).html( message );
$( '#eblog-message').show();
},
save: function(){
eblog.loader.loading( 'quickpost-loading' );
var values = ejax.getFormVal( '#quick-post' );
ejax.load( 'dashboard' , 'save' , values );
},
draft: function(){
eblog.loader.loading( 'quickdraft-loading' );
var content = $( '#eblog-post-content' ).val();
// Only run this when there's more contents
ejax.load( 'dashboard' , 'quickSaveDraft' ,
ejax.getFormVal( '#quick-post' ) , content , '' );
}
},
settings: {
submit: function(){
// Validate password
if( $( '#password' ).val() != '' || $(
'#password2' ).val() != '' )
{
if( $( '#password' ).val() != $( '#password2'
).val() )
{
$( '.password-notice' ).show();
return false;
}
}
$( '#dashboard' ).submit();
}
},
categories:{
create: function(){
if( $( '#widget-create-category' ).css( 'display' )
== 'block' )
{
$( '#widget-create-category' ).slideUp();
}
else
{
$( '#widget-create-category' ).slideDown();
}
return false;
},
edit: function( id ) {
ejax.load( 'dashboard', 'editCategory' , id );
},
remove: function( url , id ){
ejax.load( 'dashboard' , 'confirmDeleteCategory' ,
id , url );
},
quicksave: function( name ){
ejax.load( 'dashboard' , 'quickSaveCategory' ,
name);
}
},
comments: {
publish: function( id , status ){
ejax.load( 'dashboard' , 'publishComment' , id ,
status );
},
publishModerated: function( id , status ){
ejax.load( 'dashboard' , 'publishModerateComment' ,
id , status );
},
edit: function( id ){
ejax.load( 'dashboard' , 'editComment' , id );
},
remove: function( url , id ){
ejax.load( 'dashboard' , 'confirmDeleteComment' ,
id , url );
}
},
action: function( element , redirect ){
var action = $( '#' + element + '-action' ).val();
var form = '#' + element + '-form';
var cids = '';
$( form + ' INPUT[name="cid[]"]').each(
function() {
if ( $(this).attr('checked') ) {
if(cids.length == 0)
{
cids = $(this).val();
}
else
{
cids = cids + ',' + $(this).val();
}
}
});
if( cids == '' )
{
eblog.system.alert('COM_EASYBLOG_PLEASE_SELECT_ONE_ITEM_TO_CONTINUE',
'COM_EASYBLOG_WARNING');
return;
}
switch( action )
{
case 'copy':
// Copy blog posts
ejax.load( 'dashboard' , 'copyForm' , cids );
break;
case 'discardDraft':
eblog.dashboard.drafts.discard( cids );
break;
case 'publishBlog':
eblog.blog.togglePublish( cids , 'publish' );
break;
case 'unpublishBlog':
eblog.blog.togglePublish( cids , 'unpublish' );
break;
case 'deleteBlog':
eblog.blog.confirmDelete( cids , redirect );
break;
case 'rejectBlog':
eblog.editor.reject( cids );
break;
case 'unpublishComment':
eblog.dashboard.comments.publish( cids , 'unpublish' );
break;
case 'publishComment':
eblog.dashboard.comments.publish( cids , 'publish' );
break;
case 'removeComment':
eblog.dashboard.comments.remove( redirect , cids, '' );
break;
default :
eblog.system.alert('COM_EASYBLOG_PLEASE_SELECT_ACTION_TO_PERFORM',
'COM_EASYBLOG_WARNING');
break;
}
},
videos:{
insert: function( editor ){
var url = $( '#video-source' ).val();
var width = $( '#video-width' ).val();
var height = $( '#video-height' ).val();
var data = '[embed=videolink]'
+ '{"video":"' + url +
'","width":"' + width +
'","height":"' + height + '"}'
+ '[/embed]';
jInsertEditorText( data , editor )
ejax.closedlg();
},
showForm: function( editor ){
try { IeCursorFix(); } catch(e) {};
ejax.load( 'dashboard' , 'showVideoForm' , editor
);
}
},
preview: function( itemId ) {
var content = eblog.drafts.getContent();
if( typeof content == 'undefined' )
{
return;
}
var title = $("#eblog-wrapper #title").val();
if( content.length > 0 && ( title.length > 0 &&
title != emptyText ))
{
ejax.call('dashboard','saveDraft',
[ejax.getFormVal( '#blogForm' ), content, ''], {
success: function(){
//second step
var draftId = $('#draft_id').val();
if( draftId != '')
{ var url = $.rootPath +
'index.php?option=com_easyblog&view=entry&layout=preview&draftid='
+ draftId + '&Itemid=' + itemId,
width = screen.width,
height = screen.height,
left = (screen.width/2)-( width /2),
top = (screen.height/2)-(height/2);
window.open( url , '' , 'toolbar=no, location=no,
directories=no, status=yes, menubar=yes, scrollbars=yes, resizable=yes,
copyhistory=no, width='+width+', height='+height+',
top='+top+', left='+left );
}
}
});
}
else
{
if( content.length > 0 )
{
eblog.system.alert('COM_EASYBLOG_PLEASE_SET_TITLE_BEFORE_PREVIEW',
'COM_EASYBLOG_ENTRY_PREVIEW_MODE');
}
else
{
eblog.system.alert('COM_EASYBLOG_ENTRY_PREVIEW_MODE_NO_CONTENT',
'COM_EASYBLOG_ENTRY_PREVIEW_MODE');
}
}
}
},
/**
* Ratings
**/
ratings:{
setup: function( elementId , disabled , ratingType ){
$("#" + elementId ).stars({
split: 2,
disabled: disabled,
oneVoteOnly: true,
cancelShow: false,
callback: function( element ){
eblog.loader.loading( elementId + '-command .rating-text' );
ejax.load( 'ratings' , 'vote' , element.value() ,
$( '#' + elementId ).children( 'input:hidden' ).val() ,
ratingType , elementId );
}
});
},
showVoters: function( elementId , elementType ){
ejax.load( 'ratings' , 'showvoters' , elementId ,
elementType );
},
update: function( elementId , ratingType , value , resultCommand ){
$( '#' + elementId ).children( '.ui-stars-star'
).removeClass( 'ui-stars-star-on' );
value = parseInt( value );
// Hide command
$( '#' + elementId + '-command' ).hide();
$( '#' + elementId ).addClass( 'voted' );
$( '#' + elementId ).children( '.ui-stars-star'
).each( function( index ){
if( index < value )
{
$( this ).addClass( 'ui-stars-star-on' );
}
else
{
$( this ).removeClass( 'ui-stars-star-on' );
}
});
}
},
/**
* Editor
*/
editor: {
checkPublishStatus: function() {
var status = $('#published').val();
var unpublishdate = $('#publish_down').val();
if(unpublishdate == '' || unpublishdate ==
'0000-00-00 00:00:00')
{
eblog.editor.postSubmit();
return true;
}
ejax.load( 'dashboard' , 'checkPublishStatus'
, status, unpublishdate);
return true;
},
cancelSubmit: function() {
isSave = false;
$("#save_post").attr('disabled', '');
return false;
},
postSubmit: function () {
//do submitting
$(window).unbind('beforeunload');
$('#blogForm').submit();
},
// save the post
save: function() {
eblog.editor.toggleSave();
// Retrieve the main content.
var editorContents = eblog.editor.getContent();
// Try to break the parts with the read more.
var val = editorContents.split( '<hr
id="system-readmore" />' );
if( val.length > 1 )
{
// It has a read more tag
var intro = $.sanitizeHTML( val[0] );
var fulltext = $.sanitizeHTML( val[1] );
var content = intro + '<hr id="system-readmore"
/>' + fulltext;
}
else
{
// Since there is no read more tag here, the first index is always the
full content.
var content = $.sanitizeHTML( editorContents );;
}
$( '#write_content_hidden' ).val( content );
$('#save_post_button' ).addClass( 'ui-disabled' );
$( '#save_post_button' ).attr( 'disabled' ,
'disabled' );
eblog.editor.checkPublishStatus();
},
apply: function(){
$( 'input[name=apply]' ).val( 1 );
eblog.editor.save();
},
reject: function( blogId ) {
ejax.load( 'Dashboard' , 'confirmRejectBlog' ,
blogId );
},
search: {
load: function(){
try { IeCursorFix(); } catch(e) {};
ejax.load( 'search' , 'search' , $(
'#search-content' ).val() );
},
insert: function( value , title , editor ){
var link = '<a
href="'+value+'">'+title+'</a>';
switch(editor)
{
case 'intro':
if($( '#widget-write-introtext .ui-modhead'
).hasClass('ui-togbox'))
{
eblog.editor.setIntro(link);
}
else
{
jInsertEditorText( link, editor );
}
break;
case 'write_content':
if($( '#widget-writepost .ui-modhead'
).hasClass('ui-togbox'))
{
eblog.editor.setContent(link);
}
else
{
jInsertEditorText( link, editor );
}
break;
default:
//do nothing
}
}
},
setIntro: null,
setContent: null,
getContent: null,
/**
* Generate date time picker like Wordpress
*/
datetimepicker: {
element: function( id, reset ) {
// Referenced from
http://www.quackit.com/javascript/javascript_date_and_time_functions.cfm
// Adds active class on the element.
$( '#datetime_' + id ).addClass( 'toggle-active' );
// Hide edit button
$( '#datetime_edit_' + id ).hide();
var day, month, year, hour, minute, ampm;
eblog.editor.datetimepicker.hideEditLink(id);
var day, month, year, hour, minute, ampm;
eblog.editor.datetimepicker.hideEditLink(id);
if( id == 'publish_down' && $('#' +
id).val() == '')
{
var tmpStr = $('#publish_down_reset').val();
$('#' + id).val(tmpStr);
}
if ( $('#' + id).val() != '' ) {
var strValue = $('#' + id).val();
var strTemp = strValue.split(' ');
var strTime = strTemp[1].split(':');
var strDate = strTemp[0].split('-');
day = strDate[2];
month = strDate[1];
year = strDate[0];
hour = strTime[0];
minute = strTime[1];
}
else {
today = new Date();
day = today.getDate();
month = today.getMonth() + 1; //in js, month start from 0, not 1
year = today.getFullYear();
hour = today.getHours();
minute = today.getMinutes();
}
//minute = parseInt(minute);
hour = parseInt(hour, 10);
if (minute.length <= 1) {
minute = '0' + minute;
}
if ( hour >= 12 ) {
ampm = 'pm';
}
else {
ampm = 'am';
}
if ( hour > 12 ) {
hour -= 12;
}
if( ampm == 'am' && hour == 0)
{
hour = 12;
}
if( hour < 10 )
{
hour = '0' + hour;
}
var html = '';
html += '<div class="dtpicker-wrap"
id="dtpicker_'+id+'" style="display:
none;">';
html += ' <select tabindex="4"
name="dt_month"
id="dt_month_'+id+'">';
html += ' <option value="01" '+ (month ==
'01' ? 'selected="selected"' : "" )
+'>'+ sJan +'</option>';
html += ' <option value="02" '+ (month ==
'02' ? 'selected="selected"' : "" )
+'>'+ sFeb +'</option>';
html += ' <option value="03" '+ (month ==
'03' ? 'selected="selected"' : "" )
+'>'+ sMar +'</option>';
html += ' <option value="04" '+ (month ==
'04' ? 'selected="selected"' : "" )
+'>'+ sApr +'</option>';
html += ' <option value="05" '+ (month ==
'05' ? 'selected="selected"' : "" )
+'>'+ sMay +'</option>';
html += ' <option value="06" '+ (month ==
'06' ? 'selected="selected"' : "" )
+'>'+ sJun +'</option>';
html += ' <option value="07" '+ (month ==
'07' ? 'selected="selected"' : "" )
+'>'+ sJul +'</option>';
html += ' <option value="08" '+ (month ==
'08' ? 'selected="selected"' : "" )
+'>'+ sAug +'</option>';
html += ' <option value="09" '+ (month ==
'09' ? 'selected="selected"' : "" )
+'>'+ sSep +'</option>';
html += ' <option value="10" '+ (month ==
'10' ? 'selected="selected"' : "" )
+'>'+ sOct +'</option>';
html += ' <option value="11" '+ (month ==
'11' ? 'selected="selected"' : "" )
+'>'+ sNov +'</option>';
html += ' <option value="12" '+ (month ==
'12' ? 'selected="selected"' : "" )
+'>'+ sDec +'</option>';
html += ' </select>';
html += ' <input type="text"
autocomplete="off" tabindex="4" maxlength="2"
size="2" value="' + day + '"
name="dt_day" id="dt_day_'+id+'">, ';
html += ' <input type="text"
autocomplete="off" tabindex="4" maxlength="4"
size="4" value="' + year + '"
name="dt_year" id="dt_year_'+id+'"> @
';
html += ' <input type="text"
autocomplete="off" tabindex="4" maxlength="2"
size="2" value="' + hour + '"
name="dt_hour" id="dt_hour_'+id+'"> :
';
html += ' <input type="text"
autocomplete="off" tabindex="4" maxlength="2"
size="2" value="' + minute + '"
name="dt_min" id="dt_min_'+id+'">';
html += ' <select tabindex="4"
name="dt_ampm" id="dt_ampm_'+id+'">';
html += ' <option value="am" ' + (ampm ==
"am" ? 'selected="selected"' : '')
+ '>'+ sAm +'</option>';
html += ' <option value="pm" ' + (ampm ==
"pm" ? 'selected="selected"' : '')
+ '>'+ sPm +'</option>';
html += ' </select>';
html += ' <div class="dtpicker-action"
id="dtpicker_action_'+id+'">';
html += ' <a class="dtpicker-save ui-button"
href="javascript:void(0);"
onclick="eblog.editor.datetimepicker.save(\''+id+'\')">'+btnOK+'</a>';
if ( reset )
{
html += ' <a class="dtpicker-reset"
href="javascript:void(0);"
onclick="eblog.editor.datetimepicker.reset(\''+id+'\')">'+btnReset+'</a>';
}
html += ' <a class="dtpicker-cancel"
href="javascript:void(0);"
onclick="eblog.editor.datetimepicker.cancel(\''+id+'\')">'+btnCancel+'</a>';
html += ' </div>';
html += '</div>';
$(html).insertAfter('#datetime_' + id);
$('#dtpicker_' + id).slideDown('fast');
},
reset: function(id) {
$('#dtpicker_' + id).slideUp('fast');
$('#' + id).val('');
$('#datetime_' + id + '
.datetime_caption').html(sNever);
eblog.editor.datetimepicker.showEditLink(id);
},
cancel: function(id) {
$('#dtpicker_' + id).slideUp('fast');
if( id == 'publish_down' &&
($('#publish_down_ori').val() == '' ||
$('#publish_down_ori').val() == '0000-00-00 00:00:00'))
{
// make sure the value get remove.
$('#' + id).val('');
}
// Remove toggle-active class once the cancel is clicked
$( '#datetime_' + id ).removeClass( 'toggle-active'
);
eblog.editor.datetimepicker.showEditLink(id);
},
save: function(id) {
$('#dtpicker_' + id).slideUp('fast');
// Remove toggle-active class once the cancel is clicked
$( '#datetime_' + id ).removeClass( 'toggle-active'
);
// construct date time
var day, month, year, hour, minute, ampm;
//today = new Date();
day = $('#dtpicker_' + id + ' #dt_day_' +
id).val();
month = $('#dtpicker_' + id + ' #dt_month_' +
id).val();
month = parseInt(month, 10);
if ( month < 10 ) {
month = '0' + month;
}
year = $('#dtpicker_' + id + ' #dt_year_' +
id).val();
hour = $('#dtpicker_' + id + ' #dt_hour_' +
id).val();
ampm = $('#dtpicker_' + id + ' #dt_ampm_' +
id).val();
if ( ampm == 'pm' ) {
switch ( parseInt(hour, 10) ) {
case 12:
//hour = parseInt(hour);
break;
default:
hour = parseInt(hour, 10) + 12;
break;
}
}
else {
switch ( parseInt(hour) ) {
case 12:
hour = '00';
break;
default:
if ( hour.length <= 1) {
hour = '0' + hour;
}
break;
}
}
minute = $('#dtpicker_' + id + ' #dt_min_' +
id).val();
//minute = parseInt(minute);
if ( minute.length <= 1) {
minute = '0' + minute;
}
var setTime = year + '-' + month + '-' + day +
' ' + hour + ':' + minute + ':00';
$('#' + id).val(setTime);
// $('#datetime_' + id + '
.datetime_caption').html(setTime);
ejax.load( 'dashboard' , 'updateDisplayDate' , id,
setTime);
eblog.editor.datetimepicker.showEditLink(id);
// $('.dtpicker-wrap').remove();
},
showEditLink: function(id) {
$('#datetime_edit_' + id ).show();
},
hideEditLink: function(id) {
$('#datetime_edit_' + id ).hide();
}
},
permalink: {
edited: false,
// get permalink from controller
generate: function() {
// We don't want to generate empty permalinks and
// if the permalink is edited, we don't want to change the
user's value.
if( $('#title').val() != '' &&
!eblog.editor.permalink.edited )
{
ejax.load( 'dashboard' , 'getPermalink' ,
$('#title').val() );
}
},
edit: function(){
if( $( '#permalink-edit' ).css( 'display' ) ==
'none' )
{
// We try to remember the state here so that permalink don't get
// generated everytime we try to change the title.
eblog.editor.permalink.edited = true;
$( '#permalink-edit' ).show();
$( '#permalink-value' ).hide();
}
else
{
$( '#permalink-edit' ).hide();
$( '#permalink-value' ).show();
}
},
save: function(){
// Change the value of the display
$( '#permalink-url' ).html( $(
'#permalink-data').val() );
// Hide the edit form first.
eblog.editor.permalink.edit();
}
}
},
tags: {
search: {
init: function(){
$('#filter-tags').keyup(function()
{
var text = $.trim($(this).val());
$('.post-tags li')
.hide()
.filter(function()
{
return (this.textContent || this.innerText ||
'').toUpperCase().indexOf(text.toUpperCase()) >= 0
})
.show();
});
}
}
},
loader:{
item: null,
loading: function( elementId ) {
eblog.loader.item = elementId;
$( '#' + elementId ).addClass( 'eblog_loader' );
$( '#' + elementId ).show();
},
doneLoading: function(){
if( eblog.loader.item != null )
{
$( '#' + eblog.loader.item ).removeClass(
'eblog_loader');
}
}
},
/**
* All comment operations
*/
comment: {
/**
* Comment like or dislike
*/
likes: function(contentId, status, likeId) {
eblog.loader.loading( 'likes-' + contentId );
ejax.load('Entry', 'likesComment', contentId,
status, likeId);
},
/**
* Save comment
*/
save: function() {
//clear err-msg
$('#eblog-message').removeClass('info error');
$('#eblog-message').html('');
eblog.loader.loading( 'comment-form-title' );
finalData = ejax.getFormVal('#frmComment');
ejax.load('Entry', 'commentSave', finalData);
if ( $('#empty-comment-notice').length > 0 ) {
$('#empty-comment-notice').fadeOut('100');
}
},
/**
* Reply to comment
*/
reply: function( id , commentDepth , autoTitle ) {
// hide all reply container
$('.cancel_container').hide();
// show all reply container
$('.reply_container').show();
//prepare the comment input form
$('#comment-reply-form-' + id).show();
var commentForm = $('#eblog-wrapper #frmComment').clone();
$('#eblog-wrapper #frmComment').remove();
$('#comment-reply-form-' +
id).addClass('comment-form-inline').append(commentForm);
$('#parent_id').val(id);
$('#comment_depth').val(commentDepth);
if(autoTitle)
{
//auto insert title
var title = $('#comment-title-' + id).text();
var reTitle = (title != '') ? 'RE:' + title :
'';
$('#title.inputbox').val(reTitle);
}
//toggle toolbar button
//$('#toolbar-reply-' + id).hide();
//$('#toolbar-cancel-' + id).show();
// reset all reply/cancel to reply
$('.comment-reply-no').removeClass('show-this');
$('.comment-reply-yes').addClass('show-this');
// set reply to cancel
$('#toolbar-reply-' + id).removeClass('show-this');
$('#toolbar-cancel-' + id).addClass('show-this');
$('#toolbar-cancel-' +
id).parent('.comment-reply').toggleClass('in-action');
//need to check if bbcode enabled
if($('.markItUpContainer').length > 0)
{
$("#comment").markItUpRemove();
$("#comment").markItUp(EasyBlogBBCodeSettings);
}
},
/**
* Cancel comment reply
*/
cancel: function(id) {
//revert the comment input form
var commentForm = $('#eblog-wrapper #comment-reply-form-' + id
+ ' #frmComment').clone();
$('#eblog-wrapper #comment-reply-form-' + id + '
#frmComment').remove();
$('#eblog-wrapper #comment-separator').after(commentForm);
$('#parent_id').val('0');
$('#comment_depth').val('0');
$('#comment-reply-form-' + id).hide();
$('#title.inputbox').val('');
//toggle toolbar button
//$('#toolbar-cancel-' + id).hide();
//$('#toolbar-reply-' +
id).toggleClass('hide-this');
//$('#toolbar-reply-' + id).removeAttr('style');
$('#toolbar-reply-' + id).toggleClass('show-this');
$('#toolbar-cancel-' + id).toggleClass('show-this');
$('#toolbar-cancel-' +
id).parent('.comment-reply').toggleClass('in-action');
//need to check if bbcode enabled
if($('.markItUpContainer').length > 0)
{
$("#comment").markItUpRemove();
$("#comment").markItUp(EasyBlogBBCodeSettings);
}
},
/**
* Save edit comment
*/
edit: function() {
//clear err-msg
$('#eblog-message').removeClass('info error');
$('#eblog-message').html('');
//toggleSpinner(true);
finalData = ejax.getFormVal('#frmComment');
ejax.load('dashboard', 'updateComment', finalData);
},
/**
* Actions
*/
action: function(param, url) {
var count = 0;
var cids = "";
var actionStr = $("#"+param).val();
if(actionStr == '')
{
eblog.system.alert('COM_EASYBLOG_PLEASE_SELECT_ACTION_TO_PERFORM',
'COM_EASYBLOG_WARNING');
return;
}
$("#adminForm INPUT[name='cid[]']").each(
function() {
if ( $(this).attr('checked') ) {
if(cids.length == 0)
{
cids = $(this).val();
}
else
{
cids = cids + ',' + $(this).val();
}
count++;
}
});
if(count <= 0)
{
eblog.system.alert('COM_EASYBLOG_PLEASE_SELECT_ONE_ITEM_TO_CONTINUE',
'COM_EASYBLOG_WARNING');
return;
}
if(actionStr == 'unpublishComment')
{
ejax.load('dashboard', 'publishComment', cids,
'0', 'comment');
}
else if(actionStr == 'publishComment')
{
ejax.load('dashboard', 'publishComment', cids,
'1', 'comment');
}
else if(actionStr == 'removeComment')
{
eblog.comment.confirm( url , cids, '');
}
},
confirm: function(url, commentId, lbl)
{
var targetUrl = url +
'&task=removeComment&commentId=' + commentId;
var callback = 'window.location = "' + targetUrl +
'";';
eblog.system.dialog('COM_EASYBLOG_ARE_YOU_SURE_YOU_WANT_TO_REMOVE_COMMENT',
callback, 'CONFIRMATION');
return;
},
displayInlineMsg: function (msgType, msg)
{
//$('#err-msg').show();
$('#eblog-message').removeClass('info error');
$('#eblog-message').html(msg);
$('#eblog-message').addClass(msgType);
if(msgType == 'info')
{
setTimeout( function() {
$('#eblog-message').removeClass('info error');
$('#eblog-message').html('');
}, 6000);
}
}
},
/**
* Featured
*/
featured: {
add: function(type, cid){
ejax.load('Latest', 'makeFeatured', type, cid);
},
remove: function(type, cid){
ejax.load('Latest', 'removeFeatured', type, cid);
},
slider: {
holderWidth: 0,
element: Array(),
autorotate: function( interval ){
var items = $( '#ezblog-featured .featured-a' ).children();
var set = false;
$( items ).each( function(){
if( $( this ).hasClass( 'active' ) && set != true )
{
if( $( this ).next().length == 0 )
{
// return to the parent
$( '#ezblog-featured .featured-a :first' ).click();
}
else
{
$( this ).next().click();
}
set = true;
}
});
setTimeout( 'eblog.featured.slider.autorotate(' + interval +
');' , interval );
},
init: function( sliderElement , autorotate , interval ){
eblog.featured.slider.element[ sliderElement ] = { 'width' :
parseInt( $( '.' + sliderElement ).parent().width() ) ,
'element' : '.' + sliderElement };
var total = 0;
$( eblog.featured.slider.element[ sliderElement ].element
).children().each( function(){
total += eblog.featured.slider.element[ sliderElement ].width;
});
$( eblog.featured.slider.element[ sliderElement ].element ).css(
'width' , total );
$( eblog.featured.slider.element[ sliderElement ].element
).children().css( 'width' , eblog.featured.slider.element[
sliderElement ].width );
if( autorotate )
{
interval = parseInt( interval ) * 1000;
setTimeout( 'eblog.featured.slider.autorotate(' + interval +
');' , interval );
}
},
slide: function( index , sliderElement ){
var left = 0;
var elementId = index;
if( index != 1 )
{
index -= 1;
left = eblog.featured.slider.element[ sliderElement ].width *
parseInt( index );
}
$( eblog.featured.slider.element[ sliderElement ].element ).animate( {
'left' : '-' + left + 'px' } ,
'slow' );
$( eblog.featured.slider.element[ sliderElement ].element
).parent().parent().children( 'div.featured-navi'
).children().children().removeClass( 'active' );
// Set active element for the slider buttons.
$( eblog.featured.slider.element[ sliderElement ].element
).parent().parent().children( 'div.featured-navi'
).children().children( '.slider-navi-' + elementId ).addClass(
'active' );
}
}
},
/**
* Spinner
*/
spinner: {
// toggle btw the spinner and save button
show: function() {
$('#blogSubmitBtn').hide();
$('#blogSubmitWait').show();
},
// toggle btw the spinner and save button
hide: function() {
$('#blogSubmitWait').hide();
$('#blogSubmitBtn').show();
},
// for publish operation
publish: function(id, show) {
if(show == 1)
{
$("#"+id+"Spinner").html("<img
src=\""+spinnerPath+"\"
alt=\"Loading\">");
}
else
{
$("#"+id+"Spinner").html("");
}
}
},
/**
* Elements
*/
element: {
focus: function(element) {
ele = '#' + element;
$(ele).focus();
ejax.closedlg();
}
},
/**
* Blog
*/
blog: {
/**
* HTTP POST
*/
publish: function(url, id, status) {
var targetUrl = url +
'&task=toggleBlogStatus&status=' + status +
'&blogId=' + id;
window.location = targetUrl;
},
remove: function(id, actionSrc) {
var id_str = "";
var src = (actionSrc) ? actionSrc : 'Dashboard';
$.each(id, function() {
eblog.spinner.publish(id, 1);
if(id_str!="")
{
id_str += ",";
}
id_str += this;
});
ejax.load('Dashboard', 'deleteBlog', id_str, src);
},
confirmDelete: function( ids , url ){
ejax.load( 'dashboard' , 'confirmDelete' , ids , url
);
},
confirm: function(url, blogId, lbl) {
var targetUrl = url + '&task=deleteBlog&blogId=' +
blogId;
var callback = 'window.location = "' + targetUrl +
'";';
//console.log(callback);
//eblog.system.dialog(
'COM_EASYBLOG_ARE_YOU_SURE_YOU_WANT_TO_REMOVE_BLOG' , callback,
'CONFIRMATION');
return;
},
approve: function( url , blogId ) {
ejax.load( 'dashboard' , 'confirmApproveBlog' ,
blogId , url );
},
ajaxpublish: function(id, status, actionSrc) {
var id_str = "";
var src = (actionSrc) ? actionSrc : 'Dashboard';
$.each(id, function() {
eblog.spinner.publish( id , 1 );
if( id_str!="" )
{
id_str += ",";
}
id_str += this;
});
ejax.load( 'Dashboard', 'togglePublishStatus',
id_str , status , src);
},
togglePublish: function( id , action ){
ejax.load( 'dashboard' , 'togglePublish' , id ,
action );
},
action: function( param , url ) {
var count = 0;
var cids = "";
var actionStr = $("#"+param).val();
if(actionStr == 'default')
{
return;
}
$("#adminForm INPUT[name='cid[]']").each(
function() {
if ( $(this).attr('checked') ) {
if(cids.length == 0)
{
cids = $(this).val();
}
else
{
cids = cids + ',' + $(this).val();
}
count++;
}
});
if(count <= 0)
{
eblog.system.alert('COM_EASYBLOG_PLEASE_SELECT_ONE_ITEM_TO_CONTINUE',
'COM_EASYBLOG_WARNING');
return;
}
if(actionStr == 'unpublishBlog')
{
eblog.blog.togglePublish( cids , 'unpublish' );
}
else if(actionStr == 'publishBlog')
{
eblog.blog.togglePublish( cids , 'publish' );
}
else if(actionStr == 'deleteBlog')
{
eblog.blog.confirmDelete( cids , url );
}
},
/**
* Tab section in blog.read.php
*/
tab: {
init: function() {
// hide all containers
$('.tab_container').hide();
// Show the first container
$( 'div.tab-wrapper .tab_container:first' ).show();
// Make the first tab active all the time.
$('.tab_item:first').addClass('item-active');
// Bind the click function on the tabs.
$('ul.tab_button li.tab_item a').click( function() {
var element = $(this).parent();
if ( element.hasClass( 'item-active' ) )
{
return false;
}
element.siblings().each( function(){
if( $(this).hasClass( 'item-active' ) )
{
$(this).removeClass( 'item-active' );
}
});
element.addClass( 'item-active' );
// hide all other container
$( '.tab_container' ).hide();
// get id from element
var _id = element.attr('id');
var _x = _id.split('-');
var id = _x[1];
$( '#section-' + id ).show();
return false;
});
}
},
/**
* ajax unsubscribe blog
*/
unsubscribe: function( sid, bid )
{
ejax.load( 'entry' , 'confirmUnsubscribeBlog' , sid
, bid );
}
},
/**
* Tags
*/
tag: {
remove: function( redirect , tagId ) {
ejax.load( 'Dashboard' , 'confirmDeleteTag' , tagId
, redirect );
},
edit: function(id) {
ejax.load('Dashboard', 'editTagDialog', id);
},
/**
* Actions
*/
action: function(param, url) {
var count = 0;
var cids = "";
var actionStr = $("#"+param).val();
if(actionStr == '')
{
eblog.system.alert('COM_EASYBLOG_PLEASE_SELECT_ACTION_TO_PERFORM',
'COM_EASYBLOG_WARNING');
return;
}
$("#adminForm INPUT[name='cid[]']").each(
function() {
if ( $(this).attr('checked') ) {
if(cids.length == 0)
{
cids = $(this).val();
}
else
{
cids = cids + ',' + $(this).val();
}
count++;
}
});
if(count <= 0)
{
eblog.system.alert('COM_EASYBLOG_PLEASE_SELECT_ONE_ITEM_TO_CONTINUE',
'COM_EASYBLOG_WARNING');
return;
}
if(actionStr == 'deleteTag')
{
eblog.tag.confirm(url, cids, '');
}
},
confirm: function(url, tagId, lbl)
{
var targetUrl = url + '&task=deleteTag&tagId=' +
tagId;
var callback = 'window.location = "' + targetUrl +
'";';
eblog.system.dialog('COM_EASYBLOG_ARE_YOU_SURE_YOU_WANT_TO_REMOVE_TAGS',
callback, 'CONFIRMATION');
return;
},
save: function() {
finalData = ejax.getFormVal('#frmEditTag');
ejax.load('Dashboard', 'saveTag', finalData);
}
},
socialshare:{
share: function( id , type ){
eblog.spinner.publish( id , 1 );
ejax.load( 'dashboard' , 'ajaxSocialShare' , id ,
type );
}
},
/**
* Twitter
*/
twitter: {
update: function(id) {
if ( id != "" )
{
eblog.spinner.publish(id, 1);
ejax.load('Dashboard', 'ajaxUpdateTwitter', id);
}
}
},
/**
* Forms
*/
form: {
checkbox: {
checkall: function() {
$("#adminForm INPUT[type='checkbox']").each(
function() {
if ( $('#toggle').attr('checked') )
$(this).attr('checked', true);
else
$(this).attr('checked', false);
});
return false;
}
}
},
/**
* Trackbacks
*/
trackback: {
url: {
copy: function() {
$( '#trackback-url' ).focus().select();
}
}
},
/**
* Common method for EasyBlog
*/
system: {
alert: function ( text, title ) {
ejax.alert(ejax.string(text), ejax.string(title), '450',
'auto');
//ejax.load('Latest', 'ajaxShowAlertDialog', _text,
_title);
},
dialog: function ( text, callback, title ) {
var dialogActions = '<div
class="dialog-actions"><input type="button"
value="' + ejax.string('No') + '"
class="button" id="edialog-cancel"
name="edialog-cancel" onclick="ejax.closedlg();"
/><input type="button" value="' +
ejax.string('Yes') + '" class="button"
id="edialog-submit" name="edialog-submit"
onclick="' + callback + '" /></div>';
var options = {
title: ejax.string(title),
content: ejax.string(text) + dialogActions
}
ejax.dialog(options);
//ejax.load('Latest', 'ajaxShowDialog', text,
callback, title);
},
loader: function (show) {
if(show)
{
if($('img#easyblog-loader').length > 0)
{
$('img#easyblog-loader').remove();
}
var img = new Image;
img.src =
'/components/com_easyblog/assets/images/loader.gif';
img.name = 'easyblog-loader';
img.id = 'easyblog-loader';
var divBody = $('div#eblog-wrapper');
var divWidth = divBody.width();
//divHeight = window.innerHeight || self.innerHeight ||
(de&&de.clientHeight) || window.parent.document.body.clientHeight;
divHeight = window.innerHeight || self.innerHeight ||
window.parent.document.body.clientHeight;
divBody.prepend(img);
$('img#easyblog-loader').css('marginTop',
(divHeight / 2));
$('img#easyblog-loader').css('marginLeft',
(divWidth / 2));
$('img#easyblog-loader').css('position',
'absolute');
$('img#easyblog-loader').css('z-index',
10);
}
else
{
if($('img#easyblog-loader').length > 0)
{
$('img#easyblog-loader').remove();
}
}
}
},
teamblog: {
join: function(teamId) {
var id = String(teamId);
ejax.load('TeamBlog', 'showDialog', id,
'join');
},
leave: function(teamId) {
var id = String(teamId);
ejax.load('TeamBlog', 'showDialog', id,
'leave');
},
leaveteam: function() {
eblog.loader.loading( 'eblog_loader' );
ejax.load( 'teamblog' , 'leaveTeam' ,
ejax.getFormVal( '#frmLeave' ) );
},
send: function() {
eblog.loader.loading( 'eblog_loader' );
ejax.load( 'teamblog' , 'addJoinRequest' ,
ejax.getFormVal( '#frmJoin' ) );
},
approve: function() {
},
reject: function() {
}
},
calendar: {
reload: function(view, func, position, itemid, size, type, timestamp) {
ejax.load( view , func, position, itemid, size, type, timestamp);
},
showtooltips : function(id)
{
$('.easyblog_calendar_tooltips').hide();
$('#com_easyblog_calendar_day_'+id).show();
}
}
}
$(document).ready(function(){
$.sanitizeHTML = function(html)
{
var fragmentContainer = document.createElement('div'),
fragment = document.createDocumentFragment();
$.clean([html], document, fragment);
fragmentContainer.appendChild(fragment);
return fragmentContainer.innerHTML;
}
/**
* Initializes all the gallery stuffs here
**/
// Init fancy box images.
if (window.eblog_enable_lightbox) {
var options = {
showOverlay: true,
centerOnScroll: true,
overlayOpacity: 0.7
}
if (!window.eblog_lightbox_title) {
options.helpers = { title: false };
}
if (window.eblog_lightbox_enforce_size) {
options.maxWidth = window.eblog_lightbox_width;
options.maxHeight = window.eblog_lightbox_height;
}
eblog.images.initFancybox('a.easyblog-thumb-preview', options);
}
eblog.images.initCaption('img.easyblog-image-caption');
});
// module: end
module.resolve();
});
EasyBlog
.require()
//.script('toolbar' , 'responsive')
.script( 'responsive')
.done(function($) {
if( EasyBlog.responsive )
{
$('#eblog-wrapper').responsive({at: 818, switchTo:
'w768'});
$('#eblog-wrapper').responsive({at: 600, switchTo:
'w600'});
$('#eblog-wrapper').responsive({at: 500, switchTo:
'w320'});
}
// /$('.discuss-searchbar').responsive({at: 500, switchTo:
'narrow'});
});
ejax.js000064400000025064151167475070006055 0ustar00/**
* @package EasyBlog
* @copyright Copyright (C) 2010 Stack Ideas Private Limited. All rights
reserved.
* @license GNU/GPL, see LICENSE.php
*
* EasyBlog is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
EasyBlog.module('ejax', function($) {
var module = this;
ejax = {
http: false, //HTTP Object
format: 'text',
callback: function(data){},
error: false,
getHTTPObject : function() {
var http = false;
//Use IE's ActiveX items to load the file.
if ( typeof ActiveXObject != 'undefined' ) {
try {
http = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E) {
http = false;
}
}
//If ActiveX is not available, use the XMLHttpRequest of Firefox/Mozilla
etc. to load the document.
}
else if ( XMLHttpRequest ) {
try {http = new XMLHttpRequest();}
catch (e) {http = false;}
}
return http;
},
/**
* Ajax function
*/
// ejax.call('controller','task', ['arg1',
'arg2'], function(){});
// ejax.call('controller','task', ['arg1',
'arg2'], {
// success: function(){},
// error: function(){}
// });
call: function(view, method, params, callback)
{
var args = [{view: view, callback: callback}, method];
args = args.concat(params);
ejax.load.apply(this, args);
},
load : function ( view, method )
{
var callback = {
success: function(){},
error: function(){}
};
if (typeof view == "object")
{
callback = $.extend(callback, ($.isFunction(view.callback)) ? {success:
view.callback} : view.callback);
view = view.view;
}
// This will be the site we are trying to connect to.
url = eblog_site;
url += '&tmpl=component';
url += '&no_html=1';
url += '&format=ejax';
//Kill the Cache problem in IE.
url += "&uid=" + new Date().getTime();
var parameters = '&view=' + view + '&layout='
+ method;
// If there is more than 1 arguments, we want to accept it as parameters.
if ( arguments.length > 2 )
{
for ( var i = 2; i < arguments.length; i++ )
{
var myArgument = arguments[ i ];
if($.isArray(myArgument))
{
for(var j = 0; j < myArgument.length; j++)
{
var argument = myArgument[j];
if ( typeof( argument ) == 'string' )
{
// Encode value to proper html entities.
parameters += '&value' + ( i - 2 ) + '[]=' +
encodeURIComponent( argument );
}
}
} else {
var argument = myArgument;
if ( typeof( argument ) == 'string' )
{
// Encode value to proper html entities.
parameters += '&value' + ( i - 2 ) + '=' +
encodeURIComponent( argument );
}
}
}
}
var http = this.getHTTPObject(); //The XMLHttpRequest object is recreated
at every call - to defeat Cache problem in IE
if ( !http || !view || !method ) return;
// if ( this.http.overrideMimeType )
// this.http.overrideMimeType( 'text/xml' );
//Closure
var ths = this;
http.open( 'POST' , url , true );
// Required because we are doing a post
http.setRequestHeader( "Content-type",
"application/x-www-form-urlencoded" );
http.setRequestHeader( "Content-length", parameters.length );
http.setRequestHeader( "Connection", "close" );
http.onreadystatechange = function(){
//Call a function when the state changes.
if (http.readyState == 4)
{
//Ready State will be 4 when the document is loaded.
if (http.status == 200)
{
var result = "";
if (http.responseText)
{
result = http.responseText;
}
// Evaluate the result before processing the JSON text. New lines in
JSON string,
// when evaluated will create errors in IE.
result = result.replace(/[\n\r]/g,"");
try {
result = eval( result );
} catch(e) {
if (callback.error) { callback.error('Invalid response.');
}
}
// Give the data to the callback function.
ths.process( result, callback );
}
else
{
//An error occured
if (ths.error)
{
ths.error( http.status );
if (callback.error) { callback.error(http.status); }
}
}
}
}
http.send( parameters );
},
/**
* Method to get translated string from server
*
* @param string
*/
_string: [],
string: function( str ) {
if (ejax._string[str]!=undefined)
return ejax._string[str];
var url = eblog_site +
'&tmpl=component&no_html=1&controller=easyblog&task=ajaxGetSystemString';
var r1 = $.ajax({
type: "POST",
url: url,
data: "data=" + str,
async: false,
cache: true
}).responseText;
ejax._string[str] = r1;
return r1;
},
/**
* Get form values
*
* @param string Form ID
*/
getFormVal : function( element ) {
var inputs = [];
var val = null;
$( ':input', $( element ) ).each( function() {
val = this.value.replace(/"/g, """);
val = encodeURIComponent(val);
if($(this).is(':checkbox') || $(this).is(':radio'))
{
if($(this).prop('checked'))
{
inputs.push( this.name + '=' + escape( val ) );
}
}
else
{
inputs.push( this.name + '=' + escape( val ) );
}
});
//var finalData = inputs.join('&&');
//return finalData;
return inputs;
},
process : function ( result, callback ){
// Process response according to the key
for(var i=0; i < result.length;i++)
{
var action = result[ i ][ 0 ];
switch( action )
{
case 'script':
var data = result[ i ][ 1 ];
eval("EasyBlog(function($){" + data + "});");
break;
case 'after':
var id = result[ i ][ 1 ];
var value = result[ i ][ 2 ];
$( '#' + id ).after( value );
break;
case 'append':
var id = result[ i ][ 1 ];
var value = result[ i ][ 2 ];
$( '#' + id ).append( value );
break;
case 'assign':
var id = result[ i ][ 1 ];
var value = result[ i ][ 2 ];
$( '#' + id ).html( value );
break;
case 'value':
var id = result[ i ][ 1 ];
var value = result[ i ][ 2 ];
$( '#' + id ).val( value );
break;
case 'prepend':
var id = result[ i ][ 1 ];
var value = result[ i ][ 2 ];
$( '#' + id ).prepend( value );
break;
case 'destroy':
var id = result[ i ][ 1 ];
$( '#' + id ).remove();
break;
case 'dialog':
ejax.dialog( result[ i ][ 1 ] );
break;
case 'alert':
ejax.alert( result[ i ][ 1 ], result[ i ][ 2 ], result[ i ][ 3 ] ,
result[ i ][ 4 ] );
break;
case 'create':
break;
case 'error':
var args = result[ i ].slice(1);
callback.error.apply(this,args);
break;
case 'callback':
var args = result[ i ].slice(1);
callback.success.apply(this, args);
break;
}
}
delete result;
},
/**
* Dialog
*/
dialog: function( options ) {
ejax._showPopup( options );
},
closedlg: function() {
var dialog = $('#eblog-dialog');
var dialogOverlay = $('#eblog-overlay');
var options = dialog.data('options');
dialogOverlay.hide();
dialog
.fadeOut(function()
{
options.afterClose.apply(dialog);
});
$(window).unbind('.dialog');
$(document).unbind('keyup', ejax._attachPopupShortcuts);
},
_attachPopupShortcuts: function(e)
{
if (e.keyCode == 27) { ejax.closedlg(); }
},
/**
* Alert
*/
alert: function( content, title, width, height ) {
var COM_EASYBLOG_OK = ejax.string('COM_EASYBLOG_OK');
var dialogActions = '<div
class="dialog-actions"><input type="button"
value="' + COM_EASYBLOG_OK + '"
class="button" id="edialog-cancel"
name="edialog-cancel" onclick="ejax.closedlg();"
/></div>';
var options = {
title: title,
content: content + dialogActions,
width: width,
height: height
}
ejax._showPopup( options );
},
/**
* Private function
*
* Generate dialog and popup dialog
*/
_showPopup: function( options ){
var defaultOptions = {
width: '500',
height: 'auto',
type: 'dialog',
beforeDisplay: function(){},
afterDisplay: function(){},
afterClose: function(){}
}
var options = $.extend({}, defaultOptions, options);
var dialogOverlay = $('#eblog-overlay');
if (dialogOverlay.length < 1)
{
dialogOverlay = '<div
id="eblog-overlay"></div>';
dialogOverlay = $(dialogOverlay).appendTo('body');
dialogOverlay.click(function()
{
ejax.closedlg();
});
}
var dialog = $('#eblog-dialog');
if (dialog.length < 1)
{
dialogTemplate = '<div id="eblog-dialog">';
dialogTemplate += ' <div class="dialog">';
dialogTemplate += ' <div
class="dialog-wrap">';
dialogTemplate += ' <div
class="dialog-top">';
dialogTemplate += ' <h3></h3>';
dialogTemplate += ' <a href="javascript:void(0);"
onclick="ejax.closedlg();"
class="closeme">Close</a>';
dialogTemplate += ' </div>';
dialogTemplate += ' <div class="dialog-middle
clearfix">';
dialogTemplate += ' <div
class="dialog-middle-content"></div>';
dialogTemplate += ' </div>';
dialogTemplate += ' </div>';
dialogTemplate += ' </div>';
dialogTemplate += '</div>';
dialog = $(dialogTemplate).appendTo('body');
}
// Store dialog options
dialog
.data('options', options);
var dialogTitle = dialog.find('.dialog-top h3');
options.title = options.title != null ? options.title :
' ';
dialogTitle.html(unescape(options.title));
var dialogContent = $('#eblog-dialog .dialog-middle-content');
dialogContent
.css({
width : (options.width=='auto') ? 'auto' :
parseInt(options.width),
height: (options.height=='auto') ? 'auto' :
parseInt(options.height)
})
.html(options.content);
options.beforeDisplay.apply(dialog);
var positionDialog = function()
{
dialog
.css({ top: 0, left: 0 })
.position({ my: 'center', at: 'center', of: window
});
dialogOverlay
.css({
width: $(document).width(),
height: $(document).height()
})
.show();
};
dialog
.show(0, function()
{
positionDialog();
var positionDelay;
$(window)
.bind('resize.dialog scroll.dialog', function()
{
clearTimeout(positionDelay);
positionDelay = setTimeout(positionDialog, 50);
});
});
dialog.fadeOut(0, function() {
dialog.fadeIn(function() {
options.afterDisplay.apply(dialog);
});
});
$('#edialog-cancel, #edialog-submit').live('mouseup',
function() {
ejax.closedlg();
});
$(document).bind('keyup', ejax._attachPopupShortcuts);
}
}
// module: end
module.resolve();
});
featured.js000064400000005376151167475070006731 0ustar00EasyBlog.module(
"featured" , function($) {
var module = this;
// require: start
EasyBlog.require()
.done(function(){
// controller: start
EasyBlog.Controller(
"Featured.Scroller",
{
defaultOptions: {
elements: null,
itemWidth: null,
// Auto rotate option
autorotate: {
enabled : false,
interval : 50
},
// Items
"{placeHolder}" : ".slider-holder",
"{slider}" : ".featured-entries",
"{sliderItems}" : ".slider-holder ul li",
"{sliderNavigation}" : ".featured-navi .featured-a
a"
}
},
function(self) {return {
/**
* Featured scroller object initialization happens here.
*
*/
init: function() {
// Set the current holder width to a temporary location.
self.options.itemWidth = self.placeHolder().width() + 1;
// Calculate the total width of the whole parent container as we need to
multiply this by the number of child elements.
var totalWidth = self.sliderItems().length * parseInt(
self.options.itemWidth );
// Now, we need to stretch the parent's width to match the total
items.
self.slider().css( 'width' , totalWidth );
// Make sure the width of each child items has the same width as its
parent.
self.sliderItems().css( 'width' , self.options.itemWidth );
if( self.options.autorotate.enabled )
{
setTimeout( function(){
self.initAutoRotate();
}, parseInt( self.options.autorotate.interval ) * 1000 );
}
},
"{sliderNavigation} click" : function( element ){
var index = $( element ).data( 'slider' );
var left = 0;
// If the current index is 1, we can just leave left as 0
if( index != 1 )
{
left = self.options.itemWidth * parseInt( index - 1 );
}
// Since any items after the first item is hidden by default, we need to
show the current item.
self.slider().children( ':nth-child(' + index + ')'
).show();
// Now let's animate the placeholder.
self.slider().animate( {
left : '-' + left + 'px'
}, 'slow' );
// Remove active class from the navigation anchor link.
self.sliderNavigation( '.active' ).removeClass(
'active' );
// Set the active element on the current item.
$( element ).addClass( 'active' );
},
/**
* This initializes the auto rotation for the featured items.
*/
initAutoRotate: function(){
var set = false;
self.sliderNavigation().each(function(){
if( $( this ).hasClass( 'active' ) && set != true )
{
if( $( this ).next().length == 0 )
{
self.sliderNavigation( ':first' ).click();
}
else
{
$( this ).next().click();
}
set = true;
}
});
setTimeout( function(){
self.initAutoRotate();
}, parseInt( self.options.autorotate.interval ) * 1000 );
}
} }
);
module.resolve();
// controller: end
});
});
index.html000064400000000037151167475070006556 0ustar00<!DOCTYPE
html><title></title>
location.js000064400000031604151167475070006733
0ustar00EasyBlog.module("location", function($) {
var module = this;
// require: start
EasyBlog.require()
.library(
"throttle-debounce",
"ui/autocomplete"
)
.done(function(){
// controller: start
EasyBlog.Controller(
"Location.Form",
{
defaultOptions: {
language: 'en',
initialLocation: null,
mapType : "ROADMAP",
"{locationInput}": ".locationInput",
"{locationLatitude}": ".locationLatitude",
"{locationLongitude}": ".locationLongitude",
"{locationMap}": ".locationMap",
"{autoDetectButton}": ".autoDetectButton"
}
},
function(self) { return {
init: function() {
var mapReady = $.uid("ext");
window[mapReady] = function() {
$.___GoogleMaps.resolve();
}
if (!$.___GoogleMaps) {
$.___GoogleMaps = $.Deferred();
EasyBlog.require()
.script(
{prefetch: false},
"https://maps.googleapis.com/maps/api/js?sensor=true&language="
+ self.options.language + "&callback=" + mapReady
);
}
// Defer instantiation of controller until Google Maps library is
loaded.
$.___GoogleMaps.done(function() {
self._init();
});
},
_init: function(el, event) {
self.geocoder = new google.maps.Geocoder();
self.hasGeolocation = navigator.geolocation!==undefined;
if (!self.hasGeolocation) {
self.autoDetectButton().remove();
} else {
self.autoDetectButton().show();
}
self.locationInput()
.autocomplete({
delay: 300,
minLength: 0,
source: self.retrieveSuggestions,
select: function(event, ui) {
self.locationInput()
.autocomplete("close");
self.setLocation(ui.item.location);
}
})
.prop("disabled", false);
self.autocomplete =
self.locationInput().autocomplete("widget");
self.autocomplete
.addClass("location-suggestion");
var initialLocation = $.trim(self.options.initialLocation);
if (initialLocation) {
self.getLocationByAddress(
initialLocation,
function(location) {
self.setLocation(location[0]);
}
);
};
self.busy(false);
},
busy: function(isBusy) {
self.locationInput().toggleClass("loading", isBusy);
},
getUserLocations: function(callback) {
self.getLocationAutomatically(
function(locations) {
self.userLocations = self.buildDataset(locations);
callback && callback(locations);
}
);
},
getLocationByAddress: function(address, callback) {
self.geocoder.geocode(
{
address: address
},
callback);
},
getLocationByCoords: function(latitude, longitude, callback) {
self.geocoder.geocode(
{
location: new google.maps.LatLng(latitude, longitude)
},
callback);
},
getLocationAutomatically: function(success, fail) {
if (!navigator.geolocation) {
return fail("ERRCODE", "Browser does not support
geolocation or do not have permission to retrieve location data.")
}
navigator.geolocation.getCurrentPosition(
// Success
function(position) {
self.getLocationByCoords(position.coords.latitude,
position.coords.longitude, success)
},
// Fail
fail
);
},
renderMap: function(location, tooltipContent) {
self.busy(true);
self.locationMap().show();
var map = new google.maps.Map(
self.locationMap()[0],
{
zoom: 15,
center: location.geometry.location,
mapTypeId: google.maps.MapTypeId[self.options.mapType],
disableDefaultUI: true
}
);
var marker = new google.maps.Marker(
{
position: location.geometry.location,
center : location.geometry.location,
title : location.formatted_address,
map : map
}
);
var infoWindow = new google.maps.InfoWindow({ content: tooltipContent
});
google.maps.event.addListener(map, "tilesloaded", function() {
infoWindow.open(map, marker);
self.busy(false);
});
},
setLocation: function(location) {
if (!location) return;
self.locationResolved = true;
self.lastResolvedLocation = location;
self.locationInput()
.val(location.formatted_address);
self.locationLatitude()
.val(location.geometry.location.lat());
self.locationLongitude()
.val(location.geometry.location.lng());
self.renderMap(location, location.formatted_address);
},
removeLocation: function() {
self.locationResolved = false;
self.locationInput()
.val('');
self.locationLatitude()
.val('');
self.locationLongitude()
.val('');
self.locationMap().hide();
},
buildDataset: function(locations) {
var dataset = $.map(locations, function(location){
return {
label: location.formatted_address,
value: location.formatted_address,
location: location
};
});
return dataset;
},
retrieveSuggestions: function(request, response) {
self.busy(true);
var address = request.term,
respondWith = function(locations) {
response(locations);
self.busy(false);
};
// User location
if (address=="") {
respondWith(self.userLocations || []);
// Keyword search
} else {
self.getLocationByAddress(address, function(locations) {
respondWith(self.buildDataset(locations));
});
}
},
suggestUserLocations: function() {
if (self.hasGeolocation && self.userLocations) {
self.removeLocation();
self.locationInput()
.autocomplete("search", "");
}
self.busy(false);
},
"{locationInput} blur": function() {
// Give way to autocomplete
setTimeout(function(){
var address = $.trim(self.locationInput().val());
// Location removal
if (address=="") {
self.removeLocation();
// Unresolved location, reset to last resolved location
} else if (self.locationResolved) {
if (address != self.lastResolvedLocation.formatted_address) {
self.setLocation(self.lastResolvedLocation);
}
} else {
self.removeLocation();
}
}, 250);
},
"{autoDetectButton} click": function() {
self.busy(true);
if (self.hasGeolocation && !self.userLocations) {
self.getUserLocations(self.suggestUserLocations);
} else {
self.suggestUserLocations();
}
}
}}
);
EasyBlog.Controller(
"Location.Map",
{
defaultOptions: {
animation: 'drop',
language: 'en',
useStaticMap: false,
disableMapsUI: true,
// fitBounds = true will disobey zoom
// single location with fitBounds = true will set zoom to max (by
default from Google)
// locations.length == 1 will set fitBounds = false unless explicitly
specified
// locations.length > 1 will set fitBounds = true unless explicitly
specified
zoom: 5,
fitBounds: null,
minZoom: null,
maxZoom: null,
// location in center has to be included in locations array
// center will default to first object in locations
// latitude and longitude always have precedence over address
// {
// "latitude": latitude,
// "longitude": longitude,
// "address": address
// }
center: null,
// address & title are optional
// latitude and longitude always have precedence over address
// title will default to geocoded address
// first object will open info window
// [
// {
// "latitude": latitude,
// "longitude": longitude,
// "address": address,
// "title": title
// }
// ]
locations: [],
// Default map type to be road map. Can be overriden.
mapType: "ROADMAP",
width: 500,
height: 400,
"{locationMap}": ".locationMap"
}
},
function(self) { return {
init: function() {
self.mapLoaded = false;
var mapReady = $.uid("ext");
window[mapReady] = function() {
$.___GoogleMaps.resolve();
}
if(self.options.useStaticMap == true) {
var language = '&language=' +
String(self.options.language);
var dimension = '&size=' + String(self.options.width) +
'x' + String(self.options.height);
var zoom = '&zoom=' + String(self.options.zoom);
var center = '¢er=' +
String(parseFloat(self.options.locations[0].latitude).toFixed(6)) +
',' +
String(parseFloat(self.options.locations[0].longitude).toFixed(6));
var maptype = '&maptype=' + google.maps.MapTypeId[
self.options.mapType ];
var markers = '&markers=';
var url =
'https://maps.googleapis.com/maps/api/staticmap?sensor=false' +
language + dimension;
if(self.options.locations.length == 1) {
markers +=
String(parseFloat(self.options.locations[0].latitude).toFixed(6)) +
',' +
String(parseFloat(self.options.locations[0].longitude).toFixed(6));
url += zoom + center + maptype + markers;
} else {
var temp = new Array();
$.each(self.options.locations, function(i, location) {
temp.push(String(parseFloat(location.latitude).toFixed(6)) +
',' + String(parseFloat(location.longitude).toFixed(6)));
})
markers += temp.join('|');
url += markers + maptype;
}
self.locationMap().show().html('<img src="' + url +
'" />');
self.busy(false);
} else {
var mapReady = $.uid("ext");
window[mapReady] = function() {
$.___GoogleMaps.resolve();
}
if (!$.___GoogleMaps) {
$.___GoogleMaps = $.Deferred();
EasyBlog.require()
.script(
{prefetch: false},
"https://maps.googleapis.com/maps/api/js?sensor=true&language="
+ self.options.language + "&callback=" + mapReady
);
}
// Defer instantiation of controller until Google Maps library is
loaded.
$.___GoogleMaps.done(function() {
self._init();
});
}
},
_init: function() {
// initialise fitBounds according to locations.length
if(self.options.fitBounds === null) {
if(self.options.locations.length == 1) {
self.options.fitBounds = false;
} else {
self.options.fitBounds = true;
}
}
// initialise disableMapsUI value to boolean
self.options.disableMapsUI = Boolean(self.options.disableMapsUI);
// initialise all location object
self.locations = new Array();
$.each(self.options.locations, function(i, location) {
if( location.latitude != 'null' &&
location.longitude != 'null' ) {
self.locations.push(new google.maps.LatLng(location.latitude,
location.longitude));
}
});
if(self.locations.length > 0) {
self.renderMap();
}
self.busy(false);
},
busy: function(isBusy) {
self.locationMap().toggleClass("loading", isBusy);
},
renderMap: function() {
self.busy(true);
self.locationMap().show();
var latlng;
if(self.options.center) {
latlng = new google.maps.LatLng(center.latitude, center.longitude);
} else {
latlng = self.locations[0];
}
self.map = new google.maps.Map(
self.locationMap()[0],
{
zoom: parseInt( self.options.zoom ),
minZoom: parseInt( self.options.minZoom ),
maxZoom: parseInt( self.options.maxZoom ),
center: latlng,
mapTypeId: google.maps.MapTypeId[ self.options.mapType ],
disableDefaultUI: self.options.disableMapsUI
}
);
google.maps.event.addListener(self.map, "tilesloaded",
function() {
if(self.mapLoaded == false) {
self.mapLoaded = true;
self.loadLocations();
}
});
},
loadLocations: function() {
self.bounds = new google.maps.LatLngBounds();
self.infoWindow = new Array();
var addLocations = function() {
$.each(self.locations, function(i, location) {
self.bounds.extend(location);
var placeMarker = function() {
self.addMarker(location, self.options.locations[i]);
}
setTimeout(placeMarker, 100 * ( i + 1 ) );
});
if(self.options.fitBounds) {
self.map.fitBounds(self.bounds);
}
};
setTimeout(addLocations, 500);
},
addMarker: function(location, info) {
if (!location) return;
var marker = new google.maps.Marker(
{
position: location,
map: self.map
}
);
marker.setAnimation(google.maps.Animation.DROP);
self.addInfoWindow(marker, info)
},
addInfoWindow: function(marker, info) {
var content = info.content;
if(!content) {
content = info.address;
}
var infoWindow = new google.maps.InfoWindow();
infoWindow.setContent(content);
self.infoWindow.push(infoWindow);
if(self.options.locations.length > 1) {
google.maps.event.addListener(marker, 'click', function() {
$.each(self.infoWindow, function(i, item) {
item.close();
});
infoWindow.open(self.map, marker);
});
} else {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(self.map, marker);
});
infoWindow.open(self.map, marker);
}
// custom hack for postmap module
if(info.ratingid) {
google.maps.event.addListener(infoWindow, 'domready',
function() {
$.each(info.ratingid, function(i, rid) {
eblog.ratings.setup( 'ebpostmap_' + rid +
'-ratings' , true , 'entry' );
$('#ebpostmap_' + rid +
'-ratings').removeClass('ui-state-disabled');
$('#ebpostmap_' + rid +
'-ratings-form').find('.blog-rating-text').hide();
$('#ebpostmap_' + rid + '-ratings
.ratings-value').hide();
})
});
}
}
}}
);
module.resolve();
// controller: end
});
// require: end
});
media/browser.item.js000064400000026706151167475100010623 0ustar00//
module: start
EasyBlog.module("media/browser.item", function($) {
var module = this;
EasyBlog.Controller("Media.Browser.Item",
{
defaultOptions: {
"{itemTitle}": ".itemTitle",
"{itemIcon}": ".itemIcon",
"{childItem}": ".browserItem",
hasCustomHandler: ["folder"]
}
},
// Instance properties
function(self) {
var $Media, $Library, $Browser;
return {
init: function() {
$Media = self.media;
$Library = $Media.library;
$Browser = $Media.browser;
// Store a reference to the controller inside item data
// and also add a item-type class.
self.element
.data("item", self)
.addClass("item-type-" + self.meta().type);
// Bind to the remove event
self.meta().data.on("removed", function(){
$Browser.removeItem(self);
});
// Create item handler
self.createHandler();
},
meta: function() {
return $Library.getMeta(self.key);
},
place: function() {
return $Library.getPlace(self.key);
},
parentFolder: function() {
return $Browser.getItem($Library.getParentKey(self.key));
},
createHandler: function() {
if ($.inArray(self.meta().type, self.options.hasCustomHandler) < 0)
return;
var ItemHandler =
EasyBlog.Controller.Media.Browser.Item[$.String.capitalize(self.meta().type)];
if (ItemHandler===undefined) {
EasyBlog.require()
.script("media/browser.item." + self.meta().type)
.done(function() {
self.createHandler();
});
return;
}
self.handler = new ItemHandler(
self.element,
{
controller: {
media: self.media,
item: self
}
}
);
},
activate: function() {
self.setLayout();
if (self.handler) {
self.handler.activate();
}
},
remove: function() {
try {
// Destroy handler
if (self.handler) {
if (!self.handler._destroyed) {
self.handler.destroy();
}
}
if (self.element) {
self.element.remove();
}
} catch(e) {
}
},
isVisible: function() {
// TODO: Optimize routines using seed
var itemElement = self.element,
itemHeight = itemElement.outerHeight(),
itemTop = itemElement.offset().top,
itemBottom = itemTop + itemHeight,
itemField = self.media.browser.itemField(),
itemFieldTop = itemField.offset().top,
itemFieldBottom = itemFieldTop + itemField.height();
isVisible = !((itemTop < itemFieldTop && itemBottom <
itemFieldTop) ||
(itemTop > itemFieldBottom && itemBottom >
itemFieldBottom));
// #debug:start
if (self.media.options.debug.itemVisiblity) {
self.media.console("info", [
"Item visibility",
{
title: self.meta().title,
isVisible: isVisible,
item: self,
itemHeight: itemHeight,
itemTop: itemTop,
itemBottom: itemBottom,
itemFieldTop: itemFieldTop,
itemFieldBottom: itemFieldBottom
}
]);
}
// #debug:end
return isVisible;
},
setLayout: function(animate) {
// Nothing to be done for folders
if (self.meta().type=="folder") return;
// Call handler's setLayout if exists
if (self.handler && $.isFunction(self.handler.setLayout)) {
return self.handler.setLayout();
}
self.setIcon();
},
setIcon: function() {
// If icon is loading, skip.
if (self.setIcon.loading || self.setIcon.loaded) return;
// If no icon given or item has been destroyed, skip.
if (self.meta().icon===undefined || self._destroyed) return;
self.setIcon.loading = true;
$Browser.iconThread.addDeferred(function(thread) {
var itemIcon = self.itemIcon();
// Save on calculating this
// if we rely on a set layout seed
if (!self.isVisible()) {
self.setIcon.loading = false;
thread.reject();
} else {
var meta = self.meta(),
place = self.place(),
iconUrl = meta.icon.url;
if (!self.setIcon.useNaturalUrl &&
!/jomsocial|flickr/.test(place.id) &&
meta.type==="image") {
iconUrl = EasyBlog.baseUrl
+ "&view=media&layout=getIconImage"
+ "&place=" + encodeURIComponent(place.id)
+ "&path=" +
encodeURIComponent(self.meta().path)
+ "&format=image&tmpl=component";
}
self.element.addClass("loading-icon");
itemIcon
.image("get", iconUrl)
.done(function(){
self.element.removeClass("loading-icon");
self.setIcon.loaded = true;
self.setIcon.loading = false;
thread.resolve();
})
.fail(function(){
self.element.removeClass("loading-icon");
self.setIcon.loaded = false;
self.setIcon.loading = false;
thread.reject();
if (!self.setIcon.triedNaturalUrl) {
self.setIcon.useNaturalUrl = true;
self.setIcon.triedNaturalUrl = true;
}
});
}
});
}
}
}
);
EasyBlog.Controller("Media.Browser.Item.Folder",
{
defaultOptions: {
"{childItem}": ".browserItem"
}
},
// Instance properties
function(self) {
var $Media, $Library, $Browser;
return {
init: function() {
$Media = self.media;
$Library = $Media.library;
$Browser = $Media.browser;
self.element.empty();
},
items: {},
// This is to make sure parent class's setLayout isn't called.
setLayout: function() {
var place = self.item.place(),
status;
switch (place.ready.state()) {
case "pending":
status = "loading";
break;
case "rejected":
status = "error";
break;
case "resolved":
if (self.folderView && self.folderView.map.length > 0) {
status = "ready";
$Browser.browserPagination().show();
} else {
switch (place.populate.task.state()) {
case "pending":
status = "loading";
break;
case "rejected":
status = "error";
break;
case "resolved":
if (self.folderView && self.folderView.map.length < 1)
{
status = place.acl.canUploadItem ? "empty canUpload" :
"empty";
if (self.item.meta().place==="jomsocial" &&
self.item.meta().path===$Media.options.directorySeparator) {
status = "selectAlbum";
}
} else {
status = "ready";
}
$Browser.browserPagination().toggle(!/empty|selectAlbum/.test(status));
break;
}
}
break;
}
$Browser.currentFolderStatus(status);
$Browser.setItemLayout();
if(self.isChangingPage) {
self.isChangingPage = false;
} else {
self.populatePages();
}
},
populate: function(files) {
if ($Browser.itemField().hasClass("searching")) return;
var i, l = files.length;
var _items = self.items;
self.items = {};
// If there is nothing to show
if (l<1) {
// Detach everything
try {
// Wrapped in try catch because deleted items by may be involved.
self.childItem().detach();
} catch(e) {
}
// TODO: If this at an imposible range,
// revert to the last possible range.
// return;
} else {
for (i=0; i<l; i++) {
var key = files[i];
// This either return the newly created file,
// or the file that has been previously created.
var file = $Browser.createFile(key);
file.element
.appendTo(self.element);
self.items[key] = file;
delete _items[key];
}
for (key in _items) {
// TODO: Check if this will result in error for removed item
// Then remove the try catch
try {
_items[key].element.detach();
} catch(e) {
}
}
}
// If we are populating in the background,
// we don't need to set the item layout yet.
if (self.item.place().itemGroup.hasClass("active") &&
self.element.hasClass("focus")) {
self.setLayout();
}
},
activate: function() {
if (!self.folderView) {
self.folderView =
self.item.meta().data.views
.create({from: 0, to: $Browser.options.layout.maxIconPerPage});
self.folderView
.updated(self.populate);
}
self.setLayout();
},
populatePages: function() {
var page = self.totalPage();
if(page < 2) {
$Browser.browserPagination().hide();
} else {
$Browser.browserPagination().show();
$Browser.pageSelection().html('');
for(var i = 1; i <= page; i++) {
$Browser.view.paginationPage({
page: i
}).appendTo($Browser.pageSelection());
}
self.folderView.currentPage = self.folderView.currentPage || 1;
$Browser.paginationPage().removeClass('selected');
$Browser.paginationPage('.page' +
self.folderView.currentPage).addClass('selected');
}
},
totalPage: function() {
var totalItems = self.folderView.map.length,
basePage = totalItems % $Browser.options.layout.maxIconPerPage,
page = Math.floor((basePage > 0) ? totalItems /
$Browser.options.layout.maxIconPerPage + 1 : totalItems /
$Browser.options.layout.maxIconPerPage);
if($Browser.totalPage().text() != page) {
$Browser.totalPage().text(page);
}
return page;
},
// both getter and setter
currentPage: function(page, callback) {
var current = parseInt(self.folderView.currentPage);
if(isNaN(current)) {
current = 1;
self.folderView.currentPage = 1;
$Browser.paginationPage().removeClass('selected');
$Browser.paginationPage(':first').addClass('selected');
}
if(page===undefined) {
page = {
from: self.folderView.from
};
}
if($.isPlainObject(page) && page.from !== undefined) {
var totalItems = self.folderView.map.length,
currentPage = Math.floor(page.from /
$Browser.options.layout.maxIconPerPage) + 1;
}
page = currentPage || page;
if(page != current) {
var from = (page - 1) * $Browser.options.layout.maxIconPerPage,
to = from + $Browser.options.layout.maxIconPerPage;
if(from != page.from) {
self.folderView.select({from: from, to: to});
}
self.folderView.currentPage = page;
$Browser.paginationPage().removeClass('selected');
$Browser.paginationPage('.page' +
page).addClass('selected');
$Browser.trigger('pageChanged', [current, page]);
}
callback && callback();
return page;
},
next: function() {
self.changePage('next');
},
prev: function() {
self.changePage('prev');
},
changePage: function(type) {
self.isChangingPage = true;
var totalPage = self.totalPage(),
currentPage = self.currentPage();
if(type == 'next' && currentPage < totalPage) {
currentPage += 1;
}
if(type == 'prev' && currentPage > 1) {
currentPage -= 1;
}
self.currentPage(currentPage);
},
locateItem: function(meta) {
var meta = $Library.getMeta(meta),
page = self.getItemPage(meta);
if (page) {
self.currentPage(page, function(){
$Browser.focusItem(meta.key, true);
});
}
},
getItemPage: function(meta) {
var meta = $Library.getMeta(meta),
key = meta.key,
mapLength = self.folderView.map.length,
matchedIndex;
$.each(self.folderView.map, function(i, value) {
if(value == key) {
matchedIndex = i;
return false;
}
});
return (matchedIndex !== undefined) ? Math.floor(matchedIndex /
$Browser.options.layout.maxIconPerPage) + 1 : false;
}
}
}
);
module.resolve();
});
// module: end
media/browser.item.less000064400000021402151167475100011141
0ustar00(~"@{MediaManager}") {
.browserItemField {
position: relative;
text-align: left;
overflow: hidden;
height: 100%;
margin-left: 181px;
&.searching {
.browserItemGroup {
display: none !important;
}
.browserItemGroup.search-mode {
display: block !important;
}
}
// Hints: Start;
.hints {
background: #fff;
.hint {
display: none;
}
}
&.ready {
.hints {
display: none;
}
overflow-y: scroll;
}
&.loading {
.hint.hint-loading {
margin-top: (42px / 2) * -1;
display: block;
i {
width: 220px;
height: 19px;
background: url(loader.bar.gif) no-repeat;
display: inline-block;
}
}
}
&.empty {
.hint.hint-empty {
display: block;
.uploaderButton {
display: none;
}
}
&.canUpload {
.hint.hint-empty {
margin-top: -29px;
.uploaderButton {
display: inline-block;
height: 32px;
padding-left: 28px;
margin-top: 4px;
i {
.icon-media(7, 2);
display: block;
height: 16px;
left: 7px;
position: absolute;
top: 6px;
width: 16px;
}
}
}
}
}
&.emptySearch {
.hint.hint-emptySearch {
display: block;
}
}
&.error {
.hint.hint-error {
display: block;
}
}
&.selectAlbum {
.hint.hint-selectAlbum {
display: block;
}
}
&.flickr {
.hint.hint-flickr {
margin-top: (82px / 2) * -1;
display: block;
.hint-content {
height: auto;
padding: 0 100px 10px;
}
}
}
// Hints: End;
.browserItemGroup {
position: relative;
width: 100%;
display: none;
border-bottom: 1px solid #fff; /* Fixes flickering */
.clearfix();
.unselectable();
&.active {
display: block;
}
}
.browserItem {
position: relative;
cursor: pointer;
overflow: hidden;
i.loading {
background: url(loader.gif) center center no-repeat;
width: 16px;
height: 16px;
display: none;
}
&.loading-icon {
i.loading {
display: block;
}
}
.itemTitle {
font-size: 12px;
.unselectable();
}
&.loading-icon {
.itemIcon {
.opacity(0);
}
}
// Folder start
&.item-type-folder {
padding: 0;
display: none;
// Prevent width/height overriding by tile view
width: auto !important;
height: auto !important;
&.active,
&.focus {
display: block;
}
}
// Folder end
}
&.view-tile {
.browserItem {
.item-type-general() {
float: left;
.rounded(5px);
// It is perfectly fine to increase tile height
// as it won't affect the filling of available
// horizontal space.
padding-top: 10px;
padding-bottom: 28px;
i.loading {
.absolute-center(-16px);
margin-left: -10px;
}
.item-wrap {
display: block;
width: 100%;
height: 100%;
overflow: hidden;
.item-wrap-outer {
// Sets the boundary of the tile
display: table;
width: 100%;
height: 100%;
}
// Sets the content boundary of the tile
.item-wrap-inner {
display: table-cell;
padding: 0 10px;
text-align: center; // Allow horizontal
centering on child elements that are inline
vertical-align: middle; // Allow vertical
centering
}
}
.itemIcon {
display: inline; // So it can be centered
horizontally
z-index: 1; // Ensure this is above loading
indicator
// max-height: 100%;
max-width: 100%;
&.orientation-tall {
width: 100%;
// height: 100%;
}
&.orientation-wide {
width: 100%;
}
&.orientation-square {
width: 100%;
}
}
.itemTitle {
display: inline;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 18px;
margin-bottom: 10px;
span {
display: block;
margin: 0 10px;
line-height: 24px; // 18px + 6px cosmetic
.text-overflow();
white-space: nowrap;
overflow: hidden;
}
}
&.active {
.activeItemColorScheme();
}
}
&.item-type-file,
&.item-type-image,
&.item-type-audio,
&.item-type-video {
.item-type-general();
}
&.item-type-image {
.itemIcon {
// .box-shadow(0px 0px 3px 0 rgba(0, 0, 0, 0.5));
}
}
&.item-type-folder {
.clearfix();
}
}
}
&.view-list {
.browserItem {
line-height: 32px;
border-top: 1px solid #ddd;
.item-wrap {
position: relative;
}
i.loading {
position: absolute;
top: 8px;
left: 6px;
}
.folderItemGroup {
width: auto;
}
.item-type-general() {
height: 32px;
padding: 4px 8px;
&.active {
.activeItemColorScheme();
}
.itemIcon {
max-width: 32px;
max-height: 32px;
display: inline-block;
position: absolute;
z-index: 1;
}
.itemTitle {
display: block;
text-align: left;
position: relative;
z-index: 2;
padding: 0 0 0 37px;
}
}
&.item-type-file,
&.item-type-image,
&.item-type-audio,
&.item-type-video,
&.item-type-upload {
.item-type-general();
}
}
}
}
}
media/browser.js000064400000101054151167475100007654 0ustar00// module:
start
EasyBlog.module("media/browser", function($) {
var module = this;
// require: start
EasyBlog.require()
.library(
"image",
"easing",
"scrollTo",
"throttle-debounce"
)
.script(
"media/browser.item"
)
// .view(
// "media/browser",
// "media/browser.itemGroup",
// "media/browser.item",
// "media/browser.treeItemGroup",
// "media/browser.treeItem",
// "media/browser.paginationPage"
// )
// .language(
// 'COM_EASYBLOG_MM_CONFIRM_DELETE_ITEM',
// 'COM_EASYBLOG_MM_CANCEL_BUTTON',
// 'COM_EASYBLOG_MM_YES_BUTTON',
// 'COM_EASYBLOG_MM_ITEM_DELETE_CONFIRMATION'
// )
.done(function(){
var $Media, $Library, $Browser, $Uploader, $Prompt, DS;
// controller: start
EasyBlog.Controller("Media.Browser",
// Class properties
{
defaultOptions: {
view: {
browser : "media/browser",
itemGroup : "media/browser.item-group",
item : "media/browser.item",
treeItemGroup : "media/browser.tree-item-group",
treeItem : "media/browser.tree-item",
paginationPage : "media/browser.pagination-page"
},
path: "",
items: undefined,
mode: "browse",
layout: {
viewMode: "tile",
tileSize: 0.125,
scrollToItemDuration: 500,
scrollToItemEasing: 'swing',
iconMaxLoadThread: 8
},
search: {
chunkSize: 128,
chunkDelay: 500
},
"{modalHeader}" : ".modalHeader",
"{modalToolbar}" : ".modalToolbar",
"{modalContent}" : ".modalContent",
"{modalFooter}" : ".modalFooter",
"{modalPrompt}" : ".modalPrompt",
// Also shared with folder hint's .uploaderButton
"{modalUploaderButton}" : ".uploaderButton",
"{header}" : ".browserHeader",
"{content}" : ".browserContent",
"{footer}" : ".browserFooter",
"{treeToggleButton}": ".browserTreeToggleButton",
"{tileViewButton}" : ".browserTileViewButton",
"{listViewButton}" : ".browserListViewButton",
"{itemField}" : ".browserItemField",
"{itemGroup}" : ".browserItemGroup",
"{item}" : ".browserItem",
"{treeItemField}" : ".browserTreeItemField",
"{treeItemGroup}" : ".browserTreeItemGroup",
"{treeItem}" : ".browserTreeItem",
"{headerTitle}" : ".browserTitle",
"{headerSearch}" : ".browserSearch",
"{headerNavigation}": ".browserNavigation",
"{headerUpload}" : ".browserUploadButton",
"{footerStatus}" : ".browserStatus",
"{footerMessage}" : ".browserMessage",
"{itemActionSet}": ".browserItemActionSet",
"{itemFieldHints}": ".browserItemField .hints",
"{browserPagination}" : ".browserPagination",
"{currentPage}" : ".currentPage",
"{totalPage}" : ".totalPage",
"{prevPageButton}" : ".prevPageButton",
"{nextPageButton}" : ".nextPageButton",
"{pageSelection}" : ".pageSelection",
"{paginationPage}" : ".paginationPage",
"{searchInput}" : ".searchInput"
}
},
// Instance properties
function(self) {
return {
init: function() {
// Globals
$Media = self.media;
$Library = $Media.library;
$Browser = $Media.browser = self;
DS = $Media.options.directorySeparator;
self.iconThread = $.Threads({threadLimit:
self.options.layout.iconMaxLoadThread});
self.enqueue = $.Enqueue();
// Render browser UI
self.element
.addClass("browser")
.html(
self.view.browser()
);
// Browser navigation
self.headerNavigation()
.implement(
EasyBlog.Controller.Media.Navigation,
{
controller: self.controllerProps()
},
function() {
// Assign controller as a property of myself
self.navigation = this;
}
);
self.modalPrompt()
.implement(
EasyBlog.Controller.Media.Prompt,
{
controller: self.controllerProps()
},
function() {
$Prompt = self.promptDialog = this;
}
);
// Implement browser actions
self.element
.implement(
EasyBlog.Controller.Media.Browser.Actions,
{
controller: self.controllerProps()
},
function() {
self.actions = this;
}
);
self.search = $.debounce(500, self._search);
// Set to browse mode
self.mode("browse");
// Always revert to browser mode when going back to dashboard
$Media.element.bind("hideModal", function(){
self.mode("browse");
});
// Set browser layout
self.viewMode(self.options.layout.viewMode);
self.setLayout();
// Bind item group scroll event
self._bind(
self.itemField(),
"scroll",
$.debounce(250, self["{itemField} scroll"])
);
// Create all places
$.each($Library.places, function(id, place) {
self.createPlace(place);
});
// Determine which place is the initial place,
// if no intial place was given, automatically select
// the first place on the list.
self.activatePlace(self.options.initialPlace || $Library.places[0].id)
.done(
self.enqueue(function(place){
self.activateItem(place.baseFolder());
})
);
},
controllerProps: function(prop) {
return $.extend(
{
media: $Media
}, prop || {});
},
items: {},
createPlace: function(place) {
var place = $Library.getPlace(place);
place.treeItemGroup =
self.view.treeItemGroup()
.appendTo(self.treeItemField());
place.treeItem =
self.view.treeItem({title: place.title})
.addClass("type-place")
.data("place", place)
.appendTo(place.treeItemGroup);
place.itemGroup =
self.view.itemGroup()
.appendTo(self.itemField());
return place;
},
activatePlace: function(place) {
var place = $Library.getPlace(place);
if (place===undefined) return;
// Toggle active class on item group
self.itemGroup().removeClass("active");
place.itemGroup.addClass("active");
// Toggle active class on item tree
self.treeItem().removeClass("active");
place.treeItem.addClass("active");
// Create the activator task
if (!place.activator) {
place.activator = $.Deferred();
}
// If flickr is not authenticated yet
if (place.id==="flickr" && !place.options.associated)
{
// Show the flickr login prompt
$Browser.currentFolderStatus("flickr");
return place.activator;
}
if (!place.populated) {
// Mark as populated so this doesn't run again
place.populated = true;
// Add busy indicator
self.currentFolderStatus("loading");
var populator = /jomsocial|flickr/.test(place.id) ? place.populate() :
place.ready;
populator
.done(function() {
// Create base folder
var baseFolderItem = self.createFolder(place.baseFolder());
place.activator.resolveWith(place, [place, baseFolderItem]);
})
.fail(function() {
self.currentFolderStatus("error");
place.activator.rejectWith(place, arguments);
});
}
return place.activator;
},
getItem: function(item) {
// Skip going through all the tests below.
if (item===undefined) return;
// Item instance
if (item instanceof EasyBlog.Controller.Media.Browser.Item) {
return item;
}
// Item key
if (typeof item === "string") {
return self.items[item];
}
// Meta
if ($Library.isMeta(item)) {
return self.items[$Library.getKey(item)];
}
},
createItem: function(meta, options) {
var meta = $Library.getMeta(meta);
if (!meta) return;
// Create item, store to item map, return item.
return self.items[meta.key] =
new EasyBlog.Controller.Media.Browser.Item(
self.view.item({meta: meta}),
{
controller: {
key: meta.key,
media: $Media
}
}
);
},
createFolder: function(meta, options) {
var meta = $Library.getMeta(meta);
return self.getItem(meta) || (function(){
// Create & insert item
var item = self.createItem(meta);
var place = item.place(),
parentFolder = item.parentFolder();
((parentFolder) ?
item.element
.insertAfter(parentFolder.element)
:
item.element
.appendTo(place.itemGroup));
// Create & insert tree item
item.treeItem =
((parentFolder) ?
self.view.treeItem({title: meta.title})
.addClass("type-folder")
.css("marginLeft", 18 * (meta.path.split(DS).length - 1))
.insertAfter(parentFolder.treeItem)
:
place.treeItem
// Store a reference to the item
).data("item", item);
// Listen to the subfolder for changes
meta.data.views
.create({group: "folders"})
.updated(function(folders){
$.each(folders, function(i, key) {
self.createFolder(key);
});
});
return item;
})();
},
createFile: function(meta, options) {
var meta = $Library.getMeta(meta);
return self.getItem(meta) || self.createItem(meta);
},
removeItem: function(item) {
clearTimeout(self.removeItem.revert);
var item = self.getItem(item),
parentFolder = item.parentFolder();
// Remove item element & handler
item.remove();
// Remove treeItem if it exists
if (item.treeItem) {
item.treeItem.remove();
}
// Delete from entry
delete self.items[item.key];
// Don't revert if searching
if (self.itemField().hasClass("searching")) return;
self.removeItem.revert = setTimeout(function(){
if (parentFolder) {
self.activateItem(parentFolder);
}
}, 500);
},
focusItem: function(item, alsoActivate) {
var item = self.getItem(item);
// If item does not exist, skip.
if (!item) return;
if (!alsoActivate) {
// Set item as current item
self.currentItem(item);
// Remove the active class because
// we just want to focus it, not activate it.
item.element.removeClass("active");
} else {
self.activateItem(item);
}
self.scrollTo(item);
self.trigger("itemFocus", [item]);
},
locateItem: function(meta) {
if (self.itemField().hasClass("searching")) {
self.clearSearch(true);
}
var meta = $Library.getMeta(meta);
if (!meta) return;
self.activatePlace(meta.place)
.done(
self.enqueue(function() {
var isFolder = meta.type==="folder",
item = self.activateItem((isFolder) ? meta : meta.parentKey);
if (item===undefined) return;
if (!isFolder) {
item.handler.locateItem(meta);
}
// Quick monkey patch
var folderView = item.handler.folderView;
if (folderView) {
folderView.refresh();
}
})
);
},
activateItem: function(item) {
var item = self.getItem(item);
// If item does not exist, skip.
if (!item) return;
// Set item as current item
self.currentItem(item);
// Activating an item will trigger its handler, e.g.
// for folders it will generate items inside it.
item.activate();
self.trigger("itemActivate", [item]);
return item;
},
scrollTo: function(item) {
var item = self.getItem(item);
if (!item) return;
self.itemField()
.scrollTo(item.element, {
duration: self.options.layout.scrollToItemDuration,
easing: self.options.layout.scrollToItemEasing,
// This means that the item will be scrolled to 10% from the top of
the field
offset: {top: self.itemField().height() * -0.10}
});
},
currentItem: function(item) {
// Get current item.
var currentItem = self.currentItem.item;
// If current item has been destroyed,
if (currentItem && currentItem._destroyed) {
// set current item as undefined.
currentItem = self.currentItem.item = undefined;
}
// If this is a setter operation, get the item.
var item = self.getItem(item);
// If the new current item does not exist,
// just return current item.
if (!item) return currentItem;
// If the new current item has already been destroyed,
// just return current item.
if (item._destroyed) return currentItem;
// If previous current item exists,
if (currentItem) {
/// remove its active & focus class.
currentItem.element.removeClass("active focus");
// Also, if this item is a file,
// remove active & focus class from its parent folder.
if (currentItem.meta().type!=="folder") {
currentItem.parentFolder().element.removeClass("active
focus");
}
// Also remove active class from place's itemgroup
currentItem.place().itemGroup.removeClass("active");
}
// Add active & focus class to new current item
item.element.addClass("active focus");
// Lets see if this item is a folder.
var isFolder = item.meta().type=="folder";
// If new current item is file,
if (!isFolder) {
// then add a focus class to its parent folder.
item.parentFolder().element.addClass("focus");
}
// Add active class to item group
item.place().itemGroup.addClass("active");
// If this a folder, set current folder to the item itself.
// If this is a file, set current folder to the item's parent
folder.
self.currentFolder(
(isFolder) ? item : item.parentFolder()
);
// Set the navigation to the new current item.
self.navigation.setPathway(item.key);
// Set and return new current item.
return self.currentItem.item = item;
},
currentFolder: function(folder) {
// Get current folder
var currentFolder = self.currentFolder.folder;
// If current folder has been destroyed,
if (currentFolder && currentFolder._destroyed) {
// set current folder as undefined.
currentFolder = self.currentFolder.folder = undefined;
}
// If this is a setter operation, get the item.
var folder = self.getItem(folder);
// If the folder does not exist, return current folder.
// Also, as getter operation.
if (!folder) return currentFolder;
// Add active class to new current folder
self.treeItem().removeClass("active");
folder.treeItem.addClass("active");
// Also expand the place tree
if (folder.meta().path!==DS) {
folder.place().treeItemGroup.addClass("expanded");
}
// Also refresh view
if (folder.handler.folderView) {
if (folder.handler.refreshSeed!==self.folderRefreshSeed) {
folder.handler.folderView.refresh();
folder.handler.refreshSeed = self.folderRefreshSeed;
}
}
// Set and return new current folder.
return self.currentFolder.folder = folder;
},
currentFolderStatus: function(status) {
// Quick monkey patch to prevent double activation (also fixes
jomsocial)
if (self.itemField().hasClass("searching") &&
!/emptySearch|ready/.test(status)) return;
var lastStatus = self.currentFolderStatus.lastStatus;
// Getter
if (status === undefined) return lastStatus;
// Setter
if (typeof status !== "string") return;
// Remove last status
if (lastStatus) {
self.itemField()
.removeClass(lastStatus);
}
// Add new status
self.itemField().addClass(status);
return self.currentFolderStatus.lastStatus = status;
},
setLayout: function() {
// Skip if no layout has been set OR current modal is not us.
if (!$Media.layout || $Media.currentModal!=="browser") return;
var contentHeight;
self.modalContent()
.hide()
.height(
contentHeight =
self.element.height() -
self.modalHeader().outerHeight() -
self.modalToolbar().outerHeight() -
self.modalFooter().outerHeight()
)
.show();
if ($.browser.msie) {
self.treeItemField()
.height(contentHeight);
self.itemField()
.height(contentHeight);
self.itemFieldHints()
.height(contentHeight);
}
self.setItemLayout();
self.trigger("setLayout");
},
setItemStyle: function(force) {
// If this is not forced, skip setting item style
// if layout seed hasn't changed yet.
if (!force) {
// Get current layout seed
var seed = $Media.layout;
// If layout seed matches, no setting of item style is necessary.
if (self.setItemStyle.seed===seed) return;
// Set current layout seed
self.setItemStyle.seed = seed;
}
// Set up variables
var viewMode = self.viewMode(),
cssRules = {};
if (viewMode=="tile") {
var browserItem = "#EasyBlogMediaManager .browser
.browserItemField.view-tile .browserItem",
availableWidth = (function() {
var testElement =
$(document.createElement("DIV")).prependTo(self.itemField()),
availableWidth = testElement.width();
testElement.remove();
return availableWidth;
})(),
itemWidth = Math.floor(availableWidth * self.options.layout.tileSize),
itemHeight = itemWidth - 24;
cssRules[browserItem] = {
width: itemWidth + "px",
height: itemHeight + "px"
}
}
// Get the document head
var head = document.getElementsByTagName("head")[0];
// Remove previous stylesheet
if (self.itemStyle) {
try {
head.removeChild(self.itemStyle);
} catch(e) {};
}
// Create new stylesheet
self.itemStyle = document.createElement("style");
self.itemStyle.type = "text/css";
// Generate css text
var cssText = "";
$.each(cssRules, function(selector, props) {
cssText += selector + "{" + $.map(props, function(val, key){
return key + ":" + val; }).join(";") + "}\n";
});
// Append css text to stylesheet
if (self.itemStyle.styleSheet) {
self.itemStyle.styleSheet.cssText = cssText;
} else {
self.itemStyle.appendChild(document.createTextNode(cssText));
}
// Append stylesheet to head
head.appendChild(self.itemStyle);
},
setItemLayout: function() {
// Skip if no layout has been set OR current modal is not us.
if (!$Media.layout || $Media.currentModal!=="browser") return;
self.setItemStyle();
setTimeout(function() {
var items = [];
if (self.itemField().hasClass("searching")) {
// Monkey patch
if (self.searchItemGroup) {
items = self.searchItemGroup.find(".browserItem");
}
} else {
// If there's no current folder selected, don't do anything.
var currentFolder = self.currentFolder();
if (currentFolder===undefined) return;
items = currentFolder.childItem();
}
if (items.length < 1) return;
// Drill down
var itemFieldOffset = self.itemField().offset(),
item,
itemOffset,
j = items.length,
i = 1;
if (items.length < 1) return;
while (Math.abs(j - i) > 1) {
item = items.eq(i-1);
itemOffset = item.offset();
var itemBottom = itemOffset.top - itemFieldOffset.top +
item.outerHeight();
if (itemBottom < 0) {
i = Math.ceil((j + i) / 2);
} else {
j = i;
i = Math.ceil(j / 2);
}
}
// From the first found visible item,
// work backwards & forwards until all
// visible items on the viewport are covered
if (i===1) i = 0;
var b = i,
f = i,
min = 0,
max = items.length - 1;
setLayout = function(i) {
if (i < min || i > max) return false;
var item = items.eq(i).data("item");
if (!item.isVisible()) return false;
item.setLayout();
};
while (true) {
if (setLayout(b)===false) break;
b--;
}
while (true) {
if (setLayout(f)===false) break;
f++;
}
}, 0);
},
viewMode: function(mode) {
// Get current view mode
var currentMode = self.viewMode.mode;
// If a mode hasn't been set yet, take from options.
if (!currentMode) {
currentMode = self.viewMode.mode = self.options.layout.viewMode;
}
// Setter operation
if (mode!==undefined) {
// Force a seed refresh
self.setItemStyle.seed = null;
// Replace view mode
self.itemField()
.removeClass("view-" + currentMode)
.addClass("view-" + mode);
// Update current view mode
self.viewMode.mode = currentMode = mode;
// Set browser layout
self.setLayout();
// Scroll to current item (as its position have changed in different
view modes)
var currentItem = self.currentItem();
if (currentItem!==undefined) {
self.scrollTo(currentItem);
}
}
// Getter operation
return currentMode;
},
mode: function(mode) {
// Getter
if (mode===undefined) return self.mode.currentMode ||
"browse";
switch (mode) {
case "browse":
self.element
.removeClass("mode-blogimage")
.addClass("mode-browse");
// Quick monkey patch to hide jomsocial & flickr items
// under blog imagemode.
$.each($Library.places, function(i, place){
if (/jomsocial|flickr/.test(place.id)) {
place.treeItemGroup && place.treeItemGroup.show();
place.itemGroup && place.itemGroup.show();
}
});
break;
case "blogimage":
self.element
.addClass("mode-blogimage")
.removeClass("mode-browse");
// Quick monkey patch to hide jomsocial & flickr items
// under blog imagemode.
var currentItem = self.currentItem(),
switchToNearestLocalPlace = false;
if (currentItem) {
if (/jomsocial|flickr/.test(currentItem.place().id)) {
switchToNearestLocalPlace = true;
}
}
$.each($Library.places, function(i, place){
if (/jomsocial|flickr/.test(place.id)) {
place.treeItemGroup && place.treeItemGroup.hide();
place.itemGroup && place.itemGroup.hide();
} else {
if (switchToNearestLocalPlace) {
switchToNearestLocalPlace = false;
if (place.treeItem) {
place.treeItem.click();
}
}
}
});
break;
}
self.mode.currentMode = mode;
},
"{self} itemActivate": function(el, event, item) {
self.itemActionSet().removeClass("active");
if (item.meta().type=="folder") {
self.itemActionSet(".type-folder").addClass("active");
} else {
self.itemActionSet(".type-item").addClass("active");
}
},
"{headerNavigation} activate": function(el, event, key) {
self.activateItem(key);
},
"{tileViewButton} click": function(el, event) {
el.addClass("active")
.siblings()
.removeClass("active");
self.viewMode("tile");
},
"{listViewButton} click": function(el, event) {
el.addClass("active")
.siblings()
.removeClass("active");
self.viewMode("list");
},
"{treeItem} click": function(el, event) {
self.clearSearch(true);
var item = el.data("item");
if (el.hasClass("type-place")) {
var place = el.data("place");
// If the toggle icon was clicked
if ($(event.target).hasClass("treeItemToggle")) {
// Expand the tree group
place.treeItemGroup.toggleClass("expanded");
}
self.activatePlace(place)
.done(
self.enqueue(function(place, baseFolder) {
if (place.id==="jomsocial") {
place.treeItemGroup.addClass("expanded");
}
self.activateItem(baseFolder);
})
);
return;
}
self.activateItem(item);
},
"{itemField} scroll": function(el, event) {
self.setItemLayout();
},
"{item} click": function(el, event) {
// Prevents click event from being bubbled back to parent folder item
event.stopPropagation();
var item = el.data("item");
if (item===undefined) return;
var place = item.place();
self.activatePlace(place)
.done(
self.enqueue(function(place, baseFolder) {
// Monkey patch to work with search
// self.activateItem(baseFolder);
self.activateItem(item);
})
);
},
"{item} dblclick": function(el, event) {
// Prevents click event from being bubbled back to parent folder item
event.stopPropagation();
var item = el.data("item");
// #debug:start
if (event.shiftKey) {
$Media.console("log", [item]);
return;
}
// #debug:end
if (item===undefined) return;
if (item.meta().type=="folder") return;
if(self.mode.currentMode==='blogimage') {
if (item.meta().type=="image") {
// We are getting the raw meta
var meta = $Library.meta[item.key];
EasyBlog.dashboard.blogImage.setImage(meta);
$Media.hide();
}
} else {
$Media.edit(item.key);
}
},
"{modalUploaderButton} click": function() {
var item = self.currentFolder();
$Media.upload((item.place().acl.canUploadItem) ? item.key :
"");
},
"{self} modalActivate": function(el, event, meta, mode) {
if (mode!==undefined) {
self.mode(mode);
}
var meta = $Library.getMeta(meta) || self.currentItem().meta();
if (meta) {
self.locateItem(meta);
}
},
"{prevPageButton} click": function() {
var folder = $Browser.currentFolder();
folder.handler.changePage('prev');
},
"{nextPageButton} click": function() {
var folder = $Browser.currentFolder();
folder.handler.changePage('next');
},
// "{pageSelection} change": function(el) {
// var folder = $Browser.currentFolder(),
// page = el.val();
// folder.handler.currentPage(page);
// },
"{pageSelection} click": function(el) {
if(self.paginationPage().length > 1) {
el.toggleClass('expanded');
}
},
"{paginationPage} click": function(el) {
if(self.pageSelection().hasClass('expanded') &&
!el.hasClass('selected')) {
var page = el.data('page'),
folder = $Browser.currentFolder();
folder.handler.isChangingPage = true;
folder.handler.currentPage(page);
}
},
"{window} click": function(el, event) {
var className = $(event.target).attr('class');
if(!/pageSelection|paginationPage/.test(className)) {
if(self.pageSelection().hasClass('expanded')) {
self.pageSelection().removeClass('expanded');
}
}
},
_search: function(keyword) {
if (!self.itemBeforeSearch) {
self.itemBeforeSearch = self.currentItem().meta();
}
self.element.addClass("searching");
self.itemField()
.addClass("searching");
if (!self.searchItemGroup) {
self.searchItemGroup =
self.view.itemGroup()
.appendTo(self.itemField());
}
self.searchItemGroup
.addClass("active search-mode");
var timer;
self.searchView =
$Library.search(keyword)
.create({from: 0, to: 300})
.updated(function(files){
var l = files.length;
if (l < 1) {
timer = setTimeout(function(){
$Browser.currentFolderStatus("emptySearch");
}, 500);
return;
}
clearTimeout(timer);
$Browser.currentFolderStatus("ready");
for (i=0; i<l; i++) {
var key = files[i];
// This either return the newly created file,
// or the file that has been previously created.
var file = $Browser.createFile(key);
file.element
.appendTo(self.searchItemGroup);
}
self.setItemLayout();
});
},
clearSearch: function(cancel) {
self.folderRefreshSeed = $.uid();
if (cancel) {
self.searchInput().val("").blur();
}
self.element.removeClass("searching");
self.itemField()
.removeClass("searching");
if (self.searchItems) {
$.each(self.searchItems, function(i, item){
$(item).detach();
});
}
if (self.searchItemGroup) {
self.searchItemGroup
.find(".browserItem")
.detach();
self.searchItemGroup.removeClass("active");
}
if (self.searchView) {
self.searchView.destroy();
}
delete self.searchView;
if (self.itemBeforeSearch) {
self.locateItem(self.itemBeforeSearch);
}
},
"{searchInput} focusin": function(el) {
el.parent().addClass("active");
if ($.trim(el.val())!=="") {
el.parent().addClass("showCancelButton");
}
},
"{searchInput} focusout": function(el) {
setTimeout(function(){
if ($.trim(el.val())==="") {
el.parent().removeClass("active showCancelButton");
}
}, 50);
},
"{searchInput} keyup": function(el) {
var keyword = $.trim(el.val());
if (keyword==="") {
el.parent().removeClass("showCancelButton");
self.clearSearch();
delete self.itemBeforeSearch;
return;
}
el.parent().addClass("showCancelButton");
self.search(keyword);
}
}}
);
// controller: end
EasyBlog.Controller("Media.Browser.Actions",
{
defaultOptions: {
// Item actions
"{customizeItemButton}": ".customizeItemButton",
"{insertAsGalleryButton}": ".insertAsGalleryButton",
"{insertItemButton}": ".insertItemButton",
"{insertBlogImageButton}": ".insertBlogImageButton",
// Create folder prompt
"{createFolderButton}" :
".createFolderButton",
"{confirmCreateFolderButton}" : ".createFolderPrompt
.confirmCreateFolderButton",
"{folderPath}" : ".createFolderPrompt
.folderPath",
"{folderCreationPath}" : ".createFolderPrompt
.folderCreationPath",
"{folderInput}" : ".createFolderPrompt
.folderInput",
"{folderCreationFailedReason}": ".createFolderPrompt
.folderCreationFailedReason",
// Remove item prompt
"{removeItemButton}" : ".removeItemButton",
"{removeItemFilename}" : ".removeItemPrompt
.removeItemFilename",
"{confirmRemoveItemButton}":
".confirmRemoveItemButton",
"{removeItemFailedReason}" : ".removeItemPrompt
.removeItemFailedReason",
// Flickr login
"{flickrLoginButton}": ".flickrLoginButton",
// Search
"{cancelSearchButton}": ".cancelSearchButton",
// Error prompt
"{retryPopulateButton}": ".retryPopulateButton"
}
},
function(self) { return {
init: function() {
},
"{self} itemActivate": function(el, event, item) {
self.item = item;
var acl = item.place().acl;
// If the current file can't be removed, hide remove item button.
self.removeItemButton()
.toggle(acl.canRemoveItem);
self.createFolderButton()
.toggle(acl.canCreateFolder);
// Show insert blog image button if we are selecting blog image
self.insertBlogImageButton().toggle($Browser.mode()==="blogimage"
&& item.meta().type==="image");
},
// Item actions
"{customizeItemButton} click": function() {
$Media.edit(self.item.key);
},
"{insertAsGalleryButton} click": function() {
$Media.insert(self.item.key);
},
"{insertItemButton} click": function() {
$Media.insert(self.item.key);
},
"{insertBlogImageButton} click": function() {
// We are getting the raw meta
var meta = $Library.meta[self.item.key];
EasyBlog.dashboard.blogImage.setImage(meta);
$Media.hide();
},
// Create folder prompt
"{createFolderButton} click": function() {
$Prompt.get("createFolderPrompt")
.show()
.state("default");
var currentFolder = $Browser.currentFolder();
// Set folder path
self.folderPath()
.html(currentFolder.meta().friendlyPath);
self.folderInput()
.focus()[0]
.select();
},
"{folderInput} keyup": function(el, event) {
if (event.keyCode==13) {
self.confirmCreateFolderButton().click();
}
},
"{confirmCreateFolderButton} click": function() {
var folderName = $.trim(self.folderInput().val());
// Don't do anything if folder name not given
if (folderName==="") return;
// Get friendly path of the new folder
var parentMeta = $Browser.currentFolder().meta(),
path = parentMeta.friendlyPath + DS + folderName;
// and set it to the folder creation path
self.folderCreationPath()
.html(path);
// Show progress state
var createFolderPrompt = $Prompt.get("createFolderPrompt");
createFolderPrompt.state("progress");
// Create folder on server
$Library.createFolder(parentMeta, folderName)
.done(function(meta){
var item = $Browser.createFolder(meta);
createFolderPrompt.hide();
$Browser.activateItem(item);
})
.fail(function(message){
self.folderCreationFailedReason()
.html(message);
createFolderPrompt.state("fail");
});
},
// Remove item prompt
"{removeItemButton} click": function() {
self.removeItemFilename()
.html(self.item.meta().title);
// Show prompt
$Prompt.get("removeItemPrompt")
.show()
.state("default");
},
"{confirmRemoveItemButton} click": function(el) {
var removeItemPrompt = $Prompt.get("removeItemPrompt");
removeItemPrompt.state("progress");
$Library.removeRemoteMeta(self.item.key)
.done(function(){
removeItemPrompt.hide();
})
.fail(function(message){
self.removeItemFailedReason()
.html(message);
removeItemPrompt.state("fail");
});
},
"{flickrLoginButton} click": function(el) {
var login = el.data("login"),
callback = el.data("callback"),
activateFlickrPlace = $Browser.enqueue(function(){
$Browser.activatePlace("flickr")
.done(
$Browser.enqueue(function(place, baseFolder){
$Browser.activateItem(baseFolder);
})
);
});
window[callback] = function() {
var place = $Library.getPlace("flickr");
// Flickr is now associated
place.options.associated = true;
// Reactivate flickr place
activateFlickrPlace();
}
window.open(login, "Flickr Login", 'scrollbars=no,
resizable=no, width=650, height=700');
},
"{cancelSearchButton} click": function() {
$Browser.clearSearch(true);
},
"{retryPopulateButton} click": function() {
var place = self.item.place();
delete place.activator;
place.populated = false;
place.treeItem.click();
}
}}
);
// controller: end
module.resolve();
});
// require: end
});
// module: end
media/browser.less000064400000020503151167475110010206
0ustar00(~"@{MediaManager}") {
.browser {
background: #fff;
.modalTitle {
.modalTitleSnippet { display: none; }
}
&.mode-browse {
.title-browse { display: inline; }
.title-blogimage { display: none; }
}
&.mode-blogimage {
.title-browse { display: none; }
.title-blogimage { display: inline; }
.insertItemButton,
.customizeItemButton,
.insertAsGalleryButton {
display: none !important;
}
}
&.searching {
.browserPagination {
display: none !important;
}
}
.browserHeader {
.browserItemActionSet {
display: none;
&.active {
display: block;
}
.green-button {
margin-right: 0 !important;
}
}
.insertItemButton {
> i {
.icon-media(7, 4);
}
}
.insertBlogImageButton {
> i {
.icon-media(7, 4);
}
display: none;
}
.customizeItemButton {
> i {
.icon-media(8, 4);
}
}
.insertAsGalleryButton {
> i {
.icon-media(9, 4);
width: 20px !important;
}
}
.removeItemButton {
padding-left: 27px !important;
> i {
.icon-media(8, 1);
}
}
}
.browserContent {
position: relative;
z-index: 2;
}
.browserFooter {
position: relative;
.clearfix();
.footerButtons() {
padding-left: 6px + 16px + 4px !important;
> i {
display: inline-block;
position: absolute;
top: 4px;
left: 6px;
width: 16px;
height: 16px;
}
}
.browserTreeItemFooter {
width: 180px;
height: 36px;
border-right: 1px solid #CCCCCC;
float: left;
position: relative;
.createFolderButton {
.footerButtons();
> i {
.icon-media(10, 4);
}
}
}
.browserItemFooter {
height: 36px;
margin-left: 181px;
border-left: 1px solid #FFFFFF;
position: relative;
}
.browserPagination {
i {
display: block;
width: 16px;
height: 16px;
position: absolute;
top: 5px;
left: 6px;
}
.prevPageButton {
.border-radius(0px, 0px, 3px, 3px);
float: right;
padding-left: 20px;
> i {
.icon-media(3, 1);
}
}
.nextPageButton {
.border-radius(3px, 3px, 0px, 0px);
float: right;
padding-left: 20px;
> i {
.icon-media(2, 1);
}
}
.pageNumber {
float: right;
height: 27px;
width: 72px + 1;
margin-left: -1px;
position: relative;
.box-shadow(0 1px 0 rgba(255,255,255,0.7));
}
.pageSelection {
margin: 0;
padding: 0;
border-bottom-color: #999999;
border-left: none;
border-right: none;
position: absolute;
bottom: 0;
width: 72px;
height: 25px;
list-style: none;
background: white;
border: 1px solid #aaa;
cursor: pointer;
overflow: none;
.paginationPage {
display: none;
&.selected {
display: block;
}
}
&.expanded {
max-height: 200px;
min-height: 75px;
height: auto;
overflow-y: scroll;
.paginationPage {
display: block;
&.selected {
.activeItemColorScheme();
}
}
}
}
.paginationPage {
height: 25px;
line-height: 25px;
text-align: center;
cursor: pointer;
&:hover {
.hoverItemColorScheme();
}
}
.pageBreakdown {
display: none;
}
}
}
.browserViewButtons {
position: absolute;
top: 4px;
right: 4px;
button.button {
float: left;
padding: 0 14px !important; // (16px + 6px + 6px) / 2
position: relative;
> i {
display: block;
width: 16px;
height: 16px;
position: absolute;
top: 4px;
left: 6px;
}
&.active {
background: #777 !important;
filter: none !important; // Fixes IE not having dark
background
}
&.browserListViewButton {
.border-radius(0px, 0px, 3px, 3px);
border-right: none;
> i {
.icon-media(9, 2);
}
}
&.browserListViewButton.active {
> i {
.icon-media(9, 1);
}
+ .browserTileViewButton {
border-left: none;
}
}
&.browserTileViewButton {
.border-radius(3px, 3px, 0px, 0px);
> i {
.icon-media(10, 2);
}
}
&.browserTileViewButton.active {
> i {
.icon-media(10, 1);
}
}
}
}
.modalPrompt {
.modalPromptDialog {
.emphasis() {
font-weight: bold;
color: black;
word-wrap: break-word;
}
&.createFolderPrompt {
height: 200px;
margin-top: -100px - 48px;
.folderPath {
.emphasis();
}
.folderInput {
width: 220px;
}
.folderCreationPath {
.emphasis();
}
}
&.removeItemPrompt {
height: 220px;
margin-top: -110px - 48px;
.removeItemFilename {
.emphasis();
}
}
&.flickrLoginPrompt {
.flickrLogin {
margin: 15px;
border: none;
overflow: hidden;
width: 400px;
}
}
}
}
}
}
media/browser.search.less000064400000002337151167475110011457
0ustar00(~"@{MediaManager}") {
.browserSearch {
float: right;
position: relative;
margin: 8px;
background: darken(#343A44, 5%);
height: 28px;
width: 150px;
.rounded(3px);
border: 1px solid darken(#343A44, 10%);
.box-shadow(~"inset 0px 2px 2px 0px rgba(0, 0, 0, 0.2), 0 1px
0 rgba(255, 255, 255, 0.2)");
i {
display: inline-block;
width: 16px;
height: 16px;
position: absolute;
top: 6px;
left: 4px;
.icon-media(3, 2);
cursor: pointer;
}
&.active {
i { .icon-media(4, 2); }
}
&.showCancelButton:hover {
i {
.icon-media(5, 2);
}
}
padding-left: 22px;
.searchInput {
background: transparent;
border: none !important;
width: 95%;
line-height: 30px;
height: 30px;
font-size: 12px;
color: #fff;
box-shadow: none !important;
padding: 0;
margin: 0;
}
.searchInput:focus {
box-shadow: none !important;
}
}
}
media/browser.treeItem.less000064400000003643151167475110011771
0ustar00(~"@{MediaManager}") {
.browserTreeItemField {
position: relative;
overflow: auto;
float: left;
background: #f5f5f5;
width: 180px;
height: 100%;
border-right: 1px solid #ccc;
}
.browserTreeItemGroup {
.clearfix();
border-bottom: 1px solid #F5F5F5;
&.expanded {
.browserTreeItem {
&.type-folder {
display: block;
}
&.type-place {
i {
.icon-media(14, 4);
}
&.active i {
.icon-media(14, 3);
}
}
}
}
}
.browserTreeItem {
position: relative;
cursor: pointer;
padding: 3px 3px 3px 22px;
text-align: left;
height: 16px;
line-height: 16px;
white-space: nowrap;
i {
width: 16px;
height: 16px;
position: absolute;
top: 3px;
left: 3px;
}
.treeItemTitle {
.unselectable();
}
&.active {
.activeItemColorScheme();
}
&.loading i {
background: url(loader.gif) no-repeat center center !important;
}
&.type-folder {
display: none;
padding-left: 4px + 16px + 4px;
margin-left: 18px;
margin-right: 4px;
overflow: hidden;
padding-right: 4px;
.text-overflow();
.rounded(3px);
min-width: 32px;
i {
.icon-media(10, 3);
left: 4px;
}
}
&.type-place {
i {
.icon-media(14, 2);
}
&.active i {
.icon-media(14, 1);
}
}
}
}
media/common.less000064400000013337151167475110010022
0ustar00.icon-media(@x,@y) {
background: url(icon.media.png) no-repeat;
.spriteGrid-32(@x, @y);
}
.normalGreenButton() {
color: white !important;
border: 1px solid #3a950b !important;
.text-shadow(1px, 1px, 0, #2f7e07);
.box-shadow(0 1px 0 rgba(255,255,255,0.7));
.vertical-gradient(#7ad242, #4abb10);
&:hover {
.vertical-gradient(lighten(#7ad242, 3%), lighten(#4abb10, 3%));
}
}
.activeItemColorScheme() {
.vertical-gradient(#4d71b5, #2f59a8);
color: white;
}
.hoverItemColorScheme() {
background: lighten(#2f59a8, 45%);
}
.normalHeaderColorScheme() {
.vertical-gradient(#f5f5f5, #dfdfdf);
}
.hoverHeaderColorScheme() {
.vertical-gradient(lighten(#f5f5f5, 3%), lighten(#dfdfdf, 3%));
}
.activeHeaderColorScheme() {
.vertical-gradient(#dddddd, #c9c9c9);
border-color: #b8b8b8;
button.button {
.vertical-gradient(#fff, #dadada);
&:hover {
.vertical-gradient(lighten(#fff, 3%), lighten(#dadada, 3%));
}
}
}
.insetButton() {
border: 1px solid #aaa;
border-bottom-color: #999;
&.active {
border: 1px solid darken(#aaa, 30%);
border-bottom-color: darken(#999, 10%);
}
&.green-button {
@lightGreen: #87AB60;
@darkGreen: #74954F;
border: 1px solid @lightGreen;
border-bottom-color: @darkGreen;
&.active {
border: 1px solid darken(@lightGreen, 30%);
border-bottom-color: darken(@darkGreen, 10%);
}
}
}
(~"@{MediaManager}") {
.button-tooltip {
background: none repeat scroll 0 0 #FFFFFF;
border: 1px solid #BBBBBB;
border-radius: 2px 2px 2px 2px;
padding: 10px;
.text-shadow(0, 0, 0, transparent);
color: #444 !important;
position: absolute;
text-align: left;
width: 250px;
z-index: 2;
> i {
background:
url("../../../../components/com_easyblog/themes/dashboard/system/images/a-point-top.png")
no-repeat top left transparent;
display: block;
width: 15px;
height: 8px;
position: absolute;
top: -8px;
right: 12px;
z-index: 3;
}
}
.hints {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #f6f6f6;
text-align: center;
z-index: 1;
.hint {
margin-top: -11px;
position: absolute;
top: 50%;
width: 100%;
}
.hint-label {
font-size: 22px;
line-height: 22px;
padding: 12px;
display: block;
color: #bbb;
.text-shadow(1px, 1px, 0px, #fff);
}
.hint-content {
display: block;
font-size: 12px;
height: 22px;
line-height: 22px;
color: #999;
.text-shadow(1px, 1px, 0, #fff);
}
}
button.button {
display: inline-block;
background: #fafafa;
margin: 0;
padding: 0 8px !important;
height: 28px;
font-weight: bold;
font-family: 'Lucida Grande',Tahoma,sans-serif;
font-size: 11px;
line-height: 11px;
color: #555 !important;
text-decoration: none !important;
width: auto;
overflow: visible;
vertical-align: top;
cursor: pointer;
position: relative;
z-index: 1;
text-transform: none !important;
.insetButton();
.box-shadow(0 1px 0 rgba(255,255,255,0.7));
.rounded(3px);
.vertical-gradient(#fff, #eee);
.text-shadow(1px, 1px, 0px, #fff);
&&::-moz-focus-inner {
border: 0;
padding: 0;
margin: 0;
}
&.hover,
&:hover {
.vertical-gradient(lighten(#fff, 5%), lighten(#eee, 5%));
}
&.active {
background: #999;
.box-shadow(~"0 1px 0 rgba(255,255,255,0.7), 0 2px 5px
rgba(0, 0, 0, 0.4) inset");
color: #fff !important;
}
&.green-button {
@darkGreen: #85BF46;
@lightGreen: #9FDA5F;
@shadowGreen: #74954F;
color: #fff !important;
.text-shadow(1px, 1px, 0px, @shadowGreen);
.vertical-gradient(@lightGreen, @darkGreen);
&:hover {
.vertical-gradient(lighten(@lightGreen, 5%),
lighten(@darkGreen, 5%));
}
}
.button-tooltip {
display: none;
top: 28px + 8px + 2px;
right: -1px;
}
&.hover,
&:hover {
.button-tooltip {
display: block;
}
}
}
@-moz-document url-prefix() {
progress {
}
}
progress[role] {
display: inline-block;
position: relative;
width: 90%;
background:#fff;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
progress[role],
progress[aria-valuenow]:before {
background-color: #5af;
}
progress[role],
progress[role]:after {
background-repeat:repeat-x;
background-position: 0 0;
-moz-background-size: auto 100%;
-webkit-background-size: auto 100%;
background-size: auto 100%;
}
/* Determinate only overrides */
progress[aria-valuenow] {
background: #eee;
}
progress[aria-valuenow]:before {
content: "";
display: block;
height: 100%;
}
/* Overlay */
progress[role]:after {
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
}
media/constrain.js000064400000013351151167475110010174
0ustar00EasyBlog.module('media/constrain', function($) {
var module = this;
EasyBlog.require().library('image').done(function() {
$.fn.constrain = function() {
var constrain = this.data('constrain');
if(constrain instanceof $.Constrain) {
if(arguments.length > 0) {
constrain.update(arguments[0]);
} else {
return constrain;
}
} else {
constrain = new $.Constrain(this, arguments[0]);
this.data('constrain', constrain);
}
};
$.Constrain = function(element, options) {
var self = this;
var defaultOptions = {
selector: {
width: '.inputWidth',
height: '.inputHeight',
constrain: '.inputConstrain'
},
forceConstrain: false
}
var userOptions = options ? options : {};
self.options = $.extend(true, {}, defaultOptions, userOptions);
self.options.element = {
width: element.find(self.options.selector.width).data('type',
'width'),
height:
element.find(self.options.selector.height).data('type',
'height'),
constrain: element.find(self.options.selector.constrain)
}
self.options.initial = self.options.initial || self.options.source;
if(self.options.allowedMax !== undefined) {
self.options.max = $.Image.resizeWithin(self.options.source.width,
self.options.source.height, self.options.allowedMax.width,
self.options.allowedMax.height);
self.options.initial.width = Math.min(self.options.max.width,
self.options.initial.width);
self.options.initial.height = Math.min(self.options.max.height,
self.options.initial.height);
}
self.options.element.width.data('initial',
self.options.initial.width);
self.options.element.height.data('initial',
self.options.initial.height);
self.fieldValues(self.calculate('width',
self.options.initial));
$.each([self.options.element.width, self.options.element.height],
function(i, element) {
var thisType = element.data('type'),
oppositeType = self.getOppositeType(thisType),
element = $(element),
opposite = self.options.element[oppositeType];
element.bind('keyup', function(event) {
if(event.keyCode == 9 || event.keyCode == 16) {
return false;
}
self.fieldValues(self.calculate(thisType));
});
element.bind('blur', function() {
if(!self.options.element.constrain.is(':checked') &&
$.trim(element.val()) == '') {
element.val(self.options.initial[thisType]);
}
if($.trim(element.val()) == '' &&
$.trim(opposite.val()) == '') {
element.val(self.options.initial[thisType]);
opposite.val(self.options.initial[oppositeType]);
}
});
});
$(self.options.element.constrain).bind('change', function() {
if($(this).is(':checked')) {
var values = self.fieldValues(),
type = (values.width === '') ? 'height' :
'width';
self.fieldValues(self.calculate(type));
}
});
};
$.extend($.Constrain.prototype, {
calculate: function(thisType, values) {
var self = this,
values = (values !== undefined) ? values : self.fieldValues(),
oppositeType = self.getOppositeType(thisType),
thisMax = self.options.max ? self.options.max[thisType] : undefined,
oppositeMax = self.options.max ? self.options.max[oppositeType] :
undefined,
thisSource = self.options.source[thisType],
oppositeSource = self.options.source[oppositeType],
thisVal = values[thisType],
oppositeVal = values[oppositeType];
thisVal = (thisVal != '' && thisMax &&
thisVal > thisMax) ? thisMax : thisVal;
if(this.enforceConstrain()) {
if(thisVal == '') {
oppositeVal = '';
} else {
var ratio = thisSource / thisVal;
oppositeVal = Math.round(oppositeSource / ratio);
if(oppositeMax && oppositeVal > oppositeMax) {
oppositeVal = oppositeMax;
}
}
}
var result = {};
result[thisType] = thisVal;
result[oppositeType] = oppositeVal;
return result;
},
getOppositeType: function(type) {
return (type == 'width') ? 'height' :
'width';
},
getInput: function(type) {
var self = this,
value = self.options.element[type].val();
value = $.trim(value);
value = value.replace(new RegExp('[^0-9.]','g'),
"");
value = parseInt(value, 10);
return isNaN(value) ? '' : value;
},
fieldValues: function(values) {
var self = this,
result = {};
if(values === undefined) {
// getter
result.width = self.getInput('width');
result.height = self.getInput('height');
} else {
// setter
self.options.element.width.val(Math.floor(values.width));
self.options.element.height.val(Math.floor(values.height));
result = values;
}
return result;
},
enforceConstrain: function() {
var self = this;
return self.options.forceConstrain ? true :
(self.options.element.constrain.length < 1) ? true :
self.options.element.constrain.is(':checked');
},
update: function(options) {
var self = this;
// set initial first because initial might have previous source value
self.options.initial = options.initial || options.source ||
self.options.initial;
if(options.allowedMax !== undefined && options.source !==
undefined) {
options.max = $.Image.resizeWithin(options.source.width,
options.source.height, options.allowedMax.width,
options.allowedMax.height);
self.options.initial.width = Math.min(options.max.width,
self.options.initial.width);
self.options.initial.height = Math.min(options.max.height,
self.options.initial.height);
}
self.options = $.extend(true, {}, self.options, options);
values = this.calculate('width', {
width: self.options.initial.width || self.options.source.width,
height: self.options.initial.height || self.options.source.height
});
this.fieldValues(values);
}
});
module.resolve();
});
});
media/editor.audio.js000064400000005706151167475110010567 0ustar00//
module: start
EasyBlog.module("media/editor.audio", function($){
var module = this;
// require: start
EasyBlog.require()
.view(
"media/editor.audio",
"media/editor.audio.player"
)
.done(function() {
// controller: start
EasyBlog.Controller(
"Media.Editor.Audio",
{
defaultOptions: {
view: {
panel: "media/editor.audio",
player: "media/editor.audio.player"
},
player: {
width: 400,
height: 24,
autostart: false,
controlbar: "bottom",
backcolor: "#333333",
frontcolor: "#ffffff",
modes: [
{
type: 'html5'
},
{
type: 'flash',
src: $.rootPath +
"components/com_easyblog/assets/vendors/jwplayer/player.swf"
},
{
type: 'download'
}
]
},
"{editorPreview}": ".editorPreview",
"{editorPanel}": ".editorPanel",
"{playerContainer}": ".playerContainer",
// Insert options
"{autoplay}": ".autoplay"
}
},
function(self) {
var $Media, $Library, $Browser;
return {
init: function() {
$Media = self.media;
$Library = $Media.library;
$Browser = $Media.browser;
var meta = self.meta(),
place = self.place();
// Panel
self.editorPanel()
.html(self.view.panel({
meta: meta
}))
.implement(
EasyBlog.Controller.Media.Editor.Panel,
{},
function() {
// Keep a reference to this controller
self.panel = this;
}
);
// Preview
self.editorPreview()
.implement(
EasyBlog.Controller.Media.Editor.Preview,
{},
function() {
// Keep a reference to this controller
self.preview = this;
self.initPlayer();
}
);
},
initPlayer: function() {
EasyBlog.require()
.script($.rootPath +
"/components/com_easyblog/assets/vendors/jwplayer/jwplayer.js")
.done(function($) {
var meta = self.meta(),
place = self.place(),
id = "player-" + $.uid(),
options = $.extend(self.options.player, {
id: id,
file: self.meta().url,
}),
player = self.view.player({
id: id,
meta: meta,
options: options
});
// Append player container
self.preview.container()
.append(player);
self.player = jwplayer(id).setup(options);
self.preview.resetLayout();
});
},
meta: function() {
return $Library.getMeta(self.key);
},
place: function() {
return $Library.getPlace(self.meta().place);
},
setLayout: function() {
},
stop: function() {
if (self.player) {
if (self.player.getState()=="PLAYING") {
self.player.pause();
}
}
},
deactivate: function() {
self.stop();
},
"{self} cancelItem": function() {
self.stop();
},
//
// Insert audio
//
"{self} insertItem": function() {
var options = {
autostart: (self.autoplay().val() == '1') ? true : false,
}
$Media.insert(self.meta(), options);
}
}}
);
// controller: end
module.resolve();
});
// require: end
});
// module: end
media/editor.file.js000064400000005220151167475110010374 0ustar00// module:
start
EasyBlog.module("media/editor.file", function($){
var module = this;
// require: start
EasyBlog.require()
.view(
"media/editor.file",
"media/editor.file.preview"
)
.done(function() {
// controller: start
EasyBlog.Controller(
"Media.Editor.File",
{
defaultOptions: {
view: {
panel: "media/editor.file",
preview: "media/editor.file.preview"
},
"{editorPreview}": ".editorPreview",
"{editorPanel}": ".editorPanel",
// Preview
"{filePreviewCaption}" : ".filePreviewCaption",
// Insert button
"{insertItemButton}": ".insertItemButton",
"{insertItemDetail}": ".insertItemDetail",
// Insert options
"{insertCaption}" : ".insertCaption",
"{insertAs}" : ".insertAs"
}
},
function(self) {
var $Media, $Library, $Browser;
return {
init: function() {
$Media = self.media;
$Library = $Media.library;
$Browser = $Media.browser;
var meta = self.meta();
// Panel
self.editorPanel()
.html(self.view.panel({
meta: meta
}))
.implement(
EasyBlog.Controller.Media.Editor.Panel,
{},
function() {
// Keep a reference to this controller
self.panel = this;
}
);
// Preview
self.editorPreview()
.implement(
EasyBlog.Controller.Media.Editor.Preview,
{},
function() {
// Keep a reference to this controller
self.preview = this;
self.generatePreview();
}
);
},
generatePreview: function() {
var preview = self.preview.container().find('a'),
target = self.insertAs().val(),
content = self.insertCaption().val();
if(preview.length < 1) {
var meta = self.meta();
self.preview.container().html(self.view.preview({
meta: meta,
target: target,
content: content
}));
} else {
preview.attr('target', target).text(content);
}
self.preview.resetLayout();
},
setLayout: function() {
},
meta: function() {
return $Library.getMeta(self.key);
},
place: function() {
return $Library.getPlace(self.meta().place);
},
"{self} insertItem": function() {
var meta = self.meta(),
options = {
title: meta.title,
target: self.insertAs().val(),
content: self.insertCaption().val()
};
$Media.insert(self.meta(), options);
},
"{insertCaption} keyup" : function(el) {
self.generatePreview();
},
"{insertCaption} blur": function(el) {
if(el.val() == '') {
var meta = self.meta();
el.val(meta.title);
self.generatePreview();
}
},
"{insertAs} change": function(el) {
self.generatePreview();
}
}}
);
// controller: end
module.resolve();
});
// require: end
});
// module: end
media/editor.image.js000064400000056633151167475110010555 0ustar00//
module: start
EasyBlog.module("media/editor.image", function($){
var module = this;
// require: start
EasyBlog.require()
.library(
"ui/position"
)
.script(
'media/constrain'
)
.view(
"media/editor.image",
"media/editor.image.variation",
"media/editor.image.caption"
)
.done(function() {
EasyBlog.Controller(
"Media.Editor.Image",
{
defaultOptions: {
view: {
panel: "media/editor.image",
variation: "media/editor.image.variation",
caption: "media/editor.image.caption"
},
defaultVariation: "thumbnail",
"{editorPreview}": ".editorPreview",
"{editorPanel}": ".editorPanel",
// Variation list
"{imageVariationPanel}": ".imageVariationPanel",
"{imageVariationList}" : ".imageVariationList",
"{imageVariations}" : ".imageVariations",
"{imageVariation}" : ".imageVariation",
// Enforce Dimension
"{imageEnforceDimensionOption}" :
".imageEnforceDimensionOption",
"{imageEnforceWidth}" : ".imageEnforceWidth",
"{imageEnforceHeight}" : ".imageEnforceHeight",
// Caption
"{imageCaptionOption}" : ".imageCaptionOption",
"{imageCaption}" : ".imageCaption",
// Zoom
"{imageZoomOption}" : ".imageZoomOption",
"{imageZoomLargeImageSelection}":
".imageZoomLargeImageSelection",
// File properties
"{itemFilesize}": ".itemFilesize",
"{itemFilename}": ".itemFilename",
"{itemUrl}" : ".itemUrl",
"{itemCreationDate}": ".itemCreationDate",
// Prompt
"{modalPrompt}": ".modalPrompt"
}
},
function(self) {
var $Media, $Library, $Browser, $Prompt;
return {
init: function() {
$Media = self.media;
$Library = $Media.library;
$Browser = $Media.browser;
var meta = self.meta(),
place = self.place(),
subcontrollerOptions = {
controller: {
editor: self,
media: self.media
}
};
// Panel
self.editorPanel()
.html(self.view.panel({
meta: meta,
acl: place.acl
}))
.implement(
EasyBlog.Controller.Media.Editor.Panel,
{},
function() {
// Keep a reference to this controller
self.panel = this;
// Don't show file size when editing jomsocial image
// because we are unable to retrieve them.
if (meta.place==="jomsocial") {
self.itemFilesize().remove();
self.itemFilename().css("padding-right", 0);
}
}
);
self.modalPrompt()
.implement(EasyBlog.Controller.Media.Prompt, subcontrollerOptions,
function() {
$Prompt = self.promptDialog = this;
});
// Image filters
var Filter = EasyBlog.Controller.Media.Editor.Image.Filter;
self.element
.implement(Filter.Dimension, subcontrollerOptions)
.implement(Filter.Caption, subcontrollerOptions)
.implement(Filter.Lightbox, subcontrollerOptions);
// Preview
self.editorPreview()
.implement(
EasyBlog.Controller.Media.Editor.Preview,
{
draggable: true
},
function() {
// Keep a reference to this controller
self.preview = this;
// Attempt to load thumbnail image first
self.previewImage(self.meta().thumbnail.url);
}
)
// Variation form
if (place.acl.canCreateVariation &&
place.acl.canDeleteVariation) {
self.element
.implement(EasyBlog.Controller.Media.Editor.Image.VariationForm,
subcontrollerOptions);
}
self.populateImageVariations();
self.setLayout();
},
meta: function() {
return $Library.getMeta(self.key);
},
place: function() {
return $Library.getPlace(self.meta().place);
},
setLayout: function() {
self.preview.resetLayout();
},
"{self} insertItem": function() {
var variation =
self.currentImageVariation().data("variation"),
options = {
variation: variation.name
};
if(self.imageEnforceDimensionOption().is(":checked")) {
options.enforceDimension = true;
options.enforceWidth = self.imageEnforceWidth().val();
options.enforceHeight = self.imageEnforceHeight().val();
}
if(self.imageCaptionOption().is(":checked")) {
options.caption = self.imageCaption().val();
}
if(self.imageZoomOption().is(":checked")) {
options.zoom = self.imageZoomLargeImageSelection().val();
}
$Media.insert(self.meta(), options);
},
//
// Image variation
//
populateImageVariations: function() {
var meta = self.meta(),
variations = meta.variations;
self.imageVariationsData = self.imageVariationsData || {};
if (variations===undefined) {
// Show loading indicator
self.imageVariations()
.empty()
.addClass("busy");
// Get file variations from server
$Library.getMetaVariations(meta.key)
.done(function(){
// Try to populate variations again
self.populateImageVariations();
self.imageVariations()
.removeClass("busy");
})
.fail(function() {
// Ask user to try again on the preview screen
})
.always(function() {
self.imageVariations()
.removeClass("busy");
});
return;
}
$.each(variations, function(i, variation) {
// Skip icon variation
if (variation.name=="icon") return;
self.createImageVariation(variation);
});
self.trigger("variationPopulated",
[self.imageVariationsData]);
},
createImageVariation: function(variation) {
var imageVariation = self.view.variation({variation: variation});
imageVariation
.data("variation", variation)
.appendTo(self.imageVariations());
// Add default class if this is a default variation
if (variation["default"]===true ||
variation["default"]=="true") {
imageVariation.addClass("default");
}
// If this variation can't be deleted, e.g. thumbnail, original,
// then add a lock indicator.
if (!variation.canDelete) {
imageVariation.addClass("locked");
}
self.imageVariationsData[variation.name] = imageVariation;
self.trigger("variationCreated", [imageVariation, variation]);
return imageVariation;
},
"{self} variationPopulated": function() {
// Find default variation and highlight default variation
var variationName,
defaultImageVariation = self.imageVariation(".default");
if(self.imageVariation().length > 0) {
if (defaultImageVariation.length < 1) {
var meta = self.meta(),
image = self.previewImage();
if (image!==undefined) {
$.each(meta.variations, function(i, variation) {
if(variation.width == image.width() && variation.height ==
image.height()) {
variationName = variation.name;
return false;
}
});
}
variationName = variationName ||
self.imageVariation(":first").data("variation").name;
} else {
variationName =
defaultImageVariation.eq(0).data("variation").name;
}
self.currentImageVariation(variationName);
}
},
"{imageVariation} click": function(imageVariation) {
var variation = imageVariation.data("variation");
self.currentImageVariation(variation.name);
},
currentImageVariation: function(variationName) {
var currentImageVariation = self.currentImageVariation.imageVariation,
imageVariation = self.imageVariationsData[variationName];
if (imageVariation!==undefined) {
var variation = imageVariation.data("variation");
var meta = self.meta();
if(meta.place == 'jomsocial') {
var image = self.previewImage();
variation.width = image.data('width');
variation.height = image.data('height');
$('<span
class="variationDimension"></span>').text(variation.width
+ 'x' + variation.height).appendTo(imageVariation);
}
// Deactivate current image variation
if (currentImageVariation) {
currentImageVariation.removeClass("active");
}
imageVariation.addClass("active");
self.currentImageVariation.imageVariation = imageVariation;
self.trigger("variationSelected", [imageVariation,
variation]);
}
return self.currentImageVariation.imageVariation;
},
"{self} variationSelected": function(el, event, imageVariation,
variation) {
self.itemFilesize()
.html(variation.filesize);
self.itemUrl()
.html(variation.url);
self.itemCreationDate()
.html(variation.dateCreated);
self.previewImage(variation.url);
},
"{self} variationRemoved": function(el, event, imageVariation,
variation) {
delete self.imageVariationsData[variation.name];
imageVariation.remove();
// $Library.removeMetaVaration(self.meta(), variation.name);
},
previewImage: function(url) {
// No url given, return.
if (url===undefined) {
return self.previewImage.currentImage;
};
// Create a collection of image previews (if this is the first time)
if (self.previewImage.images===undefined) {
self.previewImage.images = {};
}
var image = self.previewImage.images[url],
currentUrl = self.previewImage.currentUrl,
currentImage = self.previewImage.images[currentUrl];
// Show loading indicator
self.preview.showDialog("loading");
// Detach current image
if (currentImage!==undefined && !$.isDeferred(currentImage)) {
currentImage.detach();
self.preview.container().empty();
}
// Store a copy of the current url
self.previewImage.currentUrl = url;
// If image hasn't been loaded
if (image===undefined) {
// Load image
self.previewImage.images[url] =
$.Image.get(url)
.done(function(image) {
self.previewImage.images[url] = image;
// If current url has changed, don't show this one.
if (self.previewImage.currentUrl==url) {
self.previewImage(url);
}
})
.fail(function() {
self.preview.hideDialog("loading");
// If current url is still the same, show error message
if (self.previewImage.currentUrl==url) {
// TODO: Show error message
}
});
return;
}
// If image is still loading
if ($.isDeferred(image)) {
return;
}
self.preview.container()
.append(image);
self.previewImage.currentImage = image;
self.trigger("previewImage", [self.preview.container(),
image]);
// Hide loading indicator
self.preview.hideDialog("loading");
self.preview.resetLayout();
}
}}
);
EasyBlog.Controller(
"Media.Editor.Image.VariationForm",
{
defaultOptions: {
// Variation form
"{imageVariationForm}" : ".imageVariationForm",
"{addVariationButton}" : ".addVariationButton",
"{createVariationButton}" :
".createVariationButton",
"{removeVariationButton}" :
".removeVariationButton",
"{cancelVariationButton}" :
".cancelVariationButton",
"{tryCreateVariationButton}":
".tryCreateVariationButton",
"{newVariationName}" : ".newVariationName",
"{newVariationWidth}" : ".newVariationWidth",
"{newVariationHeight}" : ".newVariationHeight",
"{newVariationRatio}" : ".newVariationRatio",
"{newVariationLockRatio}" :
".newVariationLockRatio",
"{imageVariationMessage}" :
".imageVariationMessage",
variationNameFilter : new
RegExp('[^a-zA-Z0-9]','g'),
// Variation prompt
"{createNewImageVariationPrompt}" :
".createNewImageVariationPrompt",
"{promptVariationName}" :
".createNewImageVariationPrompt .variationName",
"{promptVariationWidth}" :
".createNewImageVariationPrompt .variationWidth",
"{promptVariationHeight}" :
".createNewImageVariationPrompt .variationHeight"
}
},
function(self) { return {
init: function() {
},
"{self} variationSelected": function() {
var variation =
self.editor.currentImageVariation().data('variation');
self.removeVariationButton()
.toggle(variation.canDelete);
},
nextVariationName: function(name) {
var match = false,
name = $.trim(name.toLowerCase());
$.each(self.editor.imageVariationsData, function(i, variation) {
if (name==variation.data('variation').name.toLowerCase()) {
match = true;
var suffix = name.substr(-1, 1);
name = ($.isNumeric(suffix)) ?
name.substr(0, name.length - 1) + (parseInt(suffix, 10) + 1) :
name + 1;
return false;
}
});
return (match) ? self.nextVariationName(name) : name;
},
"{addVariationButton} click": function() {
self.editor.promptDialog
.get('createNewImageVariationPrompt')
.state('default')
.show();
var variation =
self.editor.currentImageVariation().data('variation');
variationName =
$.String.capitalize(self.nextVariationName(variation.name));
self.newVariationName()
.data("default", variationName)
.val(variationName)
.select();
self.newVariationWidth()
.data("default", variation.width)
.val(variation.width);
self.newVariationHeight()
.data("default", variation.height)
.val(variation.height);
self.imageVariationForm().constrain({
selector: {
width: self.options["{newVariationWidth}"],
height: self.options["{newVariationHeight}"],
constrain: self.options["{newVariationLockRatio}"]
},
source: {
width: variation.width,
height: variation.height
},
allowedMax: {
width: self.editor.media.options.exporter.image.maxVariationWidth,
height: self.editor.media.options.exporter.image.maxVariationHeight
}
})
},
"{newVariationRatio} click": function(el) {
el.toggleClass("locked");
if (el.hasClass("locked")) {
self.newVariationLockRatio().attr('checked',
'checked');
} else {
self.newVariationLockRatio().removeAttr('checked');
}
self.newVariationLockRatio().trigger('change');
},
"{createVariationButton} click": function() {
self.createVariation();
},
"{tryCreateVariationButton} click": function() {
self.createVariation();
},
"{newVariationName} keyup": function(el, event) {
var value = $.trim($(el).val());
value = value.replace(new
RegExp('[^0-9a-zA-Z]','g'), "");
$(el).val(value);
if(event.keyCode == 13) {
self.createVariationButton().trigger('click');
}
},
"[{newVariationWidth}, {newVariationHeight}] keyup":
function(el, event) {
if(event.keyCode == 13) {
self.createVariationButton().trigger('click');
}
},
createVariation: function() {
var meta = self.editor.meta(),
place = self.editor.place(),
name = self.newVariationName().val(),
width = self.newVariationWidth().val(),
height = self.newVariationHeight().val();
if(!$.trim(name) || !$.trim(width) || !$.trim(height)) {
return false;
}
self.promptVariationName().text(name);
self.promptVariationWidth().text(width);
self.promptVariationHeight().text(height);
self.editor.promptDialog
.get('createNewImageVariationPrompt')
.state('progress')
.show();
EasyBlog.ajax(
"site.views.media.createVariation",
{
path: meta.path,
place: place.id,
name: name,
width: width,
height: height
},
{
success: function( variation ) {
self.media.library.meta[meta.key].variations.push(variation);
self.editor.createImageVariation(variation);
self.editor.currentImageVariation(variation.name);
self.cancelVariationButton().click();
},
fail: function( message ) {
self.editor.promptDialog
.get('createNewImageVariationPrompt')
.state('fail')
.show();
}
}
);
},
"{removeVariationButton} click": function() {
var imageVariation = self.editor.imageVariation(".active"),
variation = imageVariation.data("variation"),
meta = self.editor.meta(),
place = self.editor.place();
if (variation.canDelete) {
EasyBlog.ajax(
"site.views.media.deleteVariation",
{
"fromPath": meta.path,
"place": place.id,
'name': variation.name
},
{
beforeSend: function() {
imageVariation.addClass("busy");
},
success: function() {
// Once the item is successfully removed, we need to remove this
variation.
imageVariation.slideUp(function(){
self.trigger('variationRemoved', [imageVariation,
variation]);
});
// Revert to default image variation
self.editor.imageVariation(".default")
.click();
self.media.library.removeMetaVariation(meta, variation.name);
},
fail: function(message) {
try { console.log(message); } catch(e) {};
},
complete: function() {
imageVariation.removeClass("busy");
}
}
);
}
}
}}
);
EasyBlog.Controller(
"Media.Editor.Image.Filter.Caption",
{
defaultOptions: {
view: {
caption: "media/editor.image.caption"
},
"{imageVariation}" : ".imageVariation",
"{imageCaptionOption}" : ".imageCaptionOption",
"{imageCaption}" : ".imageCaption"
}
},
function(self) { return {
init: function() {
self.item = {
meta: self.editor.meta()
}
},
"{imageVariation} click": function(el) {
self.transform();
},
"{self} dimensionEnforced": function() {
self.transform();
},
"{imageCaptionOption} change": function(el, event) {
event.stopPropagation();
el.parent(".field").toggleClass("hide-field-content",
!el.is(":checked"));
self.transform();
},
"{imageCaptionOption} mouseup": function() {
setTimeout(function(){
self.imageCaption().focus()[0].select();
}, 1);
},
"{imageCaption} blur": function(el) {
if($.trim(el.val()) == '') {
el.val(self.item.meta.title);
}
self.transform();
},
"{imageCaption} keyup": function(el, event) {
self.transform();
},
transform: function() {
var previewContainer = self.editor.preview.container(),
image = previewContainer.find('img'),
captionText = previewContainer.find('div.imageCaptionText');
if(self.imageCaptionOption().is(':checked')) {
var caption = self.imageCaption().val();
captionText.remove();
previewContainer.width(image.width());
previewContainer.addClass('imageCaptionBorder');
previewContainer.width(previewContainer.width());
previewContainer.append(self.view.caption({
caption: caption
}));
} else {
previewContainer.removeClass('imageCaptionBorder');
captionText.remove();
previewContainer.width("auto");
}
self.editor.preview.resetLayout();
}
}}
);
EasyBlog.Controller(
"Media.Editor.Image.Filter.Lightbox",
{
defaultOptions: {
defaultImageZoomVariation : "original",
"{imageZoomOption}" : ".imageZoomOption",
"{imageZoomLargeImageSelection}":
".imageZoomLargeImageSelection",
"{imageZoomLargeImageOption}" :
".imageZoomLargeImageSelection option"
}
},
function(self) { return {
init: function() {
},
"{self} variationCreated": function(el, event, imageVariation,
variation) {
// Also add to insert options
var variationName = $.String.capitalize(variation.name),
largeImageOption = $("<option>")
.val(variationName)
.html(variationName)
.data("variation", variation);
var defaultSelectedVariationName =
self.media.options.exporter.image.zoom ||
self.options.defaultImageZoomVariation;
if (variation.name==defaultSelectedVariationName) {
largeImageOption.attr("selected", true);
}
self.imageZoomLargeImageSelection()
.append(largeImageOption);
},
"{self} variationRemoved": function(el, event, imageVariation,
variation) {
self.imageZoomLargeImageOption('[value="' +
variation.name + '"]').remove();
},
"{imageZoomOption} change": function(el, event) {
event.stopPropagation();
el.parent(".field").toggleClass("hide-field-content",
!el.is(":checked"));
},
transform: function() {
// Enable image zooming
if (self.imageZoomOption().is(":checked")) {
var largeImageVariation =
self.imageZoomLargeImageOption(":selected").data("variation");
image = $("<a>")
.addClass("easyblog-thumb-preview")
.attr({
href: largeImageVariation.url,
title: imageCaption || self.item.meta.title
})
.html(image);
}
}
}}
);
EasyBlog.Controller(
"Media.Editor.Image.Filter.Dimension",
{
defaultOptions: {
"{imageEnforceDimension}" :
".imageEnforceDimension",
"{imageEnforceDimensionOption}" :
".imageEnforceDimensionOption",
"{imageEnforceWidth}" : ".imageEnforceWidth",
"{imageEnforceHeight}" : ".imageEnforceHeight",
"{imageEnforceRatio}" : ".imageEnforceRatio",
"{imageEnforceLockRatio}" :
".imageEnforceLockRatio",
"{imageVariation}" : ".imageVariation"
}
},
function(self) { return {
init: function() {
var options = {
selector: {
width: self.options["{imageEnforceWidth}"],
height: self.options["{imageEnforceHeight}"],
constrain: self.options["{imageEnforceLockRatio}"]
}
};
// only apply constrain once variation has been populated
self.editor.bind('variationPopulated', function() {
// enforce dimension option
if(self.editor.media.options.exporter.image.enforceDimension) {
self.imageEnforceDimensionOption().attr({
'checked': 'checked',
'disabled': 'disabled'
}).parent('.field').removeClass('hide-field-content');
}
self.applyConstrain(options);
});
// self.imageEnforceWidth().data("default", width);
// self.imageEnforceHeight().data("default", height);
},
"{imageVariation} click": function(el) {
self.applyConstrain();
},
"{imageEnforceDimensionOption} change": function(el, event) {
event.stopPropagation();
el.parent(".field").toggleClass("hide-field-content",
!el.is(":checked"));
self.transform();
// self.imageEnforceWidth().trigger("keyup");
},
"{imageEnforceRatio} click": function(el) {
el.toggleClass("locked");
if (el.hasClass("locked")) {
self.imageEnforceLockRatio().attr('checked',
'checked');
} else {
self.imageEnforceLockRatio().removeAttr('checked');
}
self.imageEnforceLockRatio().trigger('change');
if(el.hasClass("locked")) {
self.transform();
}
},
"{self} previewImage": function() {
self.transform();
},
"[{imageEnforceWidth}, {imageEnforceHeight}] keyup": function()
{
self.transform();
},
"[{imageEnforceWidth}, {imageEnforceHeight}] blur":
function(el) {
if($.trim(el.val()) == '' &&
!self.imageEnforceLockRatio().is(':checked')) {
el.val(el.data('initial'));
}
self.transform();
},
transform: function() {
var image = self.editor.previewImage();
if(image === undefined) return;
var dimensions = {};
// Enforce image dimension
if (self.imageEnforceDimensionOption().is(":checked")) {
dimensions = {
width: self.imageEnforceWidth().val(),
height: self.imageEnforceHeight().val()
};
} else {
var variation = self.editor.currentImageVariation();
variation = variation === undefined ? self.editor.meta() :
variation.data('variation');
dimensions = {
width: variation.width,
height: variation.height
};
}
if(image.width() !== dimensions.width || image.height() !==
dimensions.height) {
image.css(dimensions);
// if dimension changed, trigger change in dimension
self.editor.trigger('dimensionEnforced');
}
self.editor.preview.resetLayout();
},
applyConstrain: function(options) {
var variation = self.editor.currentImageVariation() === undefined ?
self.editor.meta() :
self.editor.currentImageVariation().data('variation'),
dimensions = {
source: {
width: variation.width,
height: variation.height
}
};
if(self.editor.media.options.exporter.image.enforceDimension) {
dimensions.allowedMax = {
width: self.editor.media.options.exporter.image.enforceWidth,
height: self.editor.media.options.exporter.image.enforceHeight
}
}
options = $.extend(true, {}, dimensions, options);
self.imageEnforceDimension().constrain(options);
self.transform();
}
}}
);
module.resolve();
});
// require: end
});
// module: end
media/editor.image.less000064400000013322151167475110011073
0ustar00(~"@{MediaManager}") {
.imageVariationMessage {
position: relative;
line-height: 16px;
color: #900;
display: block;
text-align: center;
font-size: 12px;
}
.imageVariationList {
.imageVariations {
background: #fff;
border: 1px solid #bbb;
border-bottom: none;
.border-radius(3px, 0, 0, 3px);
overflow-y: auto;
&.busy {
background: url(loader.gif) #fff no-repeat center center;
}
height: 88px;
.imageVariation {
padding: 4px;
font-size: 11px;
position: relative;
.variationName {
// padding-left: 14px;
background-repeat: no-repeat;
background-position: left center;
white-space: nowrap;
}
&.locked i {
// background-image: url(variation.locked.gif);
display:inline-block;
width:10px;
height:10px;
.icon-media (17, 3);
}
&.busy .variationName {
background-image: url(variation.busy.gif);
}
.variationDimension {
position: absolute;
top: 4px;
right: 4px;
}
&.active {
.activeItemColorScheme();
}
&:hover{
cursor: pointer;
}
}
}
&.readOnly {
.imageVariations {
border: 1px solid #bbb;
.border-radius(3px, 3px, 3px, 3px);
}
}
}
.imageVariationForm {
position: relative;
form {
background: #fff;
border: 1px solid #bbb;
border-bottom: none;
.border-radius(3px, 0, 0, 3px);
padding: 10px;
}
.newVariationRatio {
display: block;
width: 24px;
height: 30px;
position: absolute;
top: 80px;
right: 90px;
// background-image:
url("variation.ratio.unlocked.png");
.icon-media (17, 2);
// background-repeat: no-repeat;
// background-position: top left;
cursor: pointer;
&.locked {
// background-image:
url("variation.ratio.locked.png");
.icon-media (17, 1);
}
}
.newVariationLockRatio {
display: none;
}
}
.imageVariationActions {
position: relative;
.vertical-gradient-4(#ffffff, #f3f3f3, #ededed, #ffffff);
border: 1px solid #bbb;
border-top: 1px solid #ccc;
.border-radius(0, 3px, 3px, 0);
height: 24px;
button {
display: block;
position: absolute;
background: none;
border: none;
height: 24px;
line-height: 24px;
padding: 0 6px;
padding-left: 18px; // 6px padding-left, 12px icon
cursor: pointer;
margin: 0 !important;
text-transform: normal !important;
font-size: 11px !important;
i {
width: 12px;
height: 24px;
background-repeat: no-repeat;
background-position: center 8px;
position: absolute;
top: 2px;
left: 6px; // 6px padding left
.opacity(0.75);
}
.leftButton() {
.border-radius(0, 0, 3px, 0);
top: 0;
left: 0;
border-right: 1px solid #ccc;
}
.rightButton() {
.border-radius(0, 3px, 0, 0);
top: 0;
right: 0;
border-left: 1px solid #ccc;
}
&:hover {
.vertical-gradient-4(lighten(#ffffff, 3%), lighten(#f3f3f3,
3%), lighten(#ededed, 3%), lighten(#ffffff, 3%));
}
&.addVariationButton {
.rightButton();
i {
.icon-media (18, 1);
}
}
&.removeVariationButton {
.leftButton();
i {
.icon-media (18, 2);
}
}
&.createVariationButton {
.rightButton();
i {
.icon-media (19, 1);
}
}
&.backVariationButton {
.leftButton();
i {
.icon-media (19, 2);
}
}
}
}
.imageEnforceDimension {
position: relative;
.imageEnforceRatio {
display: block;
width: 24px;
height: 30px;
position: absolute;
top: 85px;
right: 58px;
// background-image:
url("variation.ratio.unlocked.png");
.icon-media (17, 2);
// background-repeat: no-repeat;
// background-position: top left;
cursor: pointer;
&.locked {
// background-image:
url("variation.ratio.locked.png");
.icon-media (17, 1);
}
}
.imageEnforceLockRatio {
display: none !important;
}
&.field-content {
.imageEnforceRatio {
top: 10px;
right: 20px;
}
}
}
}
media/editor.js000064400000014353151167475110007465 0ustar00// module:
start
EasyBlog.module("media/editor", function($){
var module = this;
// require: start
EasyBlog.require()
// .library(
// "ui/position"
// )
// .view(
// "media/editor",
// "media/editor.viewport"
// )
.done(function(){
// controller: start
EasyBlog.Controller(
"Media.Editor",
{
defaultOptions: {
view: {
editor: "media/editor",
viewport: "media/editor.viewport"
},
"{modalHeader}": ".modalHeader",
"{modalToolbar}": ".modalToolbar",
"{modalContent}": ".modalContent",
"{navigationPathway}":
".navigationPathway",
"{insertItemButton}": ".insertItemButton",
"{cancelEditingButton}":
".cancelEditingButton"
}
},
function(self) { return {
init: function() {
self.element
.addClass("editor")
.html(self.view.editor());
// Browser navigation
self.navigationPathway()
.implement(
EasyBlog.Controller.Media.Navigation,
{
controller: {
media: self.media
},
canActivate: false
},
function() {
// Assign controller as a property of myself
self.navigation = this;
}
);
self.setLayout();
},
setLayout: function() {
// Don't set layout if current modal is not us
if (self.media.currentModal!=="editor") return;
self.modalContent()
.hide()
.height(
self.element.height() -
self.modalHeader().outerHeight() -
self.modalToolbar().outerHeight()
)
.show();
// Also trigger set layout on handler
var currentEditor = self.getEditor(self.currentEditor);
if (currentEditor) {
currentEditor.setLayout && currentEditor.setLayout();
}
},
editors: [],
handlers: [],
loadHandler: function(type) {
var handlerLoader = self.handlers[type];
if (handlerLoader!==undefined) return handlerLoader;
// Create new handler loader
handlerLoader = $.Deferred();
// Load handler
handlerLoader.require =
EasyBlog.require()
.script(
"media/editor." + type
)
.done(function(){
var EditorHandler =
EasyBlog.Controller.Media.Editor[$.String.capitalize(type)];
if (EditorHandler!==undefined) {
handlerLoader.resolve(EditorHandler);
} else {
delete self.handlers[type];
handlerLoader.reject();
}
})
.fail(function(){
handlerLoader.reject();
});
return handlerLoader;
},
createEditor: function(key, callback) {
// This will attempt to remove any previously created editor
self.removeEditor(key);
var meta = self.media.library.getMeta(key);
// If there's no meta, skip.
// TODO: Show error.
if (meta===undefined) return;
self.loadHandler(meta.type)
.done(function(EditorHandler) {
// Create editor & implement handler
var editor = new EditorHandler(
self.view.viewport()
.addClass("editor-type-" + meta.type)
.prependTo(self.modalContent()),
{
controller: {
media: self.media,
editor: self,
key: self.media.library.getKey(meta)
}
}
);
// Register this editor instance
self.editors[key] = editor;
callback && callback(editor);
});
},
removeEditor: function(key) {
var editor = self.editors[key];
if (editor===undefined) return;
editor.destroy();
delete self.editors[key];
},
getEditor: function(key) {
return self.editors[key];
},
activateEditor: function(key) {
self.deactivateEditor(self.currentEditor);
// Set navigation pathway
self.navigation.setPathway(key);
var editor = self.getEditor(key),
activateEditor = function(editor) {
self.currentEditor = key;
editor.element.addClass("active");
editor.activate && editor.activate();
};
if (editor===undefined) {
self.createEditor(key, activateEditor);
} else {
activateEditor(editor);
}
},
deactivateEditor: function() {
var editor = self.getEditor(self.currentEditor);
if (editor===undefined) return;
editor.deactivate && editor.deactivate();
editor.element.removeClass("active");
},
"{self} modalActivate": function(el, event, key) {
self.activateEditor(key);
},
"{self} modalDeactivate": function() {
self.deactivateEditor();
},
"{insertItemButton} click": function() {
var editor = self.getEditor(self.currentEditor);
if (editor===undefined) return;
editor.trigger("insertItem");
},
"{cancelEditingButton} click": function() {
var editor = self.getEditor(self.currentEditor);
if (editor) {
editor.trigger("cancelItem");
}
self.media.browse();
}
}}
);
EasyBlog.Controller(
"Media.Editor.Panel",
{
defaultOptions: {
"{sectionHeader}": ".panelSectionHeader",
"{sectionContent}": ".panelSectionContent"
}
},
function(self) { return {
init: function() {
},
// Common editor UI behaviour
"{sectionHeader} click": function(sectionHeader) {
var section = sectionHeader.parent();
section.toggleClass("active");
}
}}
);
EasyBlog.Controller(
"Media.Editor.Preview",
{
defaultOptions: {
"{container}": ".previewContainer",
"{dialogGroup}": ".previewDialogGroup"
}
},
function(self) { return {
init: function() {
},
resetLayout: function() {
clearTimeout(self.resetLayoutTimer);
self.resetLayoutTimer = setTimeout(function(){
var container = self.container(),
width = self.element.width(),
height = self.element.height(),
containerWidth = container.width(),
containerHeight = container.height(),
top = 0,
left = 0,
overflow = "none";
if (containerWidth < width) {
left = (width - containerWidth) / 2;
} else {
overflow = "auto";
}
if (containerHeight < height) {
top = (height - containerHeight) / 2;
} else {
overflow = "auto";
}
self.element.css("overflow", overflow);
container.css({
top: top,
left: left
});
}, 100);
},
showDialog: function(dialogName) {
self.dialogGroup().addClass("show-dialog-" + dialogName);
},
hideDialog: function(dialogName) {
self.dialogGroup().removeClass("show-dialog-" + dialogName);
}
}}
);
module.resolve();
});
// require: end
});
// module: end
media/editor.less000064400000010476151167475110010021
0ustar00(~"@{MediaManager}") {
.editor {
background: #fff;
.modalToolbar {
.insertItemButton {
> i {
.icon-media(7, 4);
}
}
.cancelEditingButton {
> i {
.icon-media(6, 4);
}
}
}
.modalContent {
.clearfix();
.editorViewport,
.editorLoading {
width: 100%;
height: 100%;
overflow: hidden;
position: absolute;
}
.editorViewport {
top: 99999px;
left: 99999px;
z-index: 2;
&.active {
top: 0;
left: 0;
z-index: 3;
}
.editorPreview {
height: 100%;
margin-right: 300px;
background: url("editor.preview.png");
overflow: hidden;
position: relative;
.previewContainer {
position: absolute;
z-index: 2;
// cursor: move;
// .box-shadow(0 12px 24px rgba(0, 0, 0, 0.4));
object {
.no-focus-outline();
}
&.imageCaptionBorder {
padding: 5px;
border: 1px solid #ddd;
background: #f5f5f5;
}
.imageCaptionText {
background: #f5f5f5;
padding: 5px 0;
}
}
.previewDialogGroup {
width: 100%;
height: 100%;
position: absolute;
z-index: 1;
&.alwaysOnTop {
z-index: 3;
}
&.show-dialog-loading {
.previewDialog {
&.dialog-loading {
display: block;
}
}
}
.previewDialog {
display: none;
&.dialog-loading {
.absolute-center();
background: url("loader.gif")
no-repeat center center;
width: 16px;
height: 16px;
margin: 0 auto;
position: relative;
z-index: 9999;
}
}
}
}
.editorPanel {
width: 300px;
height: 100%;
float: right;
background: #F5F5F5;
border-left: 1px solid #CCCCCC;
overflow-y: scroll;
overflow-x: hidden;
}
}
.editorLoading {
z-index: 1;
top: 0;
left: 0;
text-align: center;
width: 100%;
height: 100%;
background: #f6f6f6;
.loadingHint {
position: absolute;
top: 50%;
width: 100%;
margin-top: 19px / 2 * -1;
i {
background: url("loader.bar.gif");
width: 220px;
height: 19px;
display: inline-block;
}
.loadingText {
font-size: 22px;
line-height: 22px;
padding: 12px;
display: block;
color: #bbb;
.text-shadow(1px, 1px, 0px, #fff);
}
}
}
}
}
}
media/editor.panel.form.less000064400000005434151167475110012057
0ustar00(~"@{MediaManager}") {
.editorPanel {
.formGroup {
display: block;
clear:both;
margin: 8px 0;
.formLabel {
display: block;
float: left;
width: 85px;
text-align: right;
font-size: 11px;
padding-top: 4px;
}
.formControl {
margin-left: 95px;
}
input[type=text] {
background: transparent;
border: none;
line-height: 20px;
width: 150px;
height: 20px;
font-size: 12px;
border:1px solid #999;
padding:0 0 0 4px;
.rounded(4px);
.box-shadow(0px 1px 3px 0px rgba(0, 0, 0, 0.2) inset);
}
}
}
.list-form,
.list-form li {
font-size:11px;
margin:0!important;
padding:0!important;
list-style:none!important;
border:0!important;
background:none!important;
+ li{
margin:5px 0 0!important;
}
> label{
display:block;
min-height:17px;
line-height:17px;
margin:0;
text-align:left;
width:auto;
float:none;
}
> label + div{
margin:0;
line-height:20px;
}
input[type="text"],
input[type="password"],
input[type="checkbox"],
input[type="radio"]
textarea,
select {
border:1px solid #ccc;
font-family:'Lucida Grande',Tahoma,Arial,sans-serif
!important;
font-size:11px !important;
background:#fff;
color:#555;
display:inline-block;
position:relative;
vertical-align:top;
}
input[type="text"],
input[type="password"],
textarea{
padding:4px;
}
input[type="text"],
input[type="password"]{
width: 90%;
height: 20px;
}
input[type="checkbox"],
input[type="radio"]{
float:left;
display:inline-block;
vertical-align:text-bottom;
bottom:-2px;
+ label{
margin:0 0 0 20px!important;
}
}
select{
padding:2px;
top:-1px;
}
label {
font-family:'Lucida Grande',Tahoma,Arial,sans-serif
!important;
font-size:11px !important;
}
.field-content {
display: block;
margin: 5px 0 0 20px;
}
&.hide-field-content .field-content {
display: none;
}
}
}
media/editor.panel.info.less000064400000003555151167475110012051
0ustar00(~"@{MediaManager}") {
.editor-type-video .panelSection.infoPanel .itemInfo > i,
.editor-type-audio .panelSection.infoPanel .itemInfo > i {
.icon-media(10, 5);
}
.editor-type-image .panelSection.infoPanel .itemInfo > i {
.icon-media(8, 5);
}
.editor-type-file .panelSection.infoPanel .itemInfo > i {
.icon-media(12, 5);
}
.panelSection.infoPanel {
.panelSectionContent {
padding: 8px;
.itemInfo {
position: relative;
padding-left: 40px;
min-height: 32px;
> i {
// background: url(upload.media.png) no-repeat;
display: block;
position: absolute;
width: 32px;
height: 32px;
top: 0;
left: 0;
}
.itemFilename {
display: block;
font-weight: bold;
line-height: 16px;
.text-overflow();
overflow: hidden;
white-space: nowrap;
padding-right: 64px;
}
.itemFilesize {
line-height: 16px;
position: absolute;
top: 0;
right: 0;
}
.itemCreationDate {
font-size: 11px;
line-height: 16px;
}
}
.itemExtraInfo {
background: none repeat scroll 0 0 #FFFFFF;
border: 1px solid #DDD;
margin-top: 6px;
padding: 8px;
.word-wrap();
.itemUrl {
font-size: 10px;
}
}
}
}
}
media/editor.panel.section.less000064400000002434151167475110012555
0ustar00(~"@{MediaManager}") {
// .panelSection (common) start
.panelSection {
text-align: left;
.panelSectionHeader {
border-top: 1px solid #ccc;
padding: 8px 16px;
cursor: pointer;
.panelSectionTitle {
.text-shadow(1px, 1px, 0, darken(#fff, 5%));
position: relative;
height: 16px;
line-height: 16px;
padding-left: 8px;
.unselectable();
> i {
.icon-media(14, 2);
display: block;
position: absolute;
width: 16px;
height: 16px;
top: 0px;
left: -12px;
}
}
}
.panelSectionContent {
padding: 8px 24px 16px;
display: none;
position: relative;
}
&.active {
.panelSectionHeader {
padding: 8px 16px 0px;
.panelSectionTitle {
> i {
.icon-media(14, 4);
}
}
}
.panelSectionContent {
display: block;
}
}
}
}
media/editor.preview.png000064400000024437151167475110011321
0ustar00�PNG
IHDR,,N�~GtEXtSoftwareAdobe
ImageReadyq�e<hiTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:3F1B858708206811822ADDB88CA433DD"
xmpMM:DocumentID="xmp.did:0A9B4D67DABE11E1B3DDD613A143814D"
xmpMM:InstanceID="xmp.iid:0A9B4D66DABE11E1B3DDD613A143814D"
xmp:CreatorTool="Adobe Photoshop CS6 (Macintosh)">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:3F1B858708206811822ADDB88CA433DD"
stRef:documentID="xmp.did:3F1B858708206811822ADDB88CA433DD"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>p9��PLTE������������������������^)%)IDATx�읋v��D)Y��������.g�ȴ}��9�ij5�@?��///���6�����r�������_��__/�o�����//߾�[����ǟ����r�1ǧ��/����9�����}|�s����\�g��?s�^����}|�#�3���_��ᄒ�����__�y�Ռ�^.�8���q_��\����/9���6X`q�����M�
��8(����;�K.k|�op���q�q�\j��>���ۀi�f�9�5.x@�c��||k\�f
Ϳ�
��8G�6�=n:���\ø����|�<�@<��qg����9]����k���q�q���$�4�|��7�����#����0��9�~����Q���w�N%�9n�-�W6a)���&����hy������`-�����80f�K8��)r߾��K�ɀ�i����(8&3�:.�ם[��Qe���8v�u����o�s�a�a�m�Mw����l���0�|�f1N7N�M�����I�%�q;��8��
�� �U@��k�1#.f��=Ph�9s`����q\����#�m��Vnm|q����p�^V1'�%6p~�6.z�b�ɫ��6n3��P��,��Y���5KCn0xL�9*p.2���-ȭ�;�=r/�����?��(�0�\R�r�iN����tX�c���b*�t�ԁs�M���k��-�����E/�q�pp�rt��lq3rm8W�t�u,]��<pl���b�?&���0'��[#�ĀC"�m��j��N�X�}����]������d�a�O�&K8��3��5�ݖ�
�X\j��Hէ�u'e�Nb�[L#ټq�<~G���<�Aj���Y�c�.���s%@�T�{�塳��~�1�$6X��(|�syl���$�+���s�7�"�s\���xI�^�Bc���<�s\C��\g~s,%,"@����/��ck[��B��c�`-�5�%�-;I�q��ܸ�,���&|���"��[<�m��e�ם�v�-I���4Y.�$�7�H�Ƒ���qh�F���} �`-��Ж%g���[v����7�4G�.p&�S�H�0-l�y�Rf�`c�q&s;q&��IV����)�
�y��e�V�;�v��ŬbnI���l� ��Tj�S�q9H�������>&?�+��6��t�0�\{���o/�k������ؒ6=����ۜN�7���h�1�@MBp���LƔ�8H�ƥ�I
�u�%4
v�9N����G�rHQ���n�N��+G4!$K{�uy���9o�)O{�J.��%Kj.u�fj97�%��P��<>��`����9��$r
I��!e��$�~}�k�?��y6u`�u,_q+���E�Nߚ.!�2h�Ԥ
O���4����a/�Ԝ��l�2��y���m�!r��0(�Xu�
�Xn���0���1��W��6�d����>)7n-�%�.����[l?�Y$W,�Z��,�"��t+�%�L�ij�~Y��`��w�Ch<]@O��4��[����L����u���X�2���$E����e[�r�ۀ4�\e����&nO�:���@��`-�eZ?��@o� ���P&o]ڹ�l95X��7bZ93)e�ܤ��&U��7Cw�٫���ք��p
�`rm<�����`-�%ř�=��t\���@�
ܦ��E�������;X��Vig״3��/�4�>>�u�NZ�;;R&��s�$ݯ�o��b��'���vw��N�I��2��hL��ד��D��zy�#1\J�=�,��1��#(��<�F7��f|�
�y��aB��+gh,[7�"hn�&0R|�͆�M����bo8EZ���NGS���tB(�j��:'�7S�
R�Z�H��m��`-��J�"Hh�M�R�
9L��S�LprI���n"����Weܦ����$s�«c3nU���Ot{�s��)���uo��rS�h@�����rHћ��%#B�l��C�a���ŝ��G��U6X+`Y>�L��0�/��W�����H��`����M��|�u��HZ��}$�b{�$����1��EX���&���M瘆2��Y�!���9�Cx>�����4�t⫑n���V?��MK���!��()�.�n
��LS��:�a����w$֒Ή)e��$m\���vWx�q1����Y��h�L���-Id
0�1 L�+��ܪ��z��K
7�Ðkv?l{�u�%��MA�Ϝ�7�v&��
�`���`-�e��meYdc6!����8�֦d-����*�6��?���T6s��i�I�����y��KOʶ�)����t���
�o�u,^_�~���f�ַ�J��؟K�3�.%n���RM��WXMg$,P��t1&M�'��.҈Z�M�����2ץtJ��,;@+��6�)&�^HTg�
)}�����M��S�Y���j�`���)�ڀ�:9i�������+�Ï`�
�1� �p~7!e��A
�q���b���tБV�����<ϒc-]6�n�`-�e:�[���9����e���D��e�W9�A@W�C�lJ�H�Xϥ�P��
�0s��̤��=�R��}+S�&��7X`aNRB0K�
���,Y
k�!�f����$�Z�gc���cJfK.Je´���r�]u��HS��"ve;B�7X+`Q%il� �n�Z�,!�)�[���w!��鞱�KE�9e�N�d���Q^%)i��rU^6�}�]4�h���zOJn���sZ����[�g(.˩-�H+W�$͏���\�
�
X�Z3�u�Z��[�M�[TB(���[(�B^d+�uEs�v"q�[����Bv��v&��T��,(�4��]��^7�`�w�]OZ[aI粽���n�SS��q���4�h&�*yd�L�2?-�]f0��(W@ɴ�"G*y�m� �E�O�k�`-�թ��\�˹R���%�|N�6�'iB�O(�ЮM3��8.U���禝%"�2�U���Kݡq��7[f�Qj�{�`���ns��rlsr)��6�k���ZKR
[<�I_�\R��B�+�6}��~��u�ϗ��`��e��'6��p(���y�q)M�ds���2��E�#�e�鴨���?)-7Է�6� I�Ȃ��a�.S���e��֓��d/=��9��
-�j�BQ\O�Q�ˣR�Hl%�;��R2�m]�
�
XJT���%�r#��e�\�I�����VIj��Z���z���;:a��
�1 W����Pȹ��-P+���Z�[�WI
�� .A�70�����ݘβJ�'�ҍ�����M$�Ճ΄ĵbŔRf�b��.�\+��sN[ޮv��V��)R#�:�.������Ѻ�,�Y|-C!c�֤J�F�đ0�9�8�a�%UC��7��C�|��\�ߥ���`��e���J��3d�V7۬c^mBJ2Y��8��mX<�����Ȓ���
�
XN�r�1���EAɱ�F�qw��Л{g�C�FlS0myW��`��%YQ�iSJWJ�r|�����a<�.��g�/TXǔƩ���?i��l�k�G���|M?����,�|
�6X`�n�8���{1(K��<H�J3J��r�mLn��yh�rL�k,���J��W\�7�K��L��Xn"��SI���c
wN�Y(�3��Jڪ�נ��4��7��(�`�`.=�R���`��Q�9:7*��8*��qT�2t�:��B�Sim�A���^6X�����8>)�3��҂$�����Dd5,Q
��MJ��*l�g.��8�$���W!;MR�4tvd��~4�d���s�
��
�F�c���Px�-� ��i+��ꦎ������Y�HJ��<X��
��0=��PVNқ�@���b@P�H�P��LN��Fc赶�C%�X�Pi����{!aT�:�F��h�
�
X��\�mK���Iuz�2��>�.�˴>x
��R�`���X*@�6�eWQ�﨩�XWU��0�0�J`��ĩ�
���h%X�
H-J�s��Ƅ�G�
²��(��Z��H2���3�Lq|m��T6D;�R?�~S��@R4N�1�H��A�`���s�H��y�@�.?�,�6(�$H����E��GҖ�c�(n�:)�`Ҕ[.�Ǒ�J>j�E��`-�e��3i6)d��pTQn�Sa���)���$N�/�,G�0\)�E5��[�!��*�j&�D]\�L?���
��`��v�8o���\RR!!�e7Qz��-�`��3�� i//�NU��x����x�
�
X}˶�,�t�6ΦN4Sz�6� �p,c����VN��v{>(�nJ14F��X��X:���Y��)l�N�����aoS�i1ub�ց\�v~N#w.�IRn���
�nw���K;�T'}I�l�[���v�����7X`eI6��a#��T\C(�!�"�:��̲r9jj�Rgi�PD�H�tZN�D�9qC0lG������Te��奈�2��m��2�7��#�c�㿥���:��)?ؒn�e�3鮴�dYC�5�ETJ����?N`��V\�.�m"Y�������I�
�c�S�)G�ko��0Z>O��2�#iY]��J�n��zF� ���M��r���h99�(t��k
���i'�̱�<2�k'�dž�Q��m���n�N��ZR��r�#�+ƽ�W�pH�#!A �!��A�cDl�7��!��w��V^vC���A�Ǚ�B��%g�h��t�����ZB���68��#wH�2\E[z�K�c���g`��씤�fsJ���V��ZK�L\7%R�-@�
%xVX
����TXK�0��E�&����N�B`����צ�GS
�N�KX�q!\hy���"h�W���4X?��?j?�
�0虭�zMQ����k,ÚYX�` �P�߽�aI�'�76X�`�|�Ku�
P�L�d{���r�=s� &=`�"E�agy�=���爆y���MJʽƧD�$�H1�ToB��M�G$m��ʦ�<}B�NO@�8J�A�9�d�
�RlǑ@.�А(�!](å����iڙ�Ys2-0���n����C���F?�`-��D��ц>���$s
��6��|�I_���e�o������>H, �\Z������&�S�b��wSẵ�e�\'`pU[R"�)b��e g0��L�eH�$D���Vb�`-�����d��5L�WS��M�T"�
�
X��.��V�c���z�H�뿌��`����J����@�RB�`h�RӜ�%�
�X�m��Պ�,JYo���Z�c��3i��@ �3�8��]Fz�m����.�R�����`�K������n��"\O�fP�0��
20����&c�M�$�}��\[�o��4X)�*����d�&r�@38r�� g.�R��c;d_��%�箌�f�ߍ�bS>a��L{S�h�S�l���A��y<,tV���S�nY�V�l��&���(Si�:
��`�����+��N��+��mV���%�G�����`-�����&��s������p��n(��l��]�_�d�0��d��l%��ڙ�6���Ҝ�僺=�4a���2�k ��82�w���렄�e�"k���l�آ��dJU������֙>G�U��u�gҦ�,DZ���
�i�~��*u��\>m�%����kM�H=J!4�#?
�!ߢ���[Ɓ�H��ݻ�3�Hm6U�@f��Yf�Nm������䏖���p�����F����Y�iꖪC�
A�Qqƅ�f�=F�d�t˴�~�
�i��ٚ��e��.#t2�
�q�$�i���J&�;�s�h��w�K~�v���H�̈lK����g��<*Rw�����w7u��V���<3,���\G���V7[&�,�]~��d�e�-�]Jɣ�l���u���0[4g�OH|-��ZK�N7@��iR�JZ�vAAC�(�Ħ�vk'�[.�[��H�m����!��
����4(W�rrd8瀦KAH�i�
�X`��
�<F��kΏ�"]��Yn_]r��c�6XK`Q�Ⱥ��ַ��[B��d�L���Bh��K5��P�L�f$ۃ2f:ʹ���i;���PP��n�Ͳ��u9n�l��`}�{�ӝwb���{`��r>�=��,�����ao�A��_5���|��I�s�I�Z~��k,_KJO�tZ6H� M�����N@�
��"o'�Xnߖ'S�@�m�n#����hm��>RE\o������'�r�`���I`�*s
���l?o����!I������##����
2L4}*V�-q6h&�V
c��@�#
lx�W�6T+]m�{�7X�`9T�SZN��J�n雱�)��tS*��wuy]�)��2�M������n�{�!��+-�##
twkB�,ߔh6X���|n�k��wh,2>����@N��4m{�cc{�<RY��Ԯ�OK��:�T��Ĝ�|���k,��4I�%��r:ǰ9rOy:�L+l�
"�ܢ!2��g�
�v
�JϜ[N,�w����続�������*��~M
F��~y
���l�KC��S��:
�ᒆ���
��A�!|����R��T�6�B�M���?uZ�fO�)��K���k��E��'���LA�?��`)���-���<��}�f���S�e���JI�O��[A7�"Q��'��5��D�-����<bpw��gc�\�QYۆpTʷ�d���[l�"��
�V�'e�q�6\��Т�])�f��8w�)�`�˲�#��B8fo�w�ֆ��$���mܤ�H�u�L&��S�2���2�е5���v���2���R/�z����t�)�`���$C�5dq
��`����x�����wb.�&�iv@wS;�5FmS���n�zܐ����s
uIS�&�m������rj���6X+`1^�!Ϥz�ғ~-�{��
��.�le)s��tJRi$� q�=.�4K���%1w���x����Fnm�V��dMQ3��-��=��(�Cy2�3����?z��"ñ�Z��#�l�$�J�#�Q�y 4�
T�+Rm� ��l��w���1(D��]�o�k~�1�IxTz��d�m~�s�
�`-�մf�je
Iѱ8K;c�[��6ڴL:�H�[��p75SC+X�
��d4Hd2K� ꣄�.52��[�Ъõ�7�`��(�d1'{I�Q�7���,�d7-�[6'�cJz&Ccr|
s�_�P�
�J��ٴpPfCP���m��=ͮ�����`�R�[�������r�:�%�es3.��3"���-0��HLQD��)e�{Ąip�Jf��я7X+`q!��v��X1\@D��ԉ�����-��:�U\�h�2��s���7�R:�aV�{����k�q�
�Xl���_�@�Py4�ฉsk���"�E���J1�����2|�w���)FGhI�liV���7$������0��;��Z�yy�
���J�2f<�v1u��1�G@h�!�~��k,����A��vfY�)�UR�K��H�v�(��x��b�ŀr�6�r�7�r��#K�����S�rZq��O7�6X`�f3�6
C�uzԨ�wZ9:]�
g��e+UH����rt��g��8\���$=���j:�n� &�FuKn���E��%��Z�he���(no�y'l�dYW�Ց01����)$��I��`���1DM���P��ͤ�g��6X'���u1{���ؖnCֻ�W6X`�`���o(?3-;��6K[1�c��K,�p��|��p�i������g�k��Xb
hK���+N�Ԇ[-K~o.�!�^�R�\���7hB:�sc3AU�����LYE�:�4�E(�t��1���G`v]X6X`�%�.J����v����3n"ۮ�~�^!�䘡�v��V������� ^�!�n�1���y\>&e�l���p��C���Y6X�����(�D�*
�ǹsI,���BX����/�F�jd�`�g�P��H,� �e��'!�V�-���q&ɕT��E#�~/�l�����nMC�F�<p]p�S
{�j�9����R#of��`��:
I�(�z���L���m̥�Pԭ�
�[~ݨ�\�ڨ�
�
X��$N�h��m��i=� ��bM�HY�ҧ��
�Bģ�vE�<��\6X+`�íl���sHd8,5�";!����2ܬ%�lR!�"��,�$Ǐ�
�F&H#�.5`�]Jiꦸ�7)L��o�N���7�-q�$�L���9� Fњh35۲?�V�(��w��Y��#�2 �?�A�ۑ��y�A�����M��6X���f#Շ�NhB�@ <K��XZ�L�l��$�6X+`a.�6�@3U�������Aq��aD^�v1-Q�e&.�2fA��]Z�k��v1f�im`����ci��$����
�X�P����:�pJe�US*+A7�%��ʜt�M�@�s�㭹��(�mi��.�"�Jy�1}�:̊�:J�q��=�:��FVs�@,�����ܸ�-���|GOڴ�#T�TޙƝ-"rbI~��дy��
�i�v �<a���[?cc[����,�����0��J�rQ��y���#��:��
�pGiO#�TJU�)�Z�
c�SM\*�^�n��
�O��V�y�h����gi#�s�wD�%�Zk��V�㟠b�#�E��c��>��=�:�=Rv1?�`�3Z�����)�8�1iC�v% Le{m���Mr4���l����.�GD�H�7��<
�n��`Z����H�`�-eдl��c���/-�6���.4n�qiH�1e1���6X���ǂBҕ�����L@�Np�qt B�Ο�ٖ�G�Rz���1�G��9K�!)����|t
PY�Y^*������
�I��lh[8l-��2�1ɖ��D���Ĝ�r(^�c��R�$��NV�G1)%?M[B�C�lJ�#v���w�X�t�
�X�+R�w$|V��q�-Ѩ؞��
�Xm� �m��bK�g.�!�$�q�4Lt�%i�f�r���B>Y&ly�J�h���)b�]�)1�\��o�B�=��`K\�)��<��A�O��ߕ>��˼�K)�!mDٗ��-zR�e����`-��r���%�]y�}�Sf�\i�VE -���J��X�t�R���(CM)]Is�x�X�
�z����
p�k�Xژ7Xk`Ie�D�[j���/9x�>.�V<�|�l{�5W�ذ�����x��Z��1*��Mg�IEND�B`�media/editor.video.js000064400000007651151167475110010575
0ustar00// module: start
EasyBlog.module("media/editor.video", function($){
var module = this;
// require: start
EasyBlog.require()
.view(
"media/editor.video",
"media/editor.video.player"
)
.done(function() {
// controller: start
EasyBlog.Controller(
"Media.Editor.Video",
{
defaultOptions: {
view: {
panel: "media/editor.video",
player: "media/editor.video.player"
},
player: {
width: 400, // 16
height: 225, // 9
autostart: false,
controlbar: "bottom",
backcolor: "#333333",
frontcolor: "#ffffff",
modes: [
{
type: 'html5'
},
{
type: 'flash',
src: $.rootPath +
"components/com_easyblog/assets/vendors/jwplayer/player.swf"
},
{
type: 'download'
}
]
},
"{editorPreview}": ".editorPreview",
"{editorPanel}": ".editorPanel",
"{playerContainer}": ".playerContainer",
// Insert options
"{insertWidth}" : ".insertWidth",
"{insertHeight}": ".insertHeight",
"{autoplay}": ".autoplay"
}
},
function(self) {
var $Media, $Library, $Browser;
return {
init: function() {
$Media = self.media;
$Library = $Media.library;
$Browser = $Media.browser;
var meta = self.meta();
var insertWidth = $Media.options.exporter.video.width;
var insertHeight = $Media.options.exporter.video.height;
if (insertWidth!==undefined) {
self.options.player.width = insertWidth;
}
if (insertHeight!==undefined) {
self.options.player.height = insertHeight;
}
// Panel
self.editorPanel()
.html(self.view.panel({
meta: meta,
insertWidth: self.options.player.width,
insertHeight: self.options.player.height
}))
.implement(
EasyBlog.Controller.Media.Editor.Panel,
{},
function() {
// Keep a reference to this controller
self.panel = this;
}
);
// Preview
self.editorPreview()
.implement(
EasyBlog.Controller.Media.Editor.Preview,
{},
function() {
// Keep a reference to this controller
self.preview = this;
self.initPlayer();
}
);
},
initPlayer: function() {
// Show loading indicator
self.preview.showDialog("loading");
EasyBlog.require()
.script($.rootPath +
"/components/com_easyblog/assets/vendors/jwplayer/jwplayer.js")
.done(function($) {
var meta = self.meta(),
place = self.place(),
id = "player-" + $.uid(),
options = $.extend(self.options.player, {
id: id,
file: self.meta().url,
}),
player = self.view.player({
id: id,
meta: meta,
options: options
});
// Append player container
self.preview.container()
.append(player);
self.player = jwplayer(id).setup(options);
self.preview.resetLayout();
// Hide loading indicator
self.preview.hideDialog("loading");
})
.fail(function() {
});
},
meta: function() {
return $Library.getMeta(self.key);
},
place: function() {
return $Library.getPlace(self.meta().place);
},
setLayout: function() {
},
"{self} cancelItem": function() {
if (self.player) {
if (self.player.getState()=="PLAYING") {
self.player.pause();
}
}
},
//
// Insert video
//
"{self} insertItem": function() {
var options = {
autostart: (self.autoplay().val() == '1') ? true : false,
width: parseInt(self.insertWidth().val(), 10),
height: parseInt(self.insertHeight().val(), 10)
}
$Media.insert(self.meta(), options);
},
resize: function() {
if (self.player) {
var width = parseInt(self.insertWidth().val(), 10);
var height = parseInt(self.insertHeight().val(), 10);
self.player.resize(width, height);
self.preview.resetLayout();
}
},
"{insertWidth} keyup": function() {
self.resize();
},
"{insertHeight} keyup": function() {
self.resize();
}
}}
);
// controller: end
module.resolve();
});
// require: end
});
// module: end
media/elements.less000064400000025232151167475110010343
0ustar00/*---------------------------------------------------
LESS Elements 0.6
---------------------------------------------------
A set of useful LESS mixins by Dmitry Fadeyev
Special thanks for mixin suggestions to:
Kris Van Herzeele,
Benoit Adam,
Portenart Emile-Victor,
Ryan Faerman
More info at: http://lesselements.com
-----------------------------------------------------*/
.clearfix() {
zoom: 1;
&:before, &:after {
content: "";
display: table;
}
&:after {
clear: both;
}
}
@sprite32: 32px;
.spriteGrid-32(@x, @y) {
background-position: -((@x*@sprite32)-@sprite32)
-((@y*@sprite32)-@sprite32);
}
.horizontal-gradient (@startColor: #555, @endColor: #333) {
background-color: @endColor;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, right top,
from(@startColor), to(@endColor)); /* Konqueror */
background-image: -moz-linear-gradient(left, @startColor, @endColor);
/* FF 3.6+ */
background-image: -ms-linear-gradient(left, @startColor, @endColor); /*
IE10 */
background-image: -webkit-gradient(linear, left top, right top,
color-stop(0%, @startColor), color-stop(100%, @endColor)); /* Safari 4+,
Chrome 2+ */
background-image: -webkit-linear-gradient(left, @startColor,
@endColor); /* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(left, @startColor, @endColor); /*
Opera 11.10 */
filter:
e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d',
endColorstr='%d', GradientType=1)",@startColor,@endColor));
/* IE6 & IE7 */
-ms-filter:
%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d',
endColorstr='%d', GradientType=1)",@startColor,@endColor);
/* IE8+ */
background-image: linear-gradient(left, @startColor, @endColor); /* the
standard */
}
.vertical-gradient (@startColor: #555, @endColor: #333) {
background-color: @endColor;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(@startColor), to(@endColor)); /* Konqueror */
background-image: -moz-linear-gradient(@startColor, @endColor); /* FF
3.6+ */
background-image: -ms-linear-gradient(@startColor, @endColor); /* IE10
*/
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, @startColor), color-stop(100%, @endColor)); /* Safari 4+,
Chrome 2+ */
background-image: -webkit-linear-gradient(@startColor, @endColor); /*
Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(@startColor, @endColor); /* Opera
11.10 */
filter:
e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d',
endColorstr='%d', GradientType=0)",@startColor,@endColor));
/* IE6 & IE7 */
-ms-filter:
%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d',
endColorstr='%d', GradientType=0)",@startColor,@endColor);
/* IE8+ */
background-image: linear-gradient(@startColor, @endColor); /* the
standard */
}
.vertical-gradient-3 (@startColor: #00b3ee, @midColor: #7a43b6, @endColor:
#c3325f, @colorStop: 0.5) {
background-color: @endColor;
background-repeat: no-repeat;
background-image: -webkit-gradient(linear, 0 0, 0 100%,
from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
background-image: -webkit-linear-gradient(top, @startColor 0%,
@midColor @colorStop, @endColor 100%);
background-image: -moz-linear-gradient(top, @startColor 0%, @midColor
@colorStop, @endColor 100%);
background-image: -o-linear-gradient(top, @startColor 0%, @midColor
@colorStop, @endColor 100%);
background-image: -ms-linear-gradient(top, @startColor 0%, @midColor
@colorStop, @endColor 100%);
background-image: linear-gradient(top, @startColor 0%, @midColor
@colorStop, @endColor 100%);
filter:
e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d',
endColorstr='%d', GradientType=0)",@startColor,@endColor));
/* IE6 & IE7 */
-ms-filter:
%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d',
endColorstr='%d', GradientType=0)",@startColor,@endColor);
/* IE8+ */
}
.vertical-gradient-4 (@startColor: #00b3ee, @color1: #7a43b6, @color2,
@endColor: #c3325f, @colorStop1: 50%, @colorStop2: 51%) {
background-color: @endColor;
background-repeat: no-repeat;
background-image: -webkit-gradient(linear, left top, left bottom,
from(@startColor), color-stop(@colorStop1, @color1),
color-stop(@colorStop2, @color2), to(@endColor));
background-image: -webkit-linear-gradient(top, @startColor 0%, @color1
@colorStop1, @color2 @colorStop2, @endColor 100%);
background-image: -moz-linear-gradient(top, @startColor 0%, @color1
@colorStop1, @color2 @colorStop2, @endColor 100%);
background-image: -o-linear-gradient(top, @startColor 0%, @color1
@colorStop1, @color2 @colorStop2, @endColor 100%);
background-image: -ms-linear-gradient(top, @startColor 0%, @color1
@colorStop1, @color2 @colorStop2, @endColor 100%);
background-image: linear-gradient(top, @startColor 0%, @color1
@colorStop1, @color2 @colorStop2, @endColor 100%);
filter:
e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d',
endColorstr='%d', GradientType=0)",@startColor,@endColor));
/* IE6 & IE7 */
-ms-filter:
%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d',
endColorstr='%d', GradientType=0)",@startColor,@endColor);
/* IE8+ */
}
.absolute-center(@offsetTop: 0, @offsetLeft: 0) {
position: absolute;
top: 50%;
width: 100%;
margin-top: @offsetTop;
margin-left: @offsetLeft;
}
.bordered(@top-color: #EEE, @right-color: #EEE, @bottom-color: #EEE,
@left-color: #EEE) {
border-top: solid 1px @top-color;.box-shadow(inset 0 1px 0
rgba(255,255,255,0.1));
border-left: solid 1px @left-color;
border-right: solid 1px @right-color;
border-bottom: solid 1px @bottom-color;
}
.drop-shadow(@x-axis: 0, @y-axis: 1px, @blur: 2px, @alpha: 0.1) {
-webkit-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
-moz-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
}
.text-shadow(@x: 2px, @y: 1px, @blur: 2px, @color: #555) {
text-shadow: @x @y @blur @color;
-moz-text-shadow: @x @y @blur @color;
-webkit-text-shadow: @x @y @blur @color;
/*
filter:
progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color', Positive='true');
-ms-filter:
"progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color',
Positive='true')";
*zoom: 1;
*/
}
.text-overflow(@property: ellipsis) {
-o-text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
text-overflow: ellipsis;
}
.rounded(@radius: 2px) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
-moz-background-clip: padding; -webkit-background-clip: padding-box;
background-clip: padding-box;
}
.border-radius(@topright: 0, @bottomright: 0, @bottomleft: 0, @topleft: 0)
{
-webkit-border-top-right-radius: @topright;
-webkit-border-bottom-right-radius: @bottomright;
-webkit-border-bottom-left-radius: @bottomleft;
-webkit-border-top-left-radius: @topleft;
-moz-border-radius-topright: @topright;
-moz-border-radius-bottomright: @bottomright;
-moz-border-radius-bottomleft: @bottomleft;
-moz-border-radius-topleft: @topleft;
border-top-right-radius: @topright;
border-bottom-right-radius: @bottomright;
border-bottom-left-radius: @bottomleft;
border-top-left-radius: @topleft;
-moz-background-clip: padding; -webkit-background-clip: padding-box;
background-clip: padding-box;
}
.opacity(@opacity: 0.5) {
@opacityPercentage: @opacity * 100;
-moz-opacity: @opacity;
-khtml-opacity: @opacity;
-webkit-opacity: @opacity;
opacity: @opacity;
-ms-filter:
~"progid:DXImageTransform.Microsoft.Alpha(opacity=@{opacityPercentage})";
filter: ~"alpha(opacity=@{opacityPercentage})";
}
.transition-duration(@duration: 0.2s) {
-moz-transition-duration: @duration;
-webkit-transition-duration: @duration;
transition-duration: @duration;
}
.rotation(@deg:5deg){
-webkit-transform: rotate(@deg);
-moz-transform: rotate(@deg);
transform: rotate(@deg);
}
.scale(@ratio:1.5){
-webkit-transform:scale(@ratio);
-moz-transform:scale(@ratio);
transform:scale(@ratio);
}
.transition(@duration:0.2s, @ease:ease-out) {
-webkit-transition: all @duration @ease;
-moz-transition: all @duration @ease;
transition: all @duration @ease;
}
.transition-opacity(@duration:0.2s, @ease:ease-out) {
-webkit-transition: opacity @duration @ease;
-moz-transition: opacity @duration @ease;
transition: opacity @duration @ease;
}
.inner-shadow(@horizontal:0, @vertical:1px, @blur:2px, @alpha: 0.4) {
-webkit-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0,
@alpha);
-moz-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0,
@alpha);
box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);
}
.box-shadow(@arguments) {
-webkit-box-shadow: @arguments;
-moz-box-shadow: @arguments;
box-shadow: @arguments;
}
.columns(@colwidth: 250px, @colcount: 0, @colgap: 50px, @columnRuleColor:
#EEE, @columnRuleStyle: solid, @columnRuleWidth: 1px) {
-moz-column-width: @colwidth;
-moz-column-count: @colcount;
-moz-column-gap: @colgap;
-moz-column-rule-color: @columnRuleColor;
-moz-column-rule-style: @columnRuleStyle;
-moz-column-rule-width: @columnRuleWidth;
-webkit-column-width: @colwidth;
-webkit-column-count: @colcount;
-webkit-column-gap: @colgap;
-webkit-column-rule-color: @columnRuleColor;
-webkit-column-rule-style: @columnRuleStyle;
-webkit-column-rule-width: @columnRuleWidth;
column-width: @colwidth;
column-count: @colcount;
column-gap: @colgap;
column-rule-color: @columnRuleColor;
column-rule-style: @columnRuleStyle;
column-rule-width: @columnRuleWidth;
}
.translate(@x:0, @y:0) {
-moz-transform: translate(@x, @y);
-webkit-transform: translate(@x, @y);
-o-transform: translate(@x, @y);
-ms-transform: translate(@x, @y);
transform: translate(@x, @y);
}
.unselectable() {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.no-focus-outline() {
outline: none;
&::-moz-focus-inner {
outline: none;
border: 0;
}
}
.word-wrap() {
// white-space: pre-wrap; /* css-3 */
// white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
// white-space: -pre-wrap; /* Opera 4-6 */
// white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
media/icon.media.png000064400000064133151167475120010357 0ustar00�PNG
IHDR�`+a�<tEXtSoftwareAdobe
ImageReadyq�e<hiTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:CBAE10392E20681188C6DB71831FAD1E"
xmpMM:DocumentID="xmp.did:0BB70D2DFE2711E18408E89263B9800E"
xmpMM:InstanceID="xmp.iid:0BB70D2CFE2711E18408E89263B9800E"
xmp:CreatorTool="Adobe Photoshop CS6 (Macintosh)">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:01801174072068118A6DAE9BC8780012"
stRef:documentID="xmp.did:CBAE10392E20681188C6DB71831FAD1E"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>Z��d�IDATx��XW��It5���M�d�I�)��Xb���
VĆ(����]�F�NL�b{���bC�!F;�(�b4*ҿ��
3d��)�½���<�3�̙;3瞹��;ell��?o�[⍷�o��}��w�\y��2����~V��>Ic��q"�\�V
���̃f#��$..�L���ʕ���u����"��~��[�~x�}B�X�>��������.�d���m�c�̟,] ͳ�c_ˎ�'Cv젝��ԫW/�dyxz������Ppp0m߾�8�5�������1�|S��cM`�
��o��^1��Ms'F�����'�U�O+TW$�M�II+�ȱ�A`�dD���-�wzs�.�j����o�����ׯ��;wi��Ŕ��D)))�h�"z��ݺ}��9B�W�^�o���,�GV,���R�ڵMn�1�wY��M!�~�É�)K�����e'I#i�9�X�Q�J��,b�gU+�<���!�3��:
���k�O���}n���K��d�
�K�O��K/)FP�?zL�?��Ǐ����'OҼy�^)�Ym3�_א�v+7%Y5Y�X�XY���/�����<���@gΜ����4��ފ�+Dx��|E��#'����?� �c�X�#=�'O�,���W����
�UP�Or=r]()ևD�o�I��P;WO�%K�d'���<y��3fΠ�[��l��4{�l�?>͟7��-[J۹��t��a�z�*M�0�$0�����;U��v+�����=둁�=̪T�r���>��Ç����
�FEE=�v��o�����]>4�'����GNb�n�|�,Bp?��X�>�W��ԤE{�Y��_L_�:��>I���g��g�RSS��?^3��x�i��O��\�\J�u"��+�n�-
��O?QRRR��}ƺ��s'�N�E�I/m۶�""��իW�ƍt��m�p�<�as8x���j�f���߫�֬f�!������ܹsJ���{��q$�`M�'(!1�"##�� ���%GG�L�/��,H4X��>���H>}䯉]{r��A;�g2��.�d��@}$P��j���g��ѣ5x��e
��Q�Gr~��?�d�gE��ƅ�����U��w�
�F��֯ib�����M�39
8f�4�� ���
��=iذ���w���)S�w�o�5��&`�p�J!��X�Xi�$V�z�X���7�g���Liii�%!V���;v�����l�o�5�EGG����3�?��c�r�����|�#Ҍ���U�Z+��i&Po�d)i��(�Q�J��KHHXڴiS�֪U+�
2Z�#���a����������$�mK�˩�W��5#(�̙3���;�<
��D_G�w�����ᣇ��@|kF7߲������=Q���PM��5,�NåE���)Y3��g%�'�}��:~��U�{�����>���B�KL�.◛��$���XF����>���W������e����>:��c#F➫V��͌q?�1�r�&M�(�S=?�3��:�ߞd�p��l�{5I�=���o�1�eڴi�i�&Z�`�2�cO #_��U�|���0��7��dʍ�0����Ě�J�<���J���Z�J���F"�a%
�����ϋ�����@@�#��x�u�0�����M
��C���Ӛ�峌e�Xsń5j�H��-��i��p��r^u���@�er�)bNk�����^נ��.u�z�zn�K����e��Y9��<yB?��Q���6m�D�xB1��j���P������&�B1�|;�x��%��9럺4bg�Dina:x�/0%5݃r��tQj��9h2�wY������W��rU��[�f����5�e�^��N�U�~}�D��oN���={��=9�j��*Y'?�}�§ۑ,�N��D���ܦ!�wi��{4f�=�~���#e�����O��X�g�k�}N%�@� 5�3��� x�&3_Y��sW������}�HS�ެ����ǚ�ES�5�)g��
!������ʜ�9I�cA��F!ᔻt��P���Mc�`��m{Gg�N��(���(`����W�"5+3g��ϰO`Vǔ��E�#��<�u���OQ��P����V���u`@�ŧ�;�{R��D�$�7��-Z}�m<��\���+Oh�/�3�~��>b3���n��o��������N(����j5��
<ت
�Ӭ��6R
�h^�s+��s�:�]V�����ML�Ξβ ��;�O�S�KQ�F0
l.��ѓ�jC�)ی`��`���v5��_5����B��T�7�Y�竌T�Y��&`C�';�}
M�|�c#�
�W��>�P'���ׁy��QMߤ��H�2�["{o��I���N���B����۠H�I1"c��PPPPzP1��JߧU}R�~��l�WE����S�MF/�&��gU�f��Mf�g��
Q���AL�~>@s2�b���6#E3 ��m��������/L�W`�ac�#��@l���K�?�>����eH��-#�Kbx��Ж1�H����]v�4b�T�6���w���駅�f�
e�3����gD=yj|k�a�t&P�8�f��~����7���-Z�.;����40E�
�b��Is�aZ��ڂ
�fcu�.t�W`���ݥ|���������/>4X�Q%����k�1��GXC�F�k�,'
�D�Q�:77ُS��=�;��ΝK˖.�={�p7�huy��]��L;���}�5����2��_'�>�W&�0�deM6
�_�nc�f߬�A���+}_5��@��[�M��6�}��+�d�a�o��q�Y%��KbP��f�Sh�)���kݺv;ܵk�h����ŕ\\\�]\]����t�7f�
�G�ğ���@�ah�2�0"��N�@�:HT�i��7r�|�2�|xꭇb.H��f���m�?�
��J��A�Y��t�T�a��2���N�f$�����4�e��ds'S�3�ڠ�@��c�lѪU�V;W�'i$-3K���X��I0��3���f�m箞��;�T/�T��WT���d]��>I�i��k���:�E�9Ә���aK��Y�XWXI����d_ |=��@`
�0����W�E�5f@NX�ứS+��:r�z
�:����?o�[⍷�o��}��w�\y��2����~V��>Icm�moo_�U�5�5�Ց�VA�����겆���:��*�<��eMa�e%�:�n+[���z�~�#�/�1�x����2r���߷�o�ֻ^|�����>�@e>�Ī���6�'i8m+2���Xd�[�A��Ml�>g��_���2��K�f�R){d�\�߭�9�=�F��nF*�u�2����k�A�1�x�bݛ
�N��Ge?���W�O>�F�V��H�e��4�V��c-�UV��f�Y�Lh�*�FO#�����2���R��%�X��ŌKMj̼9�JM>�J�.��+��Y *��(r��.�4r��N|�LY��l�L�/;II+�ȱl�J��U��ʚΪ�zOm����D�+\a�Ϊ�zOm����y���GO�,k|*N<ݤҤ3���&�����?�!�>��d������ӓ��j������[3|�%Y5Y�X�XY���/��{xx<��p��ݻo�?�ـ�d�&��G�ډ���^^̟��1r�|���:�(��,�K��u� �W�����~i~��7�˱R��r����۷3.J�e���!ǔ������M>s4��D2����!�%�Ǧk�u�e�}��Z
`V�}
>"���j�~�T�������fU*�kqww�]{���)S�[�n
��}��(f���������T�6m�F�����Pe���G�3��,�U�]�l6i�4gY%�l����*!�A�=PM#3�}��zW'F�J�*Ժuk��d]��>�Zӳ�y�
�����_����o�40�{
�pmpﯲZ����s��F��k���ѣ��E�q��Qw��5�b@��
#777�@@`*������G���lK�d2��.�1��H��'��
�D��I����I�PM#�/ـMT͔�{;�4�4�l���;:�ᓥ~]���>o��z�s��'��]~"��;�&�B�X�Xi�$V�z�$�E�0��N�Bv��-t"�
�%f��L���u�,�?
H�@@`
>-_�4��|��e=���_rr��F���DX�tR�]�!��/�N�i=���I5Si,�,���:�� 7�h`u� egs0�`k}.��fq���?Y{�0�/�/0������=Q���PM�~��I[[$(p݆M�q3���H�
�J��xT����>E={�� �45�Y��T��c٫7s���3r��3���̟�4�c�GW~l��-�]��]�>�}/�f��3��e�?�]�P]�>�}/�f��)Ο��Z����_����䉯%M�uT�D��%�$V���IЗU��o�V�n�M�794�ܮ�
����g+���1�Z@@+Û�"Ub��k��/-���&0'�5�gYb���Fg�d��:�V�n��v3�9k�љ*𱎵�m0�� Ν�&�S�\��_�Ԫ�Vj%�E��� �p�݁���d�v��.���Y&Q��[��J�.6�A��#��6�ް�w�w�/�����&�p4���R�-��"g?.W%�Q�}�
RL�����mzb��k��L9(^��M`�&��9/M�F>w~�L������v��9��s����F��zA_CQ����\i
��՛��X�Xӳh
eJ�Dק���-<(c�U��f`�����`�JOq�]L�]&���9������(_�Ԭ̜�ϟ,5#h80D�r��H��`sט��u�uE����ꡎ��&P5c�Y�Y�eF�ϟ��:JXxbLȟU^?
��˗�f�������u���'Oґ#�i��ݴ}�6ڼy3k+���V��zA���5X�(`��V�N���y�UE�;��
&{���j�
� ����Ш�#����@�`0�b����7�d�S���9���&��sy0�ۭ�ˮV���M���O�}E9�@����'l��z�`['��T�W��^6���v4�e"h?kz6l�/))����֭_�_�ҥK�X�Y�(2�,�?�$�5@4J����������Q�/����04�
G���(�@�9�v�(��p�l{�(`aQ*Zth����
��M�3�?�� �L�AҰq�kΫ,L�mA�?hk��-Q��
�tnܸ�ƏO�G��aÆҷߊF��w�Çϒ�E5�he
�#k�:�w�_}���ߢ�겳���I`!O,���suu��i�mYC3F�S�A
�.�.ڤΚ��w��]��/>4�j�Z%����k�S���֞_l�:�L�>?��:8�+&p�:�$;d�\�PZ�W*��zٲe�ss��t�={��?�f��s'�p��,<������W\��r�z,VG�Dл3&�vs��W�
����$+���7
��[�M��6�}��+�d�a�o��q�Y%�B�٧#���0���^��_&�ly5�4�9V�:�4k���UV��_~�ë��:>/��r�z,VGa�
����Vd�l��5j�T�֛?9V>9 ��x���.��6�m(}Ni�J�5���HХ��:
�=� ��u4#99VCi�DÀ@������>@�#x�X3[��@�����II��̒c���u��h=F�m箞��;R�:�T��WT���d]��>I�i�!��4��Nyr�zL` �3k�
+I�u��+����@`
�f`g���(�1�r�z
�M�X!�ב3�k����X5�~U�`���@Θ�!C��eMa�e%�:�n+k���eMa�e%�:�n3��k�����l�u^�z$묙�^%��r���'�Y�@aLY 9�\]]�;:����J�:�^��ѱ4��s�h)6�?�d�5I]�����t8�w���6�WƯk+�E�H��e���` �,V*�����2���ܽ�Z�Fﱿ�������)�u���i��hD��{�E�b�'
������[Y��~���9�?�}����$��?�Dz���
�y�"V���w����OO�Ul�J��ۛ��fc�\Y�d�W��{��q�3�8�3ݻ�@���6�'iLl�Bs0~��%����`��K�1�?��l�"�AI�C������6��i�p�#�a�Da�{���&7���LJ��H֭��c��������$ǰ�Y�0(��p�l�|f�O���x�����>���?�,�K���w"����-���c�(:�U��[���S�>?/Y����߾{��\����x�}��T�@6s~Oa�4�2��{
��h�gC�X�_DDeWk��.(���J"[���Lf�|����S$��Z
�|���a�
�$_��(0C>~����[��(l�� �,LL���j�^fc�[3}��۶r�o<�?k4���}�'�Y���
�E$P�^L�/E�:*�u+6�|�����pܹ���^������ߕ�&0�X)���4i]�|�Ə�a�d]��>��c����c�h�n�Νt��]Қ�f�&�tP���9�W��\��#>>�rB����r=r[��ʉf�|�}�'ڛ\쩶O9o���ٗb�)6�_���M�/Z���T�
H���P���oZB=��+���5C���q3o�����X�f��zY��9:6�G���o��`��Հ/�� ѱ>�#�Hֽ��&[������;�3%q/�Ĕ����t��u�4��p�>�'FO1�w�(�O$��3�N5������>|H۷oW$��3����������bC~X(66�$-����)D�G弍?o���K�do�H֭�)X��i,,:��b�$��������6��T�2�$i���8�vꀏb��m%yNwR
/�ﺼ�o틎���"b<��^��g����2��Ɲ�����Tz`
�v��
�4������
�,�����F0�g��N�k�ᓥ~]T���JX1vZ+~(..N��*�i}cy)�����6t
���3)&1>�:�J�/���r@^�m�O�X��U
�pt���M��~��~~3�4?_/\�@�Νc��s�yy�t���s�㥤�c�Xc]DTT��'Nбc�(22R���6��a�W�m�J����<�`�klr�ik�O5�k���/��m����M�;��۱~�N�(y���n�UZ����F7�1ܬ�F�i$�X��v�}<I�;�[�l���$����L`
���M`�O��
�M\�a�>� �G�������1s�/]��#�O��b��^^�HtG���
�I���@>F�5�3�����a�b��͟k@���tX��{��_�-Q�d��O$��6�'i��r�:��L�&��tD��*{O�DK?�������JɣR�Y�
��ec]�ɓ')!1������M�����olvP�Y������?i�'�|}��Q�l*Ӹ�*��q^+�e)��ve_�����)��F7�a���}*�1Vaݻ-�h��'D7��]{�JW�K�e��4���`��#���}s1��>��o��a����P~x|8��ǃD��*@>��̟-��X1x��k`��Ư����$1|���7���.�����+�D�jۺ*R"����IIkmЇ
XpDl���-�0��B�4�̲ٝ�4f��L�2�F����gΜ�,�zjj*%��JJ�F�O�HZ9F�5�H�/�
�c��D�.�`�Lgs�5@���
`7]�wZֳ�'&�G���^���O���3�/ݗ�d
��o��iڠG��-^jz��lW�|�0�/
�v�@6z"Y�*�5@�1�w�/�T(��҃tɺf�?�L4$?M���`�fg����0��>?G���������]��ϟ~{LGe8
�����;�$�����O�7l�RM�+�Hi���O7{ѵŇ�*�V�q�)��5@PA�ܯN3Y^"�,�l]�g�;�f�%�����b�O��p��=JKKK7�����4�V�1ŅH����H�a�Lw���0w(�N�ޅ�ry.۴8����U�Rz*}��҃>>��f�H�
v�ȟ�Jod�
`Vo�H�p��εɺl��A
<�K���-\��|�Q�n)�/��
$�AéI['�?�2�0�A
�l�9��9���}���
`v��|L
;���9���e�?�����@i�
�=6}1����[��+۴���Z��5�锦W/��<���;����w�le�&�̙S�_�U�^F3��ɾ3gLg�4�?N"�4P0�M��TF�0���#�b�d�GZ� �T$�3�}uͽY�$0��``�}��uk�z���FO��K��'Wo�'��}GR��0������O-;���5�ĕ�O#�.=�40�`��c�|���^��F�D��H_L��4�V�y�W�6
7���;�5�zG�����ܬ�`1y��ͤ�&`��V��c��z��Y�]�L}~1xK.O�Q�i�l��n�~��䫘�X1gLn����W�
7���S�~�70��V��7��ԧ����^/P�MO��U�zQy\�#���7���u�yV"�L��'��>�D�~�:�3Nm��[doo�D
i�ɮC��4�J8>f���O�"Ki��}�)�]z��>kū�f�5D5���˃-"��'0�b����s��i�e�P1���{W�����00�N�a�q��J��v1��]Z�$"(��;���l�pm WU��[��
1}&��qM`QS�
�Q6v �;(��I�O$o��Uik[� �=�ǘ�Up<��Eu��d6&�2���3ʧ�5�_Y l��Ą�L�~~��
���ϟ]���Y���(�ӽ�a�'�O�Z�?`��(M��|~�&`1p���4��>�הm�O5�i|���f���?ME�j&���W1���t4� ��J��ɾ�����T8�����}sY7A��`c�����T�0���\�y[��cI�Ѥe��{�
̟J�|�x���l��zL��_L_�����SG�xdD���T
�6�:-�u{~4���8��X&��s7��z���W�Mc�c%��h_u[ySߟ�j�i�s�$�#�n+_Y���ͺ�z�zĺƚ)�%6Z9`^���
��4 ����@S�?�yS�T��!�:h�&`6v�M���+M����=����ʤѪ4�&`�"b����*(�3E]�
�e@O�5�y1��(<��SF��;}��?@GWe�� X5�h($��@�
�"���.J�N̠D�����#` 0^�;>�ݽ�t��vChPh0�ͽj��a�֬��ͺ�ɝU�������С ��`�#����>J�@�h�>ȯ1M�^�
�Z�1��)�
@�@%◾�ޤecՈ�g6���ʛ��3�qr����0��^ʵy�pd����uc9�����Mc���q���?W`\���ތ��>B�mPF���^oo�4n��6-�$1,�f��Ə��=�0��q�G^%:d`�D����3�d���ٓ9�J���tF�����`$請��4�q:���EGG+}U(oQ�{Z/,,,M���ȟ�KrL��k�@S@_�n���Ǘ��&�}�X�!�uOup���kk[������R��у(��M��
��_6}i��ө���+?$�F�$@��ܢ~y�f�`�&M�
����%C��a��}s��!��_����c�Kץ���lljM�����{Y�n]�ڵkXO���7Q��f�3F��)}eD�H��F5߸als��#j���q�h��F�g��s:�~;���� ��I8��ƞ�_�x�^��A�Q��v�B��E��B�ێ��nk�(w�ѣ�y�
6�Y�zujJJ
�f͚�����2���9<1s5��<ԑ��d�`A�!pT��F#��VC�Q�OU�Հ�W��_�GS�_;���^Z5¶H�Y66ϱ����������gL����a�<�yN6ɏ?���Ї�El�Y����dӌ�0����+@`�lނ�6hL
5�F�M2����T���tn�E��DGfw�;��nL�"c��m����I�=w����66%�}�9[)9-��-$걒�eѠ
D>ۉ�Ɛ���נ��6�b���м5;i��P�[B�Vӌ�h���4u�V��x3M���7�w���ws�%��pO
��h��Q��|E�E�i6��bԴQj֤%5kjG͚��&MZP����bW:2�3�ՁnF*M��8o]����դ��_)6s����/V���*��?����u?��9Bn�f��M����I���/�=JJ�F}��3��ͦ����ȅۼ�S�ΥK�#d�9����W&���Կ��X�O�e��X@`�4�ц.�\J��6��Lv��e�vԲEkjagO�m�(ja:�¦u�+�+i�-�bk͋��5���\Ӥ�+P���?l�V�~�ݫS^z��(������-���}�_D�b��D�;⧃u�o-�*��f��N�o��=hŞ�2�-�s�V�=�Y�鮳�s4�`�0�f�ܫ)VS,������l����8̆�~oC�&�P�6�b��u�dߪ}ݼ
��La�;�����ٝ�<��Q`���5Y{����M�i���
��.M�D��>�b����66ef<���ʕ���Y6��>���J���y������}�,�I�ϦЭ��Ts���Z��kp7��E�Ғ�Ӵt�t���%;N�O�Ѵp{��m�"��'hV�I��=+O��(������ݝz���N=z����s/%�#��"�Y�5t�ޝ���ɺl�}�����3E
y=�'Ə%KD���d�
��=-<`C�y��E\v��]�`߅ڶ�@��)b���LOB�G�[�h��vF1��&���wgо��ݼ����Z3/����1��i�
1��^q�)��@��U��_䡺u㗽��U6��8O�Q���=������GYA��6����(>9���A����$����XɃ/f\6������}����-�Es���:A~�~��?Sչ6TeN����_y�Z���x����N�����i[�N���I�Y�Bv��t�إ���c�Xc]Jڳ7��N���Qъd]��>|M�`6ͽ�6���KS͟jce�@`�pׅoh�1ZiC�Q6���
���B��m�C[7j�ؙ��:ӁY��sJZ�Mc:�#��h�
��cվ�z*����)��}LC��i��'4���@c�%и�h��x����\'�tld�'c���j��T��駷��3U���C�'$R����eh��O�ܑ��'Em����2�{��|�����3�N:�Bs�VV���|�fXH�G���uGi����0����,?@c��+��8E�>r�~���x�H���S�ҁ�Gh}�Z�aS���2(�o�'i$�#��B$�?<���lS�?�� �WLh��W���b3 X#Uq�=h��/M��l�v�
��6ur�NN�\�MW�7���u��c[�ᕣ(|���*��}�oX�I����t&��_5�{���_�vש��;��L�y%���O�<��3��֊��m6e�72�n��+}^���_���/Ӗ9���^��?�H��S��'���F�
����d���O�D>� ��)�i��3�����C���M�����;�(Z��%�R�[�nƍG'�Nц��i]`��T��y)�$���cLq!��}J����̈��<�#Q�X-���ӯ�u�d�&�5`u&�� 6��bj<ņ\��չ7�vq'W����ڍ;w�ݓ[��mh��iߢAtdNg�U���[�B�}0<,���sw��H���7�x��ݥ�!��=���G�$��|���F[�n�!�/�oX͚��R�?F��>��D�q�n��t��C������7�ʾ���Q�UFx���i#���#fӒ��f0��!
���B��;nK�������1� ts�a�@/:�o.شy+m��A����1I�uw3����ٳ'��S���U'
`kwN��k�/h�����4�1`�&�17���X�����
Ɠܺ�+��r��A��i��h�w���A���rx���j��NfmceEj*�+��D&��s:������c\U@�y��k"U��-Us�j��w�.C�K��j�^i�ƬL7��Q3T#�7FX3��Cg�����zM�B������t��4v��e7f��˒��)M�ۆ����_�����ް�t��U�m���������%�X��*c����8�1`�,�%���M��ɳW�y�����ZP����ǎ�|;�I��kz�ye��d��NF5��^������4�W�t��
��(�F�5�o�V��j��6D��rl�{M�`�5�i�T���(u�!��~����ۏ���{�_�H�6�@�@i�5r$ݽ�;ű$��(t�ԉ:9w&g�.��$�u'g��)CN�w���h��#-Ւ�҂֎kE���(0�B�E��u�}�����v�M�k>0���W g#�)
��o���n��^�&����i�'��M��U��d��C�YM{�QL`�3-��u���u�%<A&�8O���{��X����`,�<��;W�Իi��F��y��,d��'��u�ϊ���XeG^MM+�b{.�'vq�u���ç��
[ƛ�`�n�>�ګ���{I|(��M���b�8��R�����n��>?b��N�H`���W��E�Wu&�<����뿬7U�X�V��Kj���0`.cnR�P���fK�{��*�����:�x��UJ5�S��1��7��C�a`%L_�7eip���!GS.\�p#7]�t���˗�8}��G�m���S�L)���?}��e�X�uw��)����ȵ����S�>��Ν;�g�[�w�t���m�.І�g((�,=z�(O��>ݸq�~��7:w�\BDDĦ������iӦU�_�x���+O�
�w�Ư��ʕ�-����n�]���� �CO\��ф���YC���4x��k��}.�~8%��߲�'(`_=x�
W���t��=�v����/G$��r�С/�V�ԩS?_�x��+V�e�w�d�iZ��'rsu!�.](�����3gV�
���i�ҥԩ�k����Qg�+W��M�6ѠA�nX�w�P&(��ܤ@����Г'O��ۚ �w���fxj&��_Y�bE��U�V�bŮ^��>�L%>��ܮMKg�k�����ܗ2)eSʨ�U)���l�s髶h��E+V�<�w_���'�h���եu�О\ڷ���ȩ][:~"�8�BK���߿�����4r�H6�.Oo]\ǍGӧO'6���
*�T�J�ϙ&�ʕ+a�y�p��
�4x2�P�7oޤ���SZZ=|�P1�gΜx��N��F�+�F\���&��/~�ƍ��AAA�6o�l�g�y�ه)�C�YJ�h�d�����h�Q�#eTʪ�Y)�R����rѢ�˗/_������'�o�\rue��ʼn��8Qow7�psQ̟��#9ڷ�4s�x�K�
�۷�����Թ�S@g6���ܹ��L�V�\�M6y
�U�6�z��kj֬y�^�zlmmc[�ly�iӦ������$�?t:�������o_�R$fO�֖?��3q��x0�����Ge�D���S5
�p�Y�+�CR�J�*?�۷o'�! �Ў;L"�l9m��`�ɡ"-#i��2��~�~�eR�%eUʬ�]��2]��Ԙ1c��H_�EK��b�wi_����?ӌ����>4p@2�?�1���
�������'��}i@�^ԯ�;��ٝ���M7=�����mx�Vӌ3ک*k.�%�z��u�ر�|K�;'.�3=��6o��掚4iB�Lf�w�m۶��֭������iӆ���}�嗿����M�p%@i�]�rE��ו~~���t��U�ߟH�e����)<<����K���W$�v6�7Ps��{�+�\i�JDE*o}����scJ�\9'S)�QI]ƾ��OV�gW��Pʰ�e)�R����35gΜ��d����]���C�4m�t��u��]hƌi$ѿ�����$Ϳ�Vt"�T��?�(���>}6-��SgΪ:'"���K���o���ǯ�٨�ڵ������j�ԅ����b��pȎ;������� ܗ��@4-�3���ʀO��HL�D�����b��jۤ�H�~Ϟ=���(�ŋ%B�;��y�b����%os%yB�&z�U������aaa�o�>E��nl�9�
>7��9�ׂ�1��ʡ�I9��Q)�z3�A5"(e��z�d@��i67ݺ89QO7W�ՇƍJ�G
�ٳgҁ�ԮUKruv"�N���J3p�.�չufu��H�Ύ��Ԟ�ȉ�:9������P˦M(,�
-Y�$�\~W���6l��Ӈ;:'��r��V�7!�h�,���K^Ƀ?�S��w��U$<�;m�ԩS�����֥9��_U��nݺ-��wP����)�4�I�f���
U*Xij8p�����9���2��S�R���`HZ9�ׂ�1��ʡV.��JY�2+eW3�R��lK��.e�
�-n���}�⺰�?z}�3�ƍJc��ї���S�ԗ�wǏEߍ��ñ��i����4lh�v�'}3ȃ��I}��^ݕ>��.��~�Z�Ѷ�fe9zw��S��'�S^e�؉���[�1�3��I���y�\Iw��Q$�NM'O��[L�H��'��'N(�d]�
J?B6��Q��
�/�GDnhQ?È�Tܚ����$?�cǎ�Lr.9�\GnC�HZ9Ɣׄ�1��ʥ�Q�J�5�Xꢁ7����<���,���տ�3L������A���)P̜�;z��ţf�ш}h�pO:�'�����ݸ�`W��˅<zv!�n��[��ԕG;�5��!b��5��n��9t�P%��αC�wk�(�j�2z���5oޜ7nL
4��S�ί<�*�8̓B~�h���i�w%K�o��#l#���EҬ+ͽZ�H�j������wP��fSx�
�pT�����N�Z�O��$z"��D5�gjS�?�5&�S���F�J��,��5
KYW���g���٢EKVD�|��u�L�G~C#��)�n�P7��7��Cw��GW6��(��}h�p�vh�m74ؕ�Bv�~���w'N��};PWWnvr
g�6ԦYc�.1���rS������#W����bU�Gl����c�(�U�Vm�S�|���PL���>�l
���di�����b5S's�������&-z(�(
��X�h�����ӛ?i2��3i�)(�g��i��»�J���-e\o�0�s�����߅��y@Ç������9k
m�J�]қz�y�i�����ԙ�t�>�;R�>���َz�l�#�r��6�ԡ5�oӒZ5�Z1�<d�����+�n�5J��AmڵOt��DyU��-(�O�]]��t.s7��V�$�>Jӂ��-�� ��!1�\ί�F�5��7��������0�~
:hh�g�+S>k2̊�y���M�C��Ӡo����4�
`0��=��z���?���L�pį/�>�ӳ-u�ي��ٓ�KKrv�#G�ԺUs��mH������;���)y-��ڶK7w�U�[;(P����y�E���$��A�7�i���[�����O[��~�m�Զ�d�v�D�|�r�+��C�q�ϟ�D?ci^�a�䥏�� T�<.τ)�9��o}D�1n��ݸ9�G����1s2G�By��>ȍ���1��?n���:R���{oGrc��ͽ�voI]\��s�fԡCSjۦ1ٵ��f��+fҜ
O�r��$�оu�DϹ[(�jԺ�b5jD�&M���r5����fk�/ٞ<�#7�g��8���~�R�~{V�2o�/Q@~�`��_k�I�(���������Go�>���ڔ�77:t$��ʥW�4�N��n�uu��]�o~H�Jį'�wc�����p
���������_�����kj��k�oِ�6�O�
�(� �,]��\~kڷocÆ
27�l�&���M�W5��� ����,���oM�t�~XF��˘�E��Ӗ��۳Z�yӧ��%]`�F���H�4�����C��q�NHH��wR��g�1���f0�4{,D�Hʢ�I)�RFs+�Z�@m`�:q��j]�T�7Xu�� ?��]��ّ�=�Ѵ�<uK(7綥�ɳW{���}�Xnm�Ճ���lK����N��ș�_�N�<�^Cjۮ>���G͛եF
kS�z_QH�.���䉜o�{|�L�B-�[%v����-�+�믿�Y�f����5K6�cڜ����|�f/}ϣ��}�"m
#��E[�r��Sn�O�[$�K��r�0��G�~~����>��4>%%�W����,?�t��7�z�15�T�����E)��RF���V�����3�gB�
S>{<)�CG�R�Nm�G�᷂�*Ͷ��[�{OGep�����aO�=����{;q�Ϲks�إ 9:s�ϱ>��K��u�}E��jQ�:5��W5���K��4�ߛV�Z�X�lLYL���&�����]��W��g�h_�6���%��n�
�M>��d@)��ﰼ�W�[붠�[�OSֵ�%
�-��7}yj�?i�˭�W���e ��g���Y�X��(��$�T�SJMS�B��1�*�e�^-����J�ͭ\K�ך�噐gC�S=�jq��Ϗ:vhG�.�xo+�:u�2r��cKnn�#]��_W;��ל�z���������ϡc�J��n[��Z֢f;$ۯkR�:���U�n�괃#��d[�lyc�
4�|jڢeb���W�n�a����pmG�L�n��b'�^�K��E$;�Ο?���C�2���+��ZjNj 䩎`9��q�5��Μ*I�o3-99Y��Ʊ�����LYY��jԲ�/�lJ'eV�nN&P�jB�ِ�2յr?���V]��`rhׂ:��29��m�B�vr�h�37�:5�N_+M��K7~u�e�ZI������f��l��R�/*S��+P��U�
���fc[�hqc���Jn��v���.���V�vp�ܹԺuk�6��g�O�ѿ��Bi��Pe�H3�b���kݔ����uåv��@�G�~
9U���hG�Tv�)��j���%V5uX��z�$�(�ϫeT��8)�ZsYNQ@y�7�D�3b�kds�#��aj��N����w��-+�С]SVc�шMa}jݦ.�j]G��5o�Ưi
�W�ԯJ�kU�/�W���?�*�>���V�НJ0�\���M���+V�m��
F.���˦m3&����hb&�S�\�<t;6~;D�&�_G�a�p�ߺd��}�$��-�A]3���a9V�orE����id��Q>>>~�Uy?`e�9��6����'yt#���1����;���mZ�}ӯi�ĉ��
�]ㆊ lig��u��<�K]��_��_Rc�/��F�ƯN����[��U��*W(K�>��*}�!ժ�p��a.��)\D_7i�LP��
~\���\�r�5j\�`����LM�ߐMs[�5���\�<���,
�!le�H�I�?�u�R�_��/&����r�?�J�4y�뱲���T�����r"��ʹD?������]P�y�f�'r�)�����W�Y�I��4i��6oX���<~M��~}u��}E_7��֯A��7�~���5*���l��}�?M�8�s�nb&_�+<����@��`5n��p��V#Q�n�җ_��/5��u��ED�����ꫯ�}��p��#6�Ə��Q�b===����:y0����Ѡ��+&N$<��ߪ2�4���ZӰ�n�Ԏ�{�n@@����_����4&�%�ڹ�_�=`ae]��?MY�gC�S_������ԷOon�\E���_7��vͩu�f��ޮ�97{�x�NS�&ԲY�k�˦�3�i�$�M��|��ڕz��V�~�;5���T�Mϸ,e�v�z��)-����S���I�;pSx;�U�Vj�J��T�P�|&�
�_���iX�����ǓES͚5��c��79
��m�o��`+]�rE������(���EEE)�.���r�c���Tr�_$�JQ����R!~iʎ������/���gA� �~f�k�3g��S �ɩ��^��TJ�Ri���� �l���
�;���Rɒ%�T�V-z�i-���}�O��_1�lo�.]�#�,�
���C���3g*�o���J��o߾<�ƙ�tF�c���"����{�f�3oK����6(O��-��R���0����+���_�:���K+���rN�]���A�1��M�0��k�]C�m{p��_N�O/v�����_#~��C6ƴ|�reį4�4�'�v�&��2eʔ�������=Z������=z���B���}���<Y̟��M�9'�._��H3zb�$�uI�/�2*�?�8Mby
�J�R^
`^^���������Hyg�v���'�q�3G��JV%p�vZ�ĆmI�.]H�,��d���:�J�.G�.�?-���4�ʲ{�����x����3�t�qI�;���6RO֥K��"1�<��/x����*D@P��V��r3�3G�.͘1�Ɗ�+�r_�_E+V�Z��m�x��+x]�
E�W��u�r^*Z��e��@�)�iAp�����+�O����`%��#{Ӹ�_�>}�*U��/��41���`�"&���ceZs�O�����7P7�ŋ�&~�
�x"
@y7)2��=�GF�{�g[��ڠA�ݺuSF�d���I�����5�c���&p��c��e<H�us�Ϯ>�]��'������M۶m����nYH�G���+�d�x�v��}�X�-w=7���隗�q��ߌ��k�M�@�P��P9/Q�i��h�j6~��9p���Vv�2������z@P�T���*DT���*DT���*DT��@��;�
K/��*8�w0�0����
�0�(�P!�B(�(�P!�B(�*DP�T����@yP!���B�`V�ZE�իW�ڵk���H�6|K(�*D��_���@ڴi��͛�Fr=r]r}r���P���
�5��'���
1S��ٶmSHH�ر�l$�#�%�'o��00��jE�����l(�l��TD12i�$����+�Rj�X)�*����P3~{��U�
�Er=��Dy��
����*}��Er=r]0�F6�yT��g`
�@c���&G�&�U"@�w�L��d��J����S!��Mx�
�;`E&/o��[%`Q�+���&�U���
1�7Y�0�(�@300Ϟ95��\��P�T��������@�����P�T���0���}I�>�w000�0����wP!�B�DyG�@��
�@�`Q�T��?@�w"��@����s�(�B��P!@�w�Z+DDaaT��aQ�k�%ڇ
y"*D@�w"�DyP!"�`Q�T��?@�w"
�;�
�@����B��DyP!�����'�������BD�����a@������w���K3��;00�aQޑwP!�B�DyP!@�w"����
144"
�/�T��aQޑwP!�B�DyP!"�`Q�T��?@�w��+D�T֞<j**ļ���4��f�X��[���"I[9�7�
�;`�b)�R��GI�R�9@�w����������+V�c�Y�jU��~��5[�lY��j�%@�N�^�ncܿ��'J`�p�N�իW�(-�%�#G�J=z����7�hӦMϬ͛7Spp0�ر�v��E���fi���:�z��s�Z�I>��ז|Ey,����\�܃�����d�����8-_�?X_\�zu����3�/��
��{�ҁ�
�Y@��.�>�N����ߕ+Wp~|Ey,��ٶm[�!�����_�Z�ĸ|�/�d�8��E1D��4��ٳGif=t�Y@�.�>�N�^cܷ�䣚�/���g�*i�,��d%m����|�ϳ�`9�~:~��b�$:��ڷo���*&K�[�oYI�G�K�O�S�7?�+�%�&����%_Q�4�ZE(��D�����*FK�����>`����9r$Y�H<��S%��P"mb������:�k~���|���|��S�8�;`�P*<��%b��d�֗̒+D��X�Y����kM��YzV�����>���d�/�75�^@y,��ek�S���9�ˬz� w�ܹl�ͷ�,�$�����s(������YmX�.^������l�$_$$��z�R�
P�+D�?�,����'N�H� ����A��?�Oj~Gy`-��K�*�'$$��{L{��1�l&զ�4��5�J��0��p��X�F����;�[��!��I~H���S
���������fٱ��
w�rS�f�$$?X-Y�-���;�
1�<(�z�咖���(�@�>�~r���j�Cy`+Ya>�`�e
HJJ��F(��EU�*�/���G �w@0�V[!������SEi~@��W�[�_͇Q�a�Z���������_�~�VQh
֚~�~���Z�����s���6˙��-;}��cc�@s4���������V��;
�"S!�� �orrr����̛5D����}����7�w@0�E�BT�Vc�z���qs�h�k����}���"�;
��j�?�X��)7oތ��A!������S��_����@��4y�<�,G�����?��D�>�~�}����<�;
�"_!�g}��LII���?'�y���\�܇ܗz�Q�Q���B�3�^`}�Ē����_����^@yGy�
1sI���&}��%�@���}�����;�;�,�CQ�U�:�
k~LL�}K�$Z�'�-ׯ���E����%��?�X�SSS�?~<�R��u��u���Q��
*���$�kHBBB��#G��=
(�'�)�+^I�w�w0���g/�j������1�Z�\�\/��\?�;�;@T�O�g��4˞5����ws�XQ���'ש^o����@�h�|���ﲺ�dʫO�<�`N�B4�'�%�'ש^oq�w�w02��=�?`9�WRR�^Σ4s2�r=r]r}�u��w���B�����5�g̡?���O����G����m�������߬f�]�]�M�Zӯ\�\��z}���Byr��&b�yX��6���[q�ԩ��0������u���U�
�
���7�'�~���;،������:����w����EVu���{w�}�qKQ�E�!���6j�!� �Cu)��]҇>�/�B(��&P�<�I�CH�]�C
�RZ�Hq�hqU��ey�Pld��K��6v�xkUI�fn�Ϝ�
�,�\if�Hs����������aݟW�o�NχW�|����Xj=�
�o[l�p���hC�����`��q~Ƴ��?�ux>y���\��q�xz\�^
�
��>$�+��������l�
��������ǫ@�@A��q}��i��LNNL�Rp������F�|���0���-�e�K�.��� ͟�����,g��qa�V�����GGG��b=`X�722r]���?ƺ?�
by���~���L&u���j�����_���g����Ƹ�b��kSSS����w}P�����[�(��U-�X�.0�P�j��Z|��퉉��w�0������RF�|��h��]!�m���Yo
y����Μ9�i1�ú?����⇾?��A�PtAl��T`h�F��Z�W[����m�)� ͟��t���wP
��>i�=vI7[H����g�@5�[<g�ֵk�N�Z�i;m�{�Q��P���������O�.��vm��?º?��lk-�h��l6���G��7���O�����v�}-�P�M�k,^�y�f�5|5~!�~o�����Ϩ��hnn�---9#lLj�� |�b���7n�8��~:���~�?�h����iH�RQ[[[���utt��M�h[>����+-�����s�.D�W?��W��|������3�����t���=g�6m�m�`ܒ�5�,~b�266vQ��g�}
�D�Pʂؤ����s;�ݧsE�]���X��u_�x����?�1:�;%/�����E���3t[(���^�-�n��}�Q!�H�
����~�\�۴
1��b�7�+�_���$Su�Cg=T���ud�M�h[
"�w(�� �� �;D�|����P�
"@�@A�w(���;�� RA���
�ǡC�(������P���/���KA
D
"�w(��
�(ς���;SLA����ȡ)w�i57h���ݳgύb�S�Nm��-a�Pa��D�[L���9����(>5444�w��hpp���Ί��~u�*,�딻�4�����#��ڊ�ӧOXH���h]Qwww�
�7=T�rW9�\.����a���>q��տڥ�h``���|<x0:p��E===Q:��Ȋ��
*�rU9��U+���w��C�� �
�FPm
�L&�K;ۑ��������h�Ν�jmm}�QD9S�*W���]�p!��9���9�(��\a�����X��"��*�]]]Q{{{fǎ�777۶m�2�(�E�rS9�\���Q��o��ݚ��#�(���:�u���Ϸ.J�1\�BzT֎���βDVl��۷G---���ۑ��vI=�g�����Ҷ�E�r34�ٰ��N�щ�w՜���
O�jl�X|���'N\��\��TuvD��TP��`���N]�]tKv'jkk�R��>��!��4hm��$�\8���G
W9�rP����}���Y�n��������
>�P�M�r����̤�����Ύě@�M ��:˒TěLӘ�X��?����SN�W��O�K�r5_��rkh.hNhn�P�
`���,~}��ų��ƛ@]Jӥ2�Y�;+Uhu�%��7����A�ŋRχ�)��Q.*'���Q�j��/����\�9Q�_@57��,��xodd�΄�+��&4�:��B��M"◜�5�K~I=����G����_�������jok,V[�h}�:r��t�K���o�
�,��G��`h[�'�����/W���W�k�\��/`14����S��fgg��;6UH]������x�=�Q�ǣ�P�+�>�XLM�R��o�ِ�%�ze15L�:4�<!����u��R�[���Yi���u��˗/l�Ȳ��0q<��r[9�s��},�&�ƿ!d�_�v�֭��g�^_�&����)�?�rZ��9��s�u�E&P���|Q�V�)��G:��'CCC����G9��U�Y����M�����zG�w,^���E*��MOO���87>>~������÷h��=�rySN��>�E�rS9�\U�*w=�_��^�9N���v�N�>w�Eֻ�����"m���k�;�ؒ���mvWHp<��^�Ŵ�����z�n�\^�%_�7��^4����Z��/��[x�b���bS���m�THp<��͞�ozn�����2����A]��E�,��Xc��ZS���!�sk�m�*$8���Z��5���<W������M�Hc(IEND�B`�media/index.html000064400000000037151167475120007631
0ustar00<!DOCTYPE html><title></title>
media/loader.bar.gif000064400000025103151167475120010335
0ustar00GIF89a����������������������������������������䰰��������������������������������������ª�����������!�NETSCAPE2.0!�Created
with ajaxload.info!�
,��
�di�h��l�p,�tm�x��|��pH��r�l:�ШtJ�Z�جv:����(���z�ݸ���H���x�h��h|{~z��x�k�w��uys�����������t`f^+]d
�����dpn��� ������p½���õ��Ǿź��ʱ���������Ӱ��,
������������ �;x/!A��{�ОÂN���F�}\��H��\����:��YE���r��0���V8w���С��<:��ϥG���*T�͠U�>źӪѨZ�r��jW�+XA�-ZpSY�K�vpgɭ;�n^���św/_�
�E\8�`�q&Y�]ʴӅ�Y�b̀-�E�B-�,�,Jk���;����u��]Ǿ���,ݻe��
|7��y��\��䰏Å���s_Wݛt
Ө-�m�����א`���͟��~~z���/������v_]�x�xpƊ�f�1�v�oN�Z�bH��I�!��YX�����?�8���Yh� �A�o�5U�St�a��)�cs;�h\�8�x�TB*Gc��i�ձƣ�L�ʋ&P���^�ԗa�W&~`JI��bnզXo^�Wh���
`4�
��F�}>�'��N�gj����g�
�h�+.�٠�H:أ�*�M�����*ꨤ�j*]�ꪬ��꫰�*무�j�'�!�
,��
�di�h��l�p,�tm�x��|��pH��r�l:�ШtJ�Z�جv:����(6��ap�݃z��݆|<�O�kmyz|~���o���j�w{}s���}��o���}�x�{���ly���v�����k�pf^+]
�gh����h�~��� sg����t������s��������t~�������֨�i�p��q��,��0XVa�2.(p`���`�Hr��@�&9�$�<��
�eF�+=�i�ǔ
%�ti��ϝ-I���fR�'A��eL��ڴ*U�J�=�2{�6,
9�-�bŤa���]��镖��w��5&��F��0�y#0|�m��{��<a�`|7?N��s�͕g����j�(#�,Y�_gWp���h�
A�
�'ok��p�ȕ+_�@����+�`����
>J���y��㙗w=}����Ko�\���?g<,���!
�|���_v���0XV�
��X[d�]b^'ͅj�Z��ɵA!v !l�sb�+ZW�/���
��6Z��^7\�"rxv`X$��5�$�#ʸ#�*v�!{.*a(�8ar���GfdN�����a�}�%��B"�&���hܛ|b�]p�_�m-��t�ݢ2v����z���)�y�����(�)fr�G�+)�b�B�f�vvP*�����{�9��Zx�v�u,�Q�!�z�^�"+ki���k��9��g�J`k��.�����Da>�#��|H卦99�>2I���8�gH@�� `����.YLf4|��҈��Fs�,O��%�������l��'
map��2@�,�Y(f��Ii�+���*��{r�����c2ht����t�M?4Ԁn7��zE���F���1��I�،�4��g�����/���`,�Gp����jh�������-��{5T��bӭ�xy�Z�ۋ���Hl�砇.��S�E����ꬷ���.���~B!�
,��
�di�h��l�p,�tm�x��|��pH��r�l:�ШtJ�Z�جv:��ix6h��p��A!M_�
x�<�@�lx�}i�po��}�����{�jon�|��������nw���l����i���{��k�m`^+]k
�
gt��
�А�����g���� h�he���t}����ڈ���i������V���4�
���7����P�8(``A
A.(p@�ɓ�|)�AI `�T�$�P��@��M�2c�\��fN�<��\�d��1�քp�ΞE�=)է֠��d
ThX�!����A0+�䄻w�����x�f��z2Λ��C��7Fv����y%86�8rLǔV�3e�H�5m��軪'���o�Ԭ�Y�x��Ӯ!g�w< 0O��Ass,H�O�u� �K�>aA��]k�0�|�Λξ�{��з�������Ww�}<�����]��u�wY��|����]2��ũp\P`l�]g���Ay�m�LxȄ�����5l�������2
N@c�'R�L�4�g�`����"�8��/ʸc�=V��,B�5NV������$�,f��N�7b�)��h8�&��X{��)�ht�e�zʼ���'�ȷ�f�Y�烲!z墆�i�e�IgR��-�_yv�����*hpy
��
$P�h�@���݂��݊;F��1Y�t��2� �d�<��#Z�uׄvko�i�a&1��?b+���n&���B��Chkna�-[���E{E�r�� *+��Y�@�$n).2)&�ty$�x-yL2^Rd� K�%�4�V�a�_3VI��8F�o�5n�L�(7{0mX������2l��05$h`�[y�-�>��sЧ}
X�KG9'���*�����y[3��P_ZX�Y�ʩ&-��L����Q�Kv���Gh��OX*�wɫn���f�x��2-E�7K�1��� <lxՏK9E�Ȁ>�y����xޥI�o7�ݎ��8��V�8��|���/���o<]����7���G/���Wo��'�!�
,��
�di�h��l�p,�tm�x��|��pH��r�l:�ШtJ�Z�جv:��g0��t��qp����چ��1O�� y�y}u~m{�|~j�xqo�v��}�jwn���~po�����������xzz�����peg,]wo
�
h��
���i����h~�������ؒ��������� ��j��u��u�N����Х�G�\A?�T@0��S�0����$�y�A����L
�e��'QBX�`�M�2g>�в��2i�\ %��\�,��З&s��s$Ԙ(��d�3�̣<�.���Aȕ�1h���EH�0�n�,���
`�]�x%�o�߿u�ƣ������Y3�8����V�,ٚ��*+�1g~C���fӊ�U���ho�!�]A
����!�ூ�$XFx�Ǒ�U�|
� �'P'��jt���{~<�r��\Ϯ|xs
OO���v�7���|����y�M�u�B�o�D
�xɶL�v�����eA��u&@>����Sa���L2#^�r
V�W����T�̊^@>�cC�x��Hb�w��<"w��)�V��K!��wv��c�is)ʓfyщ�̜�l0�|���2 ܉����������Y
�pb(g����z��'��ꢡ�%��t)]���4<u�j��-�q,�j᪥V��H�Z@+�"�ު2j窍դ�A��3د�^�k2��k���j������k5T����
��*٢��%
p�@��ָ!�� ��5I�!��"���*�������@�%��d��dv�-�v�(ed?>i$����TO�,�hmg_��'0]��l��פ7�<Mc�Ews��Z�=�8��&m�L#��CZu�=��FM52�1
�C�L�ٕM�����o�gAE+�q��.�o�����
ۘU]b8�X8��!�l�!�*���8�7/^^��N9G~��5�#Zm�6*�����d�c�-/R�A� �Gl!���o���W�E�7���G/���Wo���gB!�
,��
�di�h��l�p,�tm�x��|��pH��r�l:�ШtJ�Z�جv:��g�){
��zC�8��z�&<~��$��vwwyrj ~ o����~�pz|te���k���r�����|����w�i�n�z��jdpe^+]v
��Ɛ
���}�~��� Φ����ؐ����������k����ډ��ߗ�����ׇθt�!�S�Á,,"v!�2j\P��
%\Ը���'?�Zl@2#�!S�d��%J�'\�r����vb�i'�4I2� �ʖ���3iɛ@y*5�T'R�K=��#��{U�
`���p'��7
C۸pQN�f�-^� ��śan5�
�kM�c�pv�`Yb��%t�sd�� ���X�^�
K@F-�忪��E�
�TV�k�� v�]�.�
,ĵ@�n�q�#��:�沅/�^O�� ��2/^�����.!9^�t��u��<<�ڣ�f���*��]�e�e�%V`����ro��a� P�)�
lV�l��r�I��2�H"t�g^��a�|�%"�5�w#a���uP���p[�]Q��w�79�HPexoE�LyT�H�G(��Neefz�kZ�L[�7������Y祜)�E�xd&c@Mr)���7MgNµf2l� �)��G{Ov��M����y
�^���)���G)�ϭ�qY��IwأՁwg�:8���2�cîZ�f�Hp���Ͼg�����멻�J�(hZO�8݄*ڙ��i㈾Έ�
�X.J�N+�ɑ�?�E�����.\Gך�1�驉�I $�����8��������{)H`�}�'�mY ޟ�����p���Z�Ih�`R�6/�%�o��z8��orG爁�oB��<�h�-e���g����j5M���L@�����l��&0/��m-.RG��ā���W�gI���g8��V6ޠw��i��I@�ó�-嗚�M�3��y��}��q ��Hl!���n��S�E����/���o���'B!�
,��
�di�h��l�p,�tm�x��|��pH��r�l:�ШtJ�Z�جv:��g�);ą�z�!;�p�
�N�9o�C��<�jd�{os �� �|z����x���u���|����|�vj���g������v��{s�lGxe^+s��
��ɔ����С� ���٩���������ыj�
�лu���ܡ������!�'-�@sl�#NS�
�ڃ�0����$�)AcG�$�$
y��I�\9�A��0S���r�˘"�ly��G�$K= T%K�Le�&ΣIEZ�)u�ЭQC&���D`1��`�۷���ە��յ7���p3ȵ��0`�r^��[� �1�-ߕ��>��7ÜKX�YCe�q%(6m�����a�P��D"��ka��gw�]Y��
�}�ܮ�劽�v�-�k�%$������o{?/���q��[;?�o^ӻ-T�=�rt��B����
$Pi �&�z�-&�_H�=l@]g��V��|e��b�f�e֘ovih�3D8�tp
�x�xMy#:g"v�m�A�b��nuP�f=f�
^0
~�Ȣ[x�XNhԉt#�Q�%�i22����֗�43&����@]�&��֠��e��Zt(�%ߊ��ȚQV7�h1
�&om���m��ۗ��Xג)(�ڱ�b��`v�}�A�!^sܧSZ�*��U��u~ͅ�����yy�I�z��'A���Y�ٙ�i�����o�6����'�����l^�N�)
�Տz��4�f��
���[��AuF6��Z�]8��ڋ�}�뛆�2��[z
�o���G����Ț�@�l�ІG0��5���&H��,
��ɯ�����&��g�1P�`p�Ō�L�|-KV�M�i�s��=h���9s�
�Y&\:ۇhrJ���-jW��]�sud3l�^H��A��ʉ�v���&p�h��-��/&�ܼ������8��K�8\��*,�y��x��-�<�CX��n�=*|�7�������6[����TtQ���o���'����7��П!�
,��
�di�h��l�p,�tm�x��|��pH��r�l:�ШtJ�Z�جv:����);�Oa�no�#�~�x<�
7yye||g~vx� o{����f����z�h�wy q�rw��������p���������nGea^+���y��ɂ� �� ѵ���ۀ�l���v����Ɋm���n����������A�$�߷p��s`�� X0e�B 0����$���Ǝ��$ir#J`\���˘����%�c:g���#M�-}�JR�P�/�� U�N<��dP
�ʧ7Й���,bX����ʝ���p�N�P��[�qu�����k
��Ob��7�2$3��8[��r�F�Yh��3GN|z����&s��B fW�A�bt�Z�0܂�v�^����q�;�[�9�l
��.�t����v��<���7�V^�^�!���j
��n��Yuv��Y��d��@� T�e��]�Afuq=�[f��&�Z�&��R&"{n���.���qu�A�b�̂
�HY��8�̊���!��8׆�!�1ɣ�`P`
^��0Ф\�ah�YRh؍�ȧ%`]F��@'\rk2�@���'3>&����z��9܌o��䵝����fxʼn�͡�E���e���'��L�Vݕ�����@sJ&����7�N0�~'�Z�N�\�ـ'c�^#l��ڪ��"�쉭�+��z���|ĩj�]Ǟg����'� v��]��c/�ڐ^&f��E�!���H^��݆6������k��9�ʫ����0��J��p�
&���c*�k�p@x�[辙1]��E���ez�&Zs��v%~gR�ۀ��\'�8k�@|z+i[W�6�^0cv�cs��3���I������s}z�b3G�Up�/GW_����\�?Kp�����|�wu�����~W��v'p����*���tz�����r_=
1�c���bD�������.���n;]�����/���o��'�!�
,��
�di�h��l�p,�tm�x��|��pH��r�l:�ШtJ�Z�جv:�����ph4��i�7f�9=x$��ِ6�=vx�|j�w�z�ciu ��p�~���xf�c~�y�����{�~�y����v��{��o ea^+ `����Ô� ���ºy���m���ٕm��n���г�������������C�Lۛ�z
�0��a��@Q2j\��@�/\Ը�AE
%���H�'+�l�1%Ŕ3I�L �gN�
|<�3�ˡ!�B�S�Ҡ�|Z�fŕ-�K@��1�E��چҪ�pǚ�j`Ѯ�����j�ε���sӂT@��Y�kk
\�
�u%�e���` �W���Á�&P��0a�s뎶�a1굪1T�
��
vI~kmC���$(.�w�ʙWH+<x�d��>!za�oWλ�q��/���x`�엝��b
���'ͻ9rl�)��m*
�B�)ß��e�A�˜Fl������e�}r�
��e�!a�h�!g���tۃ�ɇ��H3*p�x8`��բ��XcjI`
S��%���kY@o
j �j]��[�e�d%����Y0f��l���)��bg
g'E��&�ϭY�f�q�fpxB�� G�������9�|���g�,�u\٘l-��y�U���]�
��Q�zn)�Z-�*���
��暤[�*쫦�'�J��Z�����u���W�5(\��}W��'4)���!o�fnj#z�غ��Y�5��c���K����V�l�[,Y�Np���Y���e�k\�0]��K���"�� H
�,�UZ����W�i���a�:ہͥɌf��J�䍎���N�2�j�L��,'J�l�B]eZS�h�j^��Y�A�rcd��r�W�ffC+��RʲP��킧]دR
dP��̘Ʊ�s)'p���jplp���o�#�yˍH�����`;⒫ex�ٕ�f�=��7��ޞ��������;]!���o���'����7��'�!�
,��
�di�h��l�p,�tm�x��|��pH��r�l:�ШtJ�Z�جv:����P�h���)l��#�1O;��~�����x{�}����~cvw� ��~���|z��x|����� gk�k�|�k��y�����qzd^+ �o���������y����p����o ��������z�������������B����9���0�a
��G�E �@��qA�\��@#Ǎ���rCɓ<�H3�K�2kb$i�dʐ,� �#АCa�)�͓9iZL
u&Ɗ�r�*U+�Y 8�@���(`���p3L�����p㊼V��ۼo�Z[��o^�"�����"������
$[������:땠���p'E�����N`���*H����w��0�B�����F<�,O@�x��ӫ7��n����F/�����H�~]z�
4�w�}��y�u�����97�x���h��܇A���k˰�Axz�_d(WD��5a����2'�x!��D"`#znjv@cb�5�a2�af�g\<¨V(�Ձ�Hb�c�Q~���)0������y`�ٸ�_`
fc��M��3d��qo�^g��f���i�sn�ggg�ـr"w�H06����-��2B����Yg=fz��`��X��d�U��o�����_w�w��1�����P����:�*\f̭��ʚ�E����b�U�d�t-C]q��+�ۭ�m_��@`��M��w�׃� ���G��,]E�e]����iX��IJ�A��Vy�������c��d����{&2���.�� �p@+�h��apy��ɡίr�3�:/�)���\��v�@�,��]Z�f�'�3�6����uztz�c)r��l�}7��`�5��<-�F�
]�,n�kbDA~߈m���(�wF��ލO���^O˸��ZpBȒS.8��79�kQ�\怢>��?-^��=���Hl��/���S�E�'����7���G/���WB!�
,��
�di�h��l�p,�tm�x��|��pH��r�l:�ШtJ�Z�جv:�����(8��!��6��̮{��~�6��x y�}~�����ul��� �l����c��p t������ki�z����z���oye^+ �{�`���ф�����z���Ϳ����������� ���ь��������y���q[
=k$���0
(p@�ŋ4����\̶�#ǏD���xA�I�@b���%ʕ f,i2�ȟ [���s$͡'�Z��NJFw���3F�Scδ8hh��h(@��`@�@A��ʝ
R�5��Ν�A$�j����Z�l6�̭`�{뮭��p_ n�iHy�H
�+�,���ʋ1�E�z�e��Ew�{Y��,�0�ٻ
,�{�8�Z
��7�� �'>aA��l��k�t��q�ǵq7���U�Y��������:�����k=6�����m*
@���c�%�s}eV����3�Gۂ����X�!3��!_b�kZf�f%B�`{�}�^���2&��[��bȕ�|�}HX�F`
"h��1�qS�֠Vf{��ӥ��iYMz�7AY���c�&�$��tԵ��pn��ة��xxꉀ2v�)�E�m��x.�e5��)W�<�����i T@$|0�5"�H��ΑZjt~�ި���x��
k���E+t�}'����k[[������IJ�V��(�+���!+Ap�bی�'�&X�m�V��q�2��'��>�;m�"^8��k�ay����6���tI�b����2�&�|��-��0���r$'d�"�E]\_Λ�r��Xe�-�Y��
G]B��ޟHh.�����i�YI�G�F4�L\%�6��d��Ʌ�Vo��
`��c�
�+��m;\���H���j�����t#w���Y��H��~���0q��*��v��k��|� .���AN���dBP�\+��!�/`#��ꬷ���NEE�n������/� !;media/loader.gif000064400000001323151167475130007571
0ustar00GIF89a�lhh\YYXUUc__755(''OLL
:88*((PMM!a^^[XXgcc]ZZfccMJJDAAURReaa!�NETSCAPE2.0!�Created
with ajaxload.info!� ,- �di���
���@�8�5p�{�۸�����@�.s��
E��B!� ,$`a`��i�����©�ҧ����X/(��;�!� ,6
��a,�$ "c�b�(�ϴ��2�����[��K���ӸN��U*�N�!� ,5
��ET��4b$I��<��uy�;�
�Ȅ>b�G��̑s9y��*�R!!� ,2
�di�ֲX�DQ��H�bRUEɴ]�:^��f�_Q�#����c�J��!� ,7
�di�$q]���b�iمa�h㢶m�]
��a�.�M$��4_-66ˠ��R!� ,/
�di��DQ����r%R�
�5���p���Ěq��^-4CY��!� ,/
�di��DQ����r%R�
�5���p���Ěq��^-4CY��;media/manager.less000064400000010115151167475130010135
0ustar00(~"@{MediaManager}") {
font-size: 12px !important;
line-height: 12px !important;
font-family: "Lucida Grande", "Arial", sans-serif
!important;
input, button, select, textarea {
font-family: "Lucida Grande", "Arial",
sans-serif !important;
}
background: transparent !important;
overflow-y: hidden;
overflow-x: hidden;
z-index: 9999999;
width: 100%;
height: 100%;
color: #111;
position: fixed;
top: -99999px;
left: 0;
display: table;
.media-overlay {
width: 100%;
height: 100%;
position: absolute;
top: 0;
right: 0;
z-index: 1;
.transition();
display: none; //prevent dashboard toolbar unclickable in FF3.6
}
&.active {
top: 0;
left: 0;
.media-overlay {
.transition();
}
}
.loaderModal {
.modalContent {
width: 100%;
height: 100%;
text-align: center;
}
}
.assetItemGroup {
width: 130px;
margin: 0 auto;
height: 110px;
top: 50%;
margin-top: -190px;
position: relative;
}
.assetItem {
padding: 6px;
padding-left: 28px;
text-align: left;
position: relative;
i {
width: 16px;
height: 16px;
top: 4px;
left: 4px;
display: none;
position: absolute;
}
&.loading {
}
&.done {
i {
.icon-media(7, 3);
display: block;
}
}
&.failed {
i {
.icon-media(8, 3);
display: block;
}
}
}
.recentActivities {
.promptContent {
padding: 5px 15px;
}
.recentItemGroup {
background: #F5F5F5;
border: 1px solid #CCCCCC;
height: 145px;
overflow: auto;
}
.recentItem {
position: relative;
height: 32px;
border-bottom: 1px solid #ddd;
.item-wrap {
position: relative;
overflow: hidden;
}
height: 32px;
padding: 4px 8px;
.item-image {
display: table;
width: 32px;
height: 32px;
}
.item-image-wrap {
display: table-cell;
text-align: center;
vertical-align: middle;
}
.itemIcon {
max-width: 32px;
max-height: 32px;
display: inline;
z-index: 1;
vertical-align: middle;
}
.itemTitle {
display: block;
text-align: left;
position: absolute;
z-index: 2;
font-size: 12px;
.unselectable();
top: 0px;
left: 40px;
width: 270px;
overflow: hidden;
white-space: nowrap;
.text-overflow();
padding-top: 4px;
}
.itemProgress {
color: #888888;
font-size: 10px;
display: block;
line-height: 16px;
}
i {
width: 16px;
height: 16px;
position: absolute;
top: 7px;
right: 4px;
display: none;
}
&.loading {
i {
background: url(loader.gif) center center no-repeat;
display: block;
}
}
&.done {
i {
.icon-media(7, 3);
display: block;
}
}
&.failed {
i {
.icon-media(8, 3);
display: block;
}
}
}
}
}
media/modal.less000064400000025065151167475130007631
0ustar00(~"@{MediaManager}") {
.mediaModalGroup {
display: table-cell;
vertical-align: middle;
text-align: center;
width: 100%;
height: 100%;
padding: 0 80px;
}
.mediaModal {
position: absolute;
top: 9999px;
width: 100%;
height: 85%;
margin: 0 auto;
overflow: hidden;
.box-shadow(0px 0px 64px rgba(0,0,0,0.8));
border: 1px solid #292F3A;
z-index: 2;
text-align: left;
&.active {
top: 0;
position: relative;
}
&.loaderModal {
background: url("loader.bar.gif") center center
no-repeat #f6f6f6;
}
.modalHeader {
.normalHeaderColorScheme();
// .vertical-gradient(darken(#f5f5f5, 15%), darken(#dfdfdf,
15%));
.vertical-gradient(#444b55, #343a44);
height: 48px;
border-bottom: 1px solid #ccc;
overflow: hidden;
position: relative;
z-index: 5;
color: #fff;
.text-shadow(1px 1px 0px #343a44);
.modalTitle {
text-align: left;
font-size: 18px;
line-height: 48px;
position: absolute;
padding-left: 10px;
.text-shadow(1px 1px 0px #343a44);
z-index: 1;
}
.modalButtons {
border-left: 1px solid #343a44;
float: right;
}
button.modalButton {
display: inline-block;
background: transparent;
margin: 0;
padding: 0 8px;
font-weight: bold;
font-family: 'Lucida Grande',Tahoma,sans-serif;
font-size: 12px;
line-height: 12px;
color: #fff !important;
text-decoration: none !important;
vertical-align: top;
width: auto;
height: 48px;
overflow: visible;
position: relative;
z-index: 2;
float: right;
cursor: pointer;
border: none;
border-right: 1px solid #343a44;
border-left: 1px solid #575e6b;
> i {
width: 16px;
height: 16px;
position: absolute;
top: 16px;
left: 8px;
display: inline-block;
}
&:hover {
.vertical-gradient(#575e6b, #343a44);
}
&.active {
background: #999;
.vertical-gradient(#444b55, #575e6b);
}
+ button.modalButton {
// border-right: 1px solid #343a44;
}
&.dashboardButton {
i {
.icon-media(1, 1);
position: relative;
top: 0;
left: 0;
width: 20px;
height: 20px;
}
&:hover {
i {
.icon-media(1, 2);
}
}
// .box-shadow(1px 0px 0 #575e6b);
}
&.browserButton {
padding-left: 26px;
i {
.icon-media(7, 1);
}
}
&.uploaderButton {
padding-left: 26px;
i {
.icon-media(7, 2);
}
}
}
}
.modalToolbar {
.normalHeaderColorScheme();
border-bottom: 1px solid #ccc;
height: 56px;
width: 100%;
position: relative;
z-index: 4;
.navigation {
top: 10px;
left: 10px;
// See navigation.less for more
}
.topActions {
position: absolute;
top: 10px;
right: 10px;
margin: 0;
button.button {
float: right;
height: 36px;
padding-left: 8px + 16px + 6px !important;
> i {
display: inline-block;
position: absolute;
top: 8px;
left: 8px;
width: 16px;
height: 16px;
}
+ button.button {
margin-right: 6px;
}
}
}
}
.modalContent {
position: relative;
z-index: 3;
display: block;
}
.modalFooter {
.normalHeaderColorScheme();
border-top: 1px solid #ccc;
height: 36px;
width: 100%;
position: absolute;
bottom: 0;
z-index: 4;
.footerActions {
padding: 4px;
position: absolute;
top: 0;
&.right-actions {
right: 0;
}
&.left-actions {
left: 0;
}
button.button {
height: 27px;
}
}
}
}
.modalPrompt {
width: 100%;
height: 100%;
position: absolute;
z-index: 5;
// margin-top: 48px;
top: -99999px;
left: -99999px;
&.active {
top: 0;
left: 0;
.overlay {
.opacity(0.6);
.transition-opacity(0.5);
display: none;
}
}
.overlay {
width: 100%;
height: 100%;
background: #fff;
.opacity(0);
position: relative;
z-index: 1;
.transition-opacity(0.5);
display: none;
}
.modalPromptDialogs {
width: 100%;
height: 100%;
}
.modalPromptDialog {
display: block;
position: absolute;
z-index: 2;
width: 400px;
height: 250px;
margin-left: -200px;
margin-top: -125px - 24px;
background: white;
border: 1px solid #aaa;
.rounded(12px);
.box-shadow(0px 0px 32px 0px rgba(0,0,0,0.6));
top: -9999px;
left: -9999px;
text-align: left;
&.active {
top: 50%;
left: 50%;
z-index: 3;
}
}
.promptState {
display: none;
&.active {
display: block;
}
}
.promptTitle {
padding: 15px 15px 10px;
font-size: 18px;
line-height: 18px;
font-weight: bold;
.text-overflow();
white-space: nowrap;
overflow: hidden;
}
.promptText {
font-size: 12px;
line-height: 16px;
padding: 0 15px;
color: #666;
display: block;
}
.promptForm {
padding: 30px;
label {
height: 24px;
line-height: 24px;
}
input.text {
border: 1px solid #ccc;
padding: 0 3px;
height: 24px;
line-height: 24px;
font-size: 13px;
margin: 0 0 0 5px;
}
}
.promptActions {
position: absolute;
bottom: 0;
right: 0;
padding: 0 15px 15px 0;
}
.promptLoader {
position: absolute;
left: 0;
bottom: 0;
width: 208px;
height: 13px;
margin: 0 0 22px 15px;
background: url(loader.bar.gif) no-repeat -6px -3px;
}
}
}
//Firefox hack
/*Defined the icon position for All FF*/
@-moz-document url-prefix() {
#EasyBlogMediaManager .mediaModal { top: -9999px; }
#EasyBlogMediaManager .mediaModal .modalToolbar .topActions button.button
> i {top: 0; left: -21px;}
#EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.uploaderButton > i {top:0;left: -22px;}
#EasyBlogMediaManager .browser .browserFooter .browserTreeItemFooter
.createFolderButton > i {top:0;left: -20px;}
#EasyBlogMediaManager .browser .browserViewButtons button.button > i
{top:-8px; left: -6px;}
#EasyBlogMediaManager .imageVariationActions button i {top:-4px; left:
-14px;}
#EasyBlogMediaManager .mediaModal .modalHeader button.modalButton > i
{top:0; left: -21px;}
#EasyBlogMediaManager .uploader .modalToolbar .changeUploadFolderButton
> i {top:0 !important;}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadActions .locateItemButton > i {top:0; left: -21px;}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadActions button > i {top:0; left: -21px;}
}
/*Redefined the correct position for FF 4 and above*/
:-moz-any(x), #EasyBlogMediaManager .mediaModal { top: 9999px; }
:-moz-any(x), #EasyBlogMediaManager .mediaModal .modalToolbar .topActions
button.button i {top: 8px !important;left: 8px !important;}
:-moz-any(x), #EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.uploaderButton > i {top:16px !important;left: 8px
!important;}
:-moz-any(x), #EasyBlogMediaManager .browser .browserFooter
.browserTreeItemFooter .createFolderButton > i {top:4px !important;left:
6px !important;}
:-moz-any(x), #EasyBlogMediaManager .browser .browserViewButtons
button.button > i {top:4px !important; left: 6px !important;}
:-moz-any(x), #EasyBlogMediaManager .imageVariationActions button i
{top:2px !important; left: 6px !important;}
:-moz-any(x), #EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.browserButton > i {top:16px !important; left: 8px
!important;}
:-moz-any(x), #EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadActions button > i {top:4px !important; left: 6px !important;}
:-moz-any(x), #EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadActions .locateItemButton > i {top:4px !important; left: 6px
!important;}
media/navigation.js000064400000005437151167475130010343 0ustar00// module:
start
EasyBlog.module("media/navigation", function($){
var module = this;
// require: start
EasyBlog.require()
// .view(
// "media/navigation.item",
// "media/navigation.itemgroup"
// )
.done(function(){
var $Media, $Library, DS;
// controller: start
EasyBlog.Controller(
"Media.Navigation",
{
defaultOptions: {
view: {
item: "media/navigation.item",
itemGroup: "media/navigation.itemgroup"
},
nestLevel: 8,
groupCollapseDelay: 1000,
canActivate: true,
"{itemGroup}": ".navigationItemGroup",
"{item}": ".navigationItem"
}
},
function(self) { return {
init: function() {
// Globals
$Media = self.media;
$Library = $Media.library;
DS = $Media.options.directorySeparator;
self.element.toggleClass("canActivate",
self.options.canActivate);
},
setPathway: function(meta) {
var meta = $Library.getMeta(meta);
if (!meta) return;
self.currentKey = meta.key;
// Set path as current path
var place = $Library.getPlace(meta.place),
path = meta.path,
isFolder = (meta.type==="folder"),
folders = path.split(DS).splice(1),
nestLevel = self.options.nestLevel,
groupUntil = folders.length - ((folders.length % nestLevel) ||
nestLevel),
itemGroup;
// Clear out existing breadcrumb and
// toggle folder class if path lead to a folder.
self.element
.empty()
.toggleClass("type-folder", isFolder);
// Base folder
self.view.item({title: place.title || DS})
.addClass("base")
.data("key", place.id + "|" + DS)
.appendTo(self.element);
var isJomSocial = place.id==="jomsocial";
if (path!==DS) {
$.each(folders, function(i, folder) {
var isFile = (!isFolder && i==folders.length-1),
path = DS + folders.slice(0, i + 1).join(DS),
key = place.id + "|" + path,
folder = (isJomSocial) ? $Library.getMeta(key).title : folder,
item = self.view.item({title: (isFile) ? meta.title : folder})
.data("key", key)
.toggleClass("filename", isFile);
if (i >= groupUntil) {
item.appendTo(self.element);
} else {
if (i % nestLevel == 0) {
itemGroup = self.view.itemGroup()
.appendTo(self.element);
}
item.appendTo(itemGroup);
}
});
}
},
"{itemGroup} mouseover": function(el) {
clearTimeout(el.data("delayCollapse"));
el.addClass("expand");
},
"{itemGroup} mouseout": function(el) {
el.data("delayCollapse",
setTimeout(function() {
el.removeClass("expand");
}, self.options.groupCollapseDelay)
);
},
"{item} click": function(el) {
if (self.options.canActivate) {
var key = el.data("key");
self.trigger("activate", key);
}
}
}}
);
// controller: end
module.resolve();
})
// require: end
});
// module: end
media/navigation.less000064400000004757151167475130010701
0ustar00(~"@{MediaManager}") {
.navigation {
position: relative;
text-align: left;
padding: 0;
margin: 0;
border: none;
.navigationInfo {
height: 14px;
line-height: 18px; /* From 14px to 18px for visual
compensation. */
font-size: 10px;
color: #888;
text-shadow: 1px 1px 0px #FCFCFC;
}
.navigationPathway {
height: 22px;
width: 200%; // Ensure long filenames don't fall below
overflow: hidden; // Ensure long filenames are hidden
.showNavigationArrow() {
margin: 0 0 0 4px;
padding: 0 0 0 11px;
position: relative;
i {
.icon-media(11, 1);
width: 8px;
height: 22px;
position: absolute;
top: 0;
left: 0;
}
}
.navigationItemGroup {
height: 22px;
line-height: 22px;
float: left;
.navigationItem {
display: none;
}
.navigationItemStub {
background: lighten(#A8BFEA, 10%);
border: 1px solid #91AAD6;
.rounded(3px);
padding: 0 3px;
}
&.expand {
.navigationItem {
display: inline;
}
.navigationItemStub {
display: none;
}
}
+ .navigationItem {
.showNavigationArrow();
}
+ .navigationItemGroup {
.showNavigationArrow();
}
}
.navigationItem {
height: 22px;
line-height: 22px;
font-size: 13px;
float: left;
+ .navigationItem {
.showNavigationArrow();
}
+ .navigationItemGroup {
.showNavigationArrow();
}
}
&.canActivate {
.navigationItem {
&:hover {
text-decoration: underline;
}
cursor: pointer;
}
}
}
}
}
media/progress.gif000064400000003704151167475130010174
0ustar00GIF89a��������!�NETSCAPE2.0!�,�P���ˍ���ڋ�g���扦�ȶ�
��H�^�
���QAL*aǦa �r�M��:��\���
/�?�yH��!�,:+����#CTڋE���ߘ�"�Ff�����
,�t��8��_��!�, 9*�o���#CHڋ=���ߘ�"�Ff�:ko��4j�c�{|�)!�,:+����#CTڋE���ߘ�"�Ff�����
,�t��8��_��!�,:+����#CTڋE���ߘ�"�Ff�����
,�t��8��_��!�,#:+����#CTڋE���ߘ�"�Ff�����
,�t��8��_��!�,,9*�o���#CHڋ=���ߘ�"�Ff�:ko��4j�c�{|�)!�,4:+����#CTڋE���ߘ�"�Ff�����
,�t��8��_��!�,=:+����#CTڋE���ߘ�"�Ff�����
,�t��8��_��!�,F:+����#CTڋE���ߘ�"�Ff�����
,�t��8��_��!�,O9*�o���#CHڋ=���ߘ�"�Ff�:ko��4j�c�{|�)!�,W:+����#CTڋE���ߘ�"�Ff�����
,�t��8��_��!�,`:+����#CTڋE���ߘ�"�Ff�����
,�t��8��_��!�,i:+����#CTڋE���ߘ�"�Ff�����
,�t��8��_��!�,r9*�o���#CHڋ=���ߘ�"�Ff�:ko��4j�c�{|�)!�,z:+����#CTڋE���ߘ�"�Ff�����
,�t��8��_��!�,z:+���ˍct��#���م��&CB窤n��j�f��|�q!�,r9*���ˍ#t��#���م��&C窤�k�0+�gm�x��*!�,i:+���ˍct��#���م��&CB窤n��j�f��|�q!�,`:+���ˍct��#���م��&CB窤n��j�f��|�q!�,W:+���ˍct��#���م��&CB窤n��j�f��|�q!�,O9*���ˍ#t��#���م��&C窤�k�0+�gm�x��*!�,F:+���ˍct��#���م��&CB窤n��j�f��|�q!�,=:+���ˍct��#���م��&CB窤n��j�f��|�q!�,4:+���ˍct��#���م��&CB窤n��j�f��|�q!�,,9*���ˍ#t��#���م��&C窤�k�0+�gm�x��*!�,#:+���ˍct��#���م��&CB窤n��j�f��|�q!�,:+���ˍct��#���م��&CB窤n��j�f��|�q!�,:+���ˍct��#���م��&CB窤n��j�f��|�q!�, 9*���ˍ#t��#���م��&C窤�k�0+�gm�x��*;media/responsive.less000064400000001336151167475130010725
0ustar00(~"@{MediaManager}") {
/*Palm only*/
@media (max-width: 480px) {
.mediaModalGroup {
padding: 0 10px;
}
.browserTreeItemField {
float: none;
height: auto;
width: 100%;
}
.browserItemField {
margin-left: 0;
}
.mediaModal {
.modalHeader {
.modalTitle {
position: relative;
display: none;
}
.modalButtons {
float: none;
}
button.modalButton {
&.uploaderButton,
&.browserButton {
float: left;
}
}
}//modalHeader
.modalToolbar {
height: 106px;
.topActions {
position: relative;
right: auto;
}
}
}
.browser {
.browserItemField {
&.view-tile {
.browserItem {
}
}
}
}
}//mediaquery
}
media/style.css000064400000306021151167475130007511 0ustar00/*Defined the
icon position for All FF*/
/*---------------------------------------------------
LESS Elements 0.6
---------------------------------------------------
A set of useful LESS mixins by Dmitry Fadeyev
Special thanks for mixin suggestions to:
Kris Van Herzeele,
Benoit Adam,
Portenart Emile-Victor,
Ryan Faerman
More info at: http://lesselements.com
-----------------------------------------------------*/
#EasyBlogMediaManager {
/* Determinate only overrides */
/* Overlay */
}
#EasyBlogMediaManager .button-tooltip {
background: none repeat scroll 0 0 #FFFFFF;
border: 1px solid #BBBBBB;
border-radius: 2px 2px 2px 2px;
padding: 10px;
text-shadow: 0 0 0 transparent;
-moz-text-shadow: 0 0 0 transparent;
-webkit-text-shadow: 0 0 0 transparent;
/*
filter:
progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color', Positive='true');
-ms-filter:
"progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color',
Positive='true')";
*zoom: 1;
*/
color: #444 !important;
position: absolute;
text-align: left;
width: 250px;
z-index: 2;
}
#EasyBlogMediaManager .button-tooltip > i {
background:
url("../../../../components/com_easyblog/themes/dashboard/system/images/a-point-top.png")
no-repeat top left transparent;
display: block;
width: 15px;
height: 8px;
position: absolute;
top: -8px;
right: 12px;
z-index: 3;
}
#EasyBlogMediaManager .hints {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #f6f6f6;
text-align: center;
z-index: 1;
}
#EasyBlogMediaManager .hints .hint {
margin-top: -11px;
position: absolute;
top: 50%;
width: 100%;
}
#EasyBlogMediaManager .hints .hint-label {
font-size: 22px;
line-height: 22px;
padding: 12px;
display: block;
color: #bbb;
text-shadow: 1px 1px 0px #ffffff;
-moz-text-shadow: 1px 1px 0px #ffffff;
-webkit-text-shadow: 1px 1px 0px #ffffff;
/*
filter:
progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color', Positive='true');
-ms-filter:
"progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color',
Positive='true')";
*zoom: 1;
*/
}
#EasyBlogMediaManager .hints .hint-content {
display: block;
font-size: 12px;
height: 22px;
line-height: 22px;
color: #999;
text-shadow: 1px 1px 0 #ffffff;
-moz-text-shadow: 1px 1px 0 #ffffff;
-webkit-text-shadow: 1px 1px 0 #ffffff;
/*
filter:
progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color', Positive='true');
-ms-filter:
"progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color',
Positive='true')";
*zoom: 1;
*/
}
#EasyBlogMediaManager button.button {
display: inline-block;
background: #fafafa;
margin: 0;
padding: 0 8px !important;
height: 28px;
font-weight: bold;
font-family: 'Lucida Grande', Tahoma, sans-serif;
font-size: 11px;
line-height: 11px;
color: #555 !important;
text-decoration: none !important;
width: auto;
overflow: visible;
vertical-align: top;
cursor: pointer;
position: relative;
z-index: 1;
text-transform: none !important;
border: 1px solid #aaa;
border-bottom-color: #999;
-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
-moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
background-color: #eeeeee;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#ffffff), to(#eeeeee));
/* Konqueror */
background-image: -moz-linear-gradient(#ffffff, #eeeeee);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#ffffff, #eeeeee);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #ffffff), color-stop(100%, #eeeeee));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#ffffff, #eeeeee);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#ffffff, #eeeeee);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
endColorstr='#eeeeee', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
endColorstr='#eeeeee', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#ffffff, #eeeeee);
/* the standard */
text-shadow: 1px 1px 0px #ffffff;
-moz-text-shadow: 1px 1px 0px #ffffff;
-webkit-text-shadow: 1px 1px 0px #ffffff;
/*
filter:
progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color', Positive='true');
-ms-filter:
"progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color',
Positive='true')";
*zoom: 1;
*/
}
#EasyBlogMediaManager button.button.active {
border: 1px solid #5e5e5e;
border-bottom-color: #808080;
}
#EasyBlogMediaManager button.button.green-button {
border: 1px solid #87ab60;
border-bottom-color: #74954f;
}
#EasyBlogMediaManager button.button.green-button.active {
border: 1px solid #3a4b27;
border-bottom-color: #5a743d;
}
#EasyBlogMediaManager button.button::-moz-focus-inner {
border: 0;
padding: 0;
margin: 0;
}
#EasyBlogMediaManager button.button.hover,
#EasyBlogMediaManager button.button:hover {
background-color: #fbfbfb;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#ffffff), to(#fbfbfb));
/* Konqueror */
background-image: -moz-linear-gradient(#ffffff, #fbfbfb);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#ffffff, #fbfbfb);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #ffffff), color-stop(100%, #fbfbfb));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#ffffff, #fbfbfb);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#ffffff, #fbfbfb);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
endColorstr='#fbfbfb', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
endColorstr='#fbfbfb', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#ffffff, #fbfbfb);
/* the standard */
}
#EasyBlogMediaManager button.button.active {
background: #999;
-webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.7), 0 2px 5px rgba(0, 0,
0, 0.4) inset;
-moz-box-shadow: 0 1px 0 rgba(255,255,255,0.7), 0 2px 5px rgba(0, 0, 0,
0.4) inset;
box-shadow: 0 1px 0 rgba(255,255,255,0.7), 0 2px 5px rgba(0, 0, 0, 0.4)
inset;
color: #fff !important;
}
#EasyBlogMediaManager button.button.green-button {
color: #fff !important;
text-shadow: 1px 1px 0px #74954f;
-moz-text-shadow: 1px 1px 0px #74954f;
-webkit-text-shadow: 1px 1px 0px #74954f;
/*
filter:
progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color', Positive='true');
-ms-filter:
"progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color',
Positive='true')";
*zoom: 1;
*/
background-color: #85bf46;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#9fda5f), to(#85bf46));
/* Konqueror */
background-image: -moz-linear-gradient(#9fda5f, #85bf46);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#9fda5f, #85bf46);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #9fda5f), color-stop(100%, #85bf46));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#9fda5f, #85bf46);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#9fda5f, #85bf46);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#9fda5f',
endColorstr='#85bf46', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#9fda5f',
endColorstr='#85bf46', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#9fda5f, #85bf46);
/* the standard */
}
#EasyBlogMediaManager button.button.green-button:hover {
background-color: #91c659;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#abdf74), to(#91c659));
/* Konqueror */
background-image: -moz-linear-gradient(#abdf74, #91c659);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#abdf74, #91c659);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #abdf74), color-stop(100%, #91c659));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#abdf74, #91c659);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#abdf74, #91c659);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#abdf74',
endColorstr='#91c659', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#abdf74',
endColorstr='#91c659', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#abdf74, #91c659);
/* the standard */
}
#EasyBlogMediaManager button.button .button-tooltip {
display: none;
top: 38px;
right: -1px;
}
#EasyBlogMediaManager button.button.hover .button-tooltip,
#EasyBlogMediaManager button.button:hover .button-tooltip {
display: block;
}
@-moz-document url-prefix() {
}
#EasyBlogMediaManager progress[role] {
display: inline-block;
position: relative;
width: 90%;
background: #fff;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#EasyBlogMediaManager progress[role],
#EasyBlogMediaManager progress[aria-valuenow]:before {
background-color: #5af;
}
#EasyBlogMediaManager progress[role],
#EasyBlogMediaManager progress[role]:after {
background-repeat: repeat-x;
background-position: 0 0;
-moz-background-size: auto 100%;
-webkit-background-size: auto 100%;
background-size: auto 100%;
}
#EasyBlogMediaManager progress[aria-valuenow] {
background: #eee;
}
#EasyBlogMediaManager progress[aria-valuenow]:before {
content: "";
display: block;
height: 100%;
}
#EasyBlogMediaManager progress[role]:after {
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
#EasyBlogMediaManager .mediaModalGroup {
display: table-cell;
vertical-align: middle;
text-align: center;
width: 100%;
height: 100%;
padding: 0 80px;
}
#EasyBlogMediaManager .mediaModal {
position: absolute;
top: 9999px;
width: 100%;
height: 85%;
margin: 0 auto;
overflow: hidden;
-webkit-box-shadow: 0px 0px 64px rgba(0, 0, 0, 0.8);
-moz-box-shadow: 0px 0px 64px rgba(0, 0, 0, 0.8);
box-shadow: 0px 0px 64px rgba(0, 0, 0, 0.8);
border: 1px solid #292F3A;
z-index: 2;
text-align: left;
}
#EasyBlogMediaManager .mediaModal.active {
top: 0;
position: relative;
}
#EasyBlogMediaManager .mediaModal.loaderModal {
background: url("loader.bar.gif") center center no-repeat
#f6f6f6;
}
#EasyBlogMediaManager .mediaModal .modalHeader {
background-color: #dfdfdf;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#f5f5f5), to(#dfdfdf));
/* Konqueror */
background-image: -moz-linear-gradient(#f5f5f5, #dfdfdf);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#f5f5f5, #dfdfdf);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #f5f5f5), color-stop(100%, #dfdfdf));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#f5f5f5, #dfdfdf);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#f5f5f5, #dfdfdf);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5',
endColorstr='#dfdfdf', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5',
endColorstr='#dfdfdf', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#f5f5f5, #dfdfdf);
/* the standard */
background-color: #343a44;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#444b55), to(#343a44));
/* Konqueror */
background-image: -moz-linear-gradient(#444b55, #343a44);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#444b55, #343a44);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #444b55), color-stop(100%, #343a44));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#444b55, #343a44);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#444b55, #343a44);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#444b55',
endColorstr='#343a44', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#444b55',
endColorstr='#343a44', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#444b55, #343a44);
/* the standard */
height: 48px;
border-bottom: 1px solid #ccc;
overflow: hidden;
position: relative;
z-index: 5;
color: #fff;
text-shadow: 1px 1px 0px #343a44 1px 2px #555555;
-moz-text-shadow: 1px 1px 0px #343a44 1px 2px #555555;
-webkit-text-shadow: 1px 1px 0px #343a44 1px 2px #555555;
/*
filter:
progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color', Positive='true');
-ms-filter:
"progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color',
Positive='true')";
*zoom: 1;
*/
}
#EasyBlogMediaManager .mediaModal .modalHeader .modalTitle {
text-align: left;
font-size: 18px;
line-height: 48px;
position: absolute;
padding-left: 10px;
text-shadow: 1px 1px 0px #343a44 1px 2px #555555;
-moz-text-shadow: 1px 1px 0px #343a44 1px 2px #555555;
-webkit-text-shadow: 1px 1px 0px #343a44 1px 2px #555555;
/*
filter:
progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color', Positive='true');
-ms-filter:
"progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color',
Positive='true')";
*zoom: 1;
*/
z-index: 1;
}
#EasyBlogMediaManager .mediaModal .modalHeader .modalButtons {
border-left: 1px solid #343a44;
float: right;
}
#EasyBlogMediaManager .mediaModal .modalHeader button.modalButton {
display: inline-block;
background: transparent;
margin: 0;
padding: 0 8px;
font-weight: bold;
font-family: 'Lucida Grande', Tahoma, sans-serif;
font-size: 12px;
line-height: 12px;
color: #fff !important;
text-decoration: none !important;
vertical-align: top;
width: auto;
height: 48px;
overflow: visible;
position: relative;
z-index: 2;
float: right;
cursor: pointer;
border: none;
border-right: 1px solid #343a44;
border-left: 1px solid #575e6b;
}
#EasyBlogMediaManager .mediaModal .modalHeader button.modalButton > i {
width: 16px;
height: 16px;
position: absolute;
top: 16px;
left: 8px;
display: inline-block;
}
#EasyBlogMediaManager .mediaModal .modalHeader button.modalButton:hover {
background-color: #343a44;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#575e6b), to(#343a44));
/* Konqueror */
background-image: -moz-linear-gradient(#575e6b, #343a44);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#575e6b, #343a44);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #575e6b), color-stop(100%, #343a44));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#575e6b, #343a44);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#575e6b, #343a44);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#575e6b',
endColorstr='#343a44', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#575e6b',
endColorstr='#343a44', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#575e6b, #343a44);
/* the standard */
}
#EasyBlogMediaManager .mediaModal .modalHeader button.modalButton.active {
background: #999;
background-color: #575e6b;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#444b55), to(#575e6b));
/* Konqueror */
background-image: -moz-linear-gradient(#444b55, #575e6b);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#444b55, #575e6b);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #444b55), color-stop(100%, #575e6b));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#444b55, #575e6b);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#444b55, #575e6b);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#444b55',
endColorstr='#575e6b', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#444b55',
endColorstr='#575e6b', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#444b55, #575e6b);
/* the standard */
}
#EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.dashboardButton i {
background: url(icon.media.png) no-repeat;
background-position: 0px 0px;
position: relative;
top: 0;
left: 0;
width: 20px;
height: 20px;
}
#EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.dashboardButton:hover i {
background: url(icon.media.png) no-repeat;
background-position: 0px -32px;
}
#EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.browserButton {
padding-left: 26px;
}
#EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.browserButton i {
background: url(icon.media.png) no-repeat;
background-position: -192px 0px;
}
#EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.uploaderButton {
padding-left: 26px;
}
#EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.uploaderButton i {
background: url(icon.media.png) no-repeat;
background-position: -192px -32px;
}
#EasyBlogMediaManager .mediaModal .modalToolbar {
background-color: #dfdfdf;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#f5f5f5), to(#dfdfdf));
/* Konqueror */
background-image: -moz-linear-gradient(#f5f5f5, #dfdfdf);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#f5f5f5, #dfdfdf);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #f5f5f5), color-stop(100%, #dfdfdf));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#f5f5f5, #dfdfdf);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#f5f5f5, #dfdfdf);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5',
endColorstr='#dfdfdf', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5',
endColorstr='#dfdfdf', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#f5f5f5, #dfdfdf);
/* the standard */
border-bottom: 1px solid #ccc;
height: 56px;
width: 100%;
position: relative;
z-index: 4;
}
#EasyBlogMediaManager .mediaModal .modalToolbar .navigation {
top: 10px;
left: 10px;
}
#EasyBlogMediaManager .mediaModal .modalToolbar .topActions {
position: absolute;
top: 10px;
right: 10px;
margin: 0;
}
#EasyBlogMediaManager .mediaModal .modalToolbar .topActions button.button {
float: right;
height: 36px;
padding-left: 30px !important;
}
#EasyBlogMediaManager .mediaModal .modalToolbar .topActions button.button
> i {
display: inline-block;
position: absolute;
top: 8px;
left: 8px;
width: 16px;
height: 16px;
}
#EasyBlogMediaManager .mediaModal .modalToolbar .topActions button.button +
button.button {
margin-right: 6px;
}
#EasyBlogMediaManager .mediaModal .modalContent {
position: relative;
z-index: 3;
display: block;
}
#EasyBlogMediaManager .mediaModal .modalFooter {
background-color: #dfdfdf;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#f5f5f5), to(#dfdfdf));
/* Konqueror */
background-image: -moz-linear-gradient(#f5f5f5, #dfdfdf);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#f5f5f5, #dfdfdf);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #f5f5f5), color-stop(100%, #dfdfdf));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#f5f5f5, #dfdfdf);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#f5f5f5, #dfdfdf);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5',
endColorstr='#dfdfdf', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5',
endColorstr='#dfdfdf', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#f5f5f5, #dfdfdf);
/* the standard */
border-top: 1px solid #ccc;
height: 36px;
width: 100%;
position: absolute;
bottom: 0;
z-index: 4;
}
#EasyBlogMediaManager .mediaModal .modalFooter .footerActions {
padding: 4px;
position: absolute;
top: 0;
}
#EasyBlogMediaManager .mediaModal .modalFooter .footerActions.right-actions
{
right: 0;
}
#EasyBlogMediaManager .mediaModal .modalFooter .footerActions.left-actions
{
left: 0;
}
#EasyBlogMediaManager .mediaModal .modalFooter .footerActions button.button
{
height: 27px;
}
#EasyBlogMediaManager .modalPrompt {
width: 100%;
height: 100%;
position: absolute;
z-index: 5;
top: -99999px;
left: -99999px;
}
#EasyBlogMediaManager .modalPrompt.active {
top: 0;
left: 0;
}
#EasyBlogMediaManager .modalPrompt.active .overlay {
-moz-opacity: 0.6;
-khtml-opacity: 0.6;
-webkit-opacity: 0.6;
opacity: 0.6;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=60);
filter: alpha(opacity=60);
-webkit-transition: opacity 0.5 ease-out;
-moz-transition: opacity 0.5 ease-out;
transition: opacity 0.5 ease-out;
display: none;
}
#EasyBlogMediaManager .modalPrompt .overlay {
width: 100%;
height: 100%;
background: #fff;
-moz-opacity: 0;
-khtml-opacity: 0;
-webkit-opacity: 0;
opacity: 0;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
filter: alpha(opacity=0);
position: relative;
z-index: 1;
-webkit-transition: opacity 0.5 ease-out;
-moz-transition: opacity 0.5 ease-out;
transition: opacity 0.5 ease-out;
display: none;
}
#EasyBlogMediaManager .modalPrompt .modalPromptDialogs {
width: 100%;
height: 100%;
}
#EasyBlogMediaManager .modalPrompt .modalPromptDialog {
display: block;
position: absolute;
z-index: 2;
width: 400px;
height: 250px;
margin-left: -200px;
margin-top: -149px;
background: white;
border: 1px solid #aaa;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
-webkit-box-shadow: 0px 0px 32px 0px rgba(0, 0, 0, 0.6);
-moz-box-shadow: 0px 0px 32px 0px rgba(0, 0, 0, 0.6);
box-shadow: 0px 0px 32px 0px rgba(0, 0, 0, 0.6);
top: -9999px;
left: -9999px;
text-align: left;
}
#EasyBlogMediaManager .modalPrompt .modalPromptDialog.active {
top: 50%;
left: 50%;
z-index: 3;
}
#EasyBlogMediaManager .modalPrompt .promptState {
display: none;
}
#EasyBlogMediaManager .modalPrompt .promptState.active {
display: block;
}
#EasyBlogMediaManager .modalPrompt .promptTitle {
padding: 15px 15px 10px;
font-size: 18px;
line-height: 18px;
font-weight: bold;
-o-text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
#EasyBlogMediaManager .modalPrompt .promptText {
font-size: 12px;
line-height: 16px;
padding: 0 15px;
color: #666;
display: block;
}
#EasyBlogMediaManager .modalPrompt .promptForm {
padding: 30px;
}
#EasyBlogMediaManager .modalPrompt .promptForm label {
height: 24px;
line-height: 24px;
}
#EasyBlogMediaManager .modalPrompt .promptForm input.text {
border: 1px solid #ccc;
padding: 0 3px;
height: 24px;
line-height: 24px;
font-size: 13px;
margin: 0 0 0 5px;
}
#EasyBlogMediaManager .modalPrompt .promptActions {
position: absolute;
bottom: 0;
right: 0;
padding: 0 15px 15px 0;
}
#EasyBlogMediaManager .modalPrompt .promptLoader {
position: absolute;
left: 0;
bottom: 0;
width: 208px;
height: 13px;
margin: 0 0 22px 15px;
background: url(loader.bar.gif) no-repeat -6px -3px;
}
/*Defined the icon position for All FF*/
@-moz-document url-prefix() {
#EasyBlogMediaManager .mediaModal {
top: -9999px;
}
#EasyBlogMediaManager .mediaModal .modalToolbar .topActions button.button
> i {
top: 0;
left: -21px;
}
#EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.uploaderButton > i {
top: 0;
left: -22px;
}
#EasyBlogMediaManager .browser .browserFooter .browserTreeItemFooter
.createFolderButton > i {
top: 0;
left: -20px;
}
#EasyBlogMediaManager .browser .browserViewButtons button.button > i {
top: -8px;
left: -6px;
}
#EasyBlogMediaManager .imageVariationActions button i {
top: -4px;
left: -14px;
}
#EasyBlogMediaManager .mediaModal .modalHeader button.modalButton > i
{
top: 0;
left: -21px;
}
#EasyBlogMediaManager .uploader .modalToolbar .changeUploadFolderButton
> i {
top: 0 !important;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadActions .locateItemButton > i {
top: 0;
left: -21px;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadActions button > i {
top: 0;
left: -21px;
}
}
/*Redefined the correct position for FF 4 and above*/
:-moz-any(x),
#EasyBlogMediaManager .mediaModal {
top: 9999px;
}
:-moz-any(x),
#EasyBlogMediaManager .mediaModal .modalToolbar .topActions button.button i
{
top: 8px !important;
left: 8px !important;
}
:-moz-any(x),
#EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.uploaderButton > i {
top: 16px !important;
left: 8px !important;
}
:-moz-any(x),
#EasyBlogMediaManager .browser .browserFooter .browserTreeItemFooter
.createFolderButton > i {
top: 4px !important;
left: 6px !important;
}
:-moz-any(x),
#EasyBlogMediaManager .browser .browserViewButtons button.button > i {
top: 4px !important;
left: 6px !important;
}
:-moz-any(x),
#EasyBlogMediaManager .imageVariationActions button i {
top: 2px !important;
left: 6px !important;
}
:-moz-any(x),
#EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.browserButton > i {
top: 16px !important;
left: 8px !important;
}
:-moz-any(x),
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem .uploadActions
button > i {
top: 4px !important;
left: 6px !important;
}
:-moz-any(x),
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem .uploadActions
.locateItemButton > i {
top: 4px !important;
left: 6px !important;
}
#EasyBlogMediaManager {
font-size: 12px !important;
line-height: 12px !important;
font-family: "Lucida Grande", "Arial", sans-serif
!important;
background: transparent !important;
overflow-y: hidden;
overflow-x: hidden;
z-index: 9999999;
width: 100%;
height: 100%;
color: #111;
position: fixed;
top: -99999px;
left: 0;
display: table;
}
#EasyBlogMediaManager input,
#EasyBlogMediaManager button,
#EasyBlogMediaManager select,
#EasyBlogMediaManager textarea {
font-family: "Lucida Grande", "Arial", sans-serif
!important;
}
#EasyBlogMediaManager .media-overlay {
width: 100%;
height: 100%;
position: absolute;
top: 0;
right: 0;
z-index: 1;
-webkit-transition: all 0.2s ease-out;
-moz-transition: all 0.2s ease-out;
transition: all 0.2s ease-out;
display: none;
}
#EasyBlogMediaManager.active {
top: 0;
left: 0;
}
#EasyBlogMediaManager.active .media-overlay {
-webkit-transition: all 0.2s ease-out;
-moz-transition: all 0.2s ease-out;
transition: all 0.2s ease-out;
}
#EasyBlogMediaManager .loaderModal .modalContent {
width: 100%;
height: 100%;
text-align: center;
}
#EasyBlogMediaManager .assetItemGroup {
width: 130px;
margin: 0 auto;
height: 110px;
top: 50%;
margin-top: -190px;
position: relative;
}
#EasyBlogMediaManager .assetItem {
padding: 6px;
padding-left: 28px;
text-align: left;
position: relative;
}
#EasyBlogMediaManager .assetItem i {
width: 16px;
height: 16px;
top: 4px;
left: 4px;
display: none;
position: absolute;
}
#EasyBlogMediaManager .assetItem.done i {
background: url(icon.media.png) no-repeat;
background-position: -192px -64px;
display: block;
}
#EasyBlogMediaManager .assetItem.failed i {
background: url(icon.media.png) no-repeat;
background-position: -224px -64px;
display: block;
}
#EasyBlogMediaManager .recentActivities .promptContent {
padding: 5px 15px;
}
#EasyBlogMediaManager .recentActivities .recentItemGroup {
background: #F5F5F5;
border: 1px solid #CCCCCC;
height: 145px;
overflow: auto;
}
#EasyBlogMediaManager .recentActivities .recentItem {
position: relative;
height: 32px;
border-bottom: 1px solid #ddd;
height: 32px;
padding: 4px 8px;
}
#EasyBlogMediaManager .recentActivities .recentItem .item-wrap {
position: relative;
overflow: hidden;
}
#EasyBlogMediaManager .recentActivities .recentItem .item-image {
display: table;
width: 32px;
height: 32px;
}
#EasyBlogMediaManager .recentActivities .recentItem .item-image-wrap {
display: table-cell;
text-align: center;
vertical-align: middle;
}
#EasyBlogMediaManager .recentActivities .recentItem .itemIcon {
max-width: 32px;
max-height: 32px;
display: inline;
z-index: 1;
vertical-align: middle;
}
#EasyBlogMediaManager .recentActivities .recentItem .itemTitle {
display: block;
text-align: left;
position: absolute;
z-index: 2;
font-size: 12px;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
top: 0px;
left: 40px;
width: 270px;
overflow: hidden;
white-space: nowrap;
-o-text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
text-overflow: ellipsis;
padding-top: 4px;
}
#EasyBlogMediaManager .recentActivities .recentItem .itemProgress {
color: #888888;
font-size: 10px;
display: block;
line-height: 16px;
}
#EasyBlogMediaManager .recentActivities .recentItem i {
width: 16px;
height: 16px;
position: absolute;
top: 7px;
right: 4px;
display: none;
}
#EasyBlogMediaManager .recentActivities .recentItem.loading i {
background: url(loader.gif) center center no-repeat;
display: block;
}
#EasyBlogMediaManager .recentActivities .recentItem.done i {
background: url(icon.media.png) no-repeat;
background-position: -192px -64px;
display: block;
}
#EasyBlogMediaManager .recentActivities .recentItem.failed i {
background: url(icon.media.png) no-repeat;
background-position: -224px -64px;
display: block;
}
#EasyBlogMediaManager .navigation {
position: relative;
text-align: left;
padding: 0;
margin: 0;
border: none;
}
#EasyBlogMediaManager .navigation .navigationInfo {
height: 14px;
line-height: 18px;
/* From 14px to 18px for visual compensation. */
font-size: 10px;
color: #888;
text-shadow: 1px 1px 0px #FCFCFC;
}
#EasyBlogMediaManager .navigation .navigationPathway {
height: 22px;
width: 200%;
overflow: hidden;
}
#EasyBlogMediaManager .navigation .navigationPathway .navigationItemGroup {
height: 22px;
line-height: 22px;
float: left;
}
#EasyBlogMediaManager .navigation .navigationPathway .navigationItemGroup
.navigationItem {
display: none;
}
#EasyBlogMediaManager .navigation .navigationPathway .navigationItemGroup
.navigationItemStub {
background: #d1ddf4;
border: 1px solid #91AAD6;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding: 0 3px;
}
#EasyBlogMediaManager .navigation .navigationPathway
.navigationItemGroup.expand .navigationItem {
display: inline;
}
#EasyBlogMediaManager .navigation .navigationPathway
.navigationItemGroup.expand .navigationItemStub {
display: none;
}
#EasyBlogMediaManager .navigation .navigationPathway .navigationItemGroup +
.navigationItem {
margin: 0 0 0 4px;
padding: 0 0 0 11px;
position: relative;
}
#EasyBlogMediaManager .navigation .navigationPathway .navigationItemGroup +
.navigationItem i {
background: url(icon.media.png) no-repeat;
background-position: -320px 0px;
width: 8px;
height: 22px;
position: absolute;
top: 0;
left: 0;
}
#EasyBlogMediaManager .navigation .navigationPathway .navigationItemGroup +
.navigationItemGroup {
margin: 0 0 0 4px;
padding: 0 0 0 11px;
position: relative;
}
#EasyBlogMediaManager .navigation .navigationPathway .navigationItemGroup +
.navigationItemGroup i {
background: url(icon.media.png) no-repeat;
background-position: -320px 0px;
width: 8px;
height: 22px;
position: absolute;
top: 0;
left: 0;
}
#EasyBlogMediaManager .navigation .navigationPathway .navigationItem {
height: 22px;
line-height: 22px;
font-size: 13px;
float: left;
}
#EasyBlogMediaManager .navigation .navigationPathway .navigationItem +
.navigationItem {
margin: 0 0 0 4px;
padding: 0 0 0 11px;
position: relative;
}
#EasyBlogMediaManager .navigation .navigationPathway .navigationItem +
.navigationItem i {
background: url(icon.media.png) no-repeat;
background-position: -320px 0px;
width: 8px;
height: 22px;
position: absolute;
top: 0;
left: 0;
}
#EasyBlogMediaManager .navigation .navigationPathway .navigationItem +
.navigationItemGroup {
margin: 0 0 0 4px;
padding: 0 0 0 11px;
position: relative;
}
#EasyBlogMediaManager .navigation .navigationPathway .navigationItem +
.navigationItemGroup i {
background: url(icon.media.png) no-repeat;
background-position: -320px 0px;
width: 8px;
height: 22px;
position: absolute;
top: 0;
left: 0;
}
#EasyBlogMediaManager .navigation .navigationPathway.canActivate
.navigationItem {
cursor: pointer;
}
#EasyBlogMediaManager .navigation .navigationPathway.canActivate
.navigationItem:hover {
text-decoration: underline;
}
#EasyBlogMediaManager .browser {
background: #fff;
}
#EasyBlogMediaManager .browser .modalTitle .modalTitleSnippet {
display: none;
}
#EasyBlogMediaManager .browser.mode-browse .title-browse {
display: inline;
}
#EasyBlogMediaManager .browser.mode-browse .title-blogimage {
display: none;
}
#EasyBlogMediaManager .browser.mode-blogimage .title-browse {
display: none;
}
#EasyBlogMediaManager .browser.mode-blogimage .title-blogimage {
display: inline;
}
#EasyBlogMediaManager .browser.mode-blogimage .insertItemButton,
#EasyBlogMediaManager .browser.mode-blogimage .customizeItemButton,
#EasyBlogMediaManager .browser.mode-blogimage .insertAsGalleryButton {
display: none !important;
}
#EasyBlogMediaManager .browser.searching .browserPagination {
display: none !important;
}
#EasyBlogMediaManager .browser .browserHeader .browserItemActionSet {
display: none;
}
#EasyBlogMediaManager .browser .browserHeader .browserItemActionSet.active
{
display: block;
}
#EasyBlogMediaManager .browser .browserHeader .browserItemActionSet
.green-button {
margin-right: 0 !important;
}
#EasyBlogMediaManager .browser .browserHeader .insertItemButton > i {
background: url(icon.media.png) no-repeat;
background-position: -192px -96px;
}
#EasyBlogMediaManager .browser .browserHeader .insertBlogImageButton {
display: none;
}
#EasyBlogMediaManager .browser .browserHeader .insertBlogImageButton > i
{
background: url(icon.media.png) no-repeat;
background-position: -192px -96px;
}
#EasyBlogMediaManager .browser .browserHeader .customizeItemButton > i {
background: url(icon.media.png) no-repeat;
background-position: -224px -96px;
}
#EasyBlogMediaManager .browser .browserHeader .insertAsGalleryButton > i
{
background: url(icon.media.png) no-repeat;
background-position: -256px -96px;
width: 20px !important;
}
#EasyBlogMediaManager .browser .browserHeader .removeItemButton {
padding-left: 27px !important;
}
#EasyBlogMediaManager .browser .browserHeader .removeItemButton > i {
background: url(icon.media.png) no-repeat;
background-position: -224px 0px;
}
#EasyBlogMediaManager .browser .browserContent {
position: relative;
z-index: 2;
}
#EasyBlogMediaManager .browser .browserFooter {
position: relative;
zoom: 1;
}
#EasyBlogMediaManager .browser .browserFooter:before,
#EasyBlogMediaManager .browser .browserFooter:after {
content: "";
display: table;
}
#EasyBlogMediaManager .browser .browserFooter:after {
clear: both;
}
#EasyBlogMediaManager .browser .browserFooter .browserTreeItemFooter {
width: 180px;
height: 36px;
border-right: 1px solid #CCCCCC;
float: left;
position: relative;
}
#EasyBlogMediaManager .browser .browserFooter .browserTreeItemFooter
.createFolderButton {
padding-left: 26px !important;
}
#EasyBlogMediaManager .browser .browserFooter .browserTreeItemFooter
.createFolderButton > i {
display: inline-block;
position: absolute;
top: 4px;
left: 6px;
width: 16px;
height: 16px;
}
#EasyBlogMediaManager .browser .browserFooter .browserTreeItemFooter
.createFolderButton > i {
background: url(icon.media.png) no-repeat;
background-position: -288px -96px;
}
#EasyBlogMediaManager .browser .browserFooter .browserItemFooter {
height: 36px;
margin-left: 181px;
border-left: 1px solid #FFFFFF;
position: relative;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination i {
display: block;
width: 16px;
height: 16px;
position: absolute;
top: 5px;
left: 6px;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.prevPageButton {
-webkit-border-top-right-radius: 0px;
-webkit-border-bottom-right-radius: 0px;
-webkit-border-bottom-left-radius: 3px;
-webkit-border-top-left-radius: 3px;
-moz-border-radius-topright: 0px;
-moz-border-radius-bottomright: 0px;
-moz-border-radius-bottomleft: 3px;
-moz-border-radius-topleft: 3px;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
float: right;
padding-left: 20px;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.prevPageButton > i {
background: url(icon.media.png) no-repeat;
background-position: -64px 0px;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.nextPageButton {
-webkit-border-top-right-radius: 3px;
-webkit-border-bottom-right-radius: 3px;
-webkit-border-bottom-left-radius: 0px;
-webkit-border-top-left-radius: 0px;
-moz-border-radius-topright: 3px;
-moz-border-radius-bottomright: 3px;
-moz-border-radius-bottomleft: 0px;
-moz-border-radius-topleft: 0px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 0px;
border-top-left-radius: 0px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
float: right;
padding-left: 20px;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.nextPageButton > i {
background: url(icon.media.png) no-repeat;
background-position: -32px 0px;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.pageNumber {
float: right;
height: 27px;
width: 73px;
margin-left: -1px;
position: relative;
-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
-moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.pageSelection {
margin: 0;
padding: 0;
border-bottom-color: #999999;
border-left: none;
border-right: none;
position: absolute;
bottom: 0;
width: 72px;
height: 25px;
list-style: none;
background: white;
border: 1px solid #aaa;
cursor: pointer;
overflow: none;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.pageSelection .paginationPage {
display: none;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.pageSelection .paginationPage.selected {
display: block;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.pageSelection.expanded {
max-height: 200px;
min-height: 75px;
height: auto;
overflow-y: scroll;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.pageSelection.expanded .paginationPage {
display: block;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.pageSelection.expanded .paginationPage.selected {
background-color: #2f59a8;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#4d71b5), to(#2f59a8));
/* Konqueror */
background-image: -moz-linear-gradient(#4d71b5, #2f59a8);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#4d71b5, #2f59a8);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #4d71b5), color-stop(100%, #2f59a8));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#4d71b5, #2f59a8);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#4d71b5, #2f59a8);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d71b5',
endColorstr='#2f59a8', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d71b5',
endColorstr='#2f59a8', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#4d71b5, #2f59a8);
/* the standard */
color: white;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.paginationPage {
height: 25px;
line-height: 25px;
text-align: center;
cursor: pointer;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.paginationPage:hover {
background: #ccd9f1;
}
#EasyBlogMediaManager .browser .browserFooter .browserPagination
.pageBreakdown {
display: none;
}
#EasyBlogMediaManager .browser .browserViewButtons {
position: absolute;
top: 4px;
right: 4px;
}
#EasyBlogMediaManager .browser .browserViewButtons button.button {
float: left;
padding: 0 14px !important;
position: relative;
}
#EasyBlogMediaManager .browser .browserViewButtons button.button > i {
display: block;
width: 16px;
height: 16px;
position: absolute;
top: 4px;
left: 6px;
}
#EasyBlogMediaManager .browser .browserViewButtons button.button.active {
background: #777 !important;
filter: none !important;
}
#EasyBlogMediaManager .browser .browserViewButtons
button.button.browserListViewButton {
-webkit-border-top-right-radius: 0px;
-webkit-border-bottom-right-radius: 0px;
-webkit-border-bottom-left-radius: 3px;
-webkit-border-top-left-radius: 3px;
-moz-border-radius-topright: 0px;
-moz-border-radius-bottomright: 0px;
-moz-border-radius-bottomleft: 3px;
-moz-border-radius-topleft: 3px;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border-right: none;
}
#EasyBlogMediaManager .browser .browserViewButtons
button.button.browserListViewButton > i {
background: url(icon.media.png) no-repeat;
background-position: -256px -32px;
}
#EasyBlogMediaManager .browser .browserViewButtons
button.button.browserListViewButton.active > i {
background: url(icon.media.png) no-repeat;
background-position: -256px 0px;
}
#EasyBlogMediaManager .browser .browserViewButtons
button.button.browserListViewButton.active + .browserTileViewButton {
border-left: none;
}
#EasyBlogMediaManager .browser .browserViewButtons
button.button.browserTileViewButton {
-webkit-border-top-right-radius: 3px;
-webkit-border-bottom-right-radius: 3px;
-webkit-border-bottom-left-radius: 0px;
-webkit-border-top-left-radius: 0px;
-moz-border-radius-topright: 3px;
-moz-border-radius-bottomright: 3px;
-moz-border-radius-bottomleft: 0px;
-moz-border-radius-topleft: 0px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 0px;
border-top-left-radius: 0px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
}
#EasyBlogMediaManager .browser .browserViewButtons
button.button.browserTileViewButton > i {
background: url(icon.media.png) no-repeat;
background-position: -288px -32px;
}
#EasyBlogMediaManager .browser .browserViewButtons
button.button.browserTileViewButton.active > i {
background: url(icon.media.png) no-repeat;
background-position: -288px 0px;
}
#EasyBlogMediaManager .browser .modalPrompt
.modalPromptDialog.createFolderPrompt {
height: 200px;
margin-top: -148px;
}
#EasyBlogMediaManager .browser .modalPrompt
.modalPromptDialog.createFolderPrompt .folderPath {
font-weight: bold;
color: black;
word-wrap: break-word;
}
#EasyBlogMediaManager .browser .modalPrompt
.modalPromptDialog.createFolderPrompt .folderInput {
width: 220px;
}
#EasyBlogMediaManager .browser .modalPrompt
.modalPromptDialog.createFolderPrompt .folderCreationPath {
font-weight: bold;
color: black;
word-wrap: break-word;
}
#EasyBlogMediaManager .browser .modalPrompt
.modalPromptDialog.removeItemPrompt {
height: 220px;
margin-top: -158px;
}
#EasyBlogMediaManager .browser .modalPrompt
.modalPromptDialog.removeItemPrompt .removeItemFilename {
font-weight: bold;
color: black;
word-wrap: break-word;
}
#EasyBlogMediaManager .browser .modalPrompt
.modalPromptDialog.flickrLoginPrompt .flickrLogin {
margin: 15px;
border: none;
overflow: hidden;
width: 400px;
}
#EasyBlogMediaManager .browserSearch {
float: right;
position: relative;
margin: 8px;
background: #292e36;
height: 28px;
width: 150px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #1e2127;
-webkit-box-shadow: inset 0px 2px 2px 0px rgba(0, 0, 0, 0.2), 0 1px 0
rgba(255, 255, 255, 0.2);
-moz-box-shadow: inset 0px 2px 2px 0px rgba(0, 0, 0, 0.2), 0 1px 0
rgba(255, 255, 255, 0.2);
box-shadow: inset 0px 2px 2px 0px rgba(0, 0, 0, 0.2), 0 1px 0 rgba(255,
255, 255, 0.2);
padding-left: 22px;
}
#EasyBlogMediaManager .browserSearch i {
display: inline-block;
width: 16px;
height: 16px;
position: absolute;
top: 6px;
left: 4px;
background: url(icon.media.png) no-repeat;
background-position: -64px -32px;
cursor: pointer;
}
#EasyBlogMediaManager .browserSearch.active i {
background: url(icon.media.png) no-repeat;
background-position: -96px -32px;
}
#EasyBlogMediaManager .browserSearch.showCancelButton:hover i {
background: url(icon.media.png) no-repeat;
background-position: -128px -32px;
}
#EasyBlogMediaManager .browserSearch .searchInput {
background: transparent;
border: none !important;
width: 95%;
line-height: 30px;
height: 30px;
font-size: 12px;
color: #fff;
box-shadow: none !important;
padding: 0;
margin: 0;
}
#EasyBlogMediaManager .browserSearch .searchInput:focus {
box-shadow: none !important;
}
#EasyBlogMediaManager .browserItemField {
position: relative;
text-align: left;
overflow: hidden;
height: 100%;
margin-left: 181px;
}
#EasyBlogMediaManager .browserItemField.searching .browserItemGroup {
display: none !important;
}
#EasyBlogMediaManager .browserItemField.searching
.browserItemGroup.search-mode {
display: block !important;
}
#EasyBlogMediaManager .browserItemField .hints {
background: #fff;
}
#EasyBlogMediaManager .browserItemField .hints .hint {
display: none;
}
#EasyBlogMediaManager .browserItemField.ready {
overflow-y: scroll;
}
#EasyBlogMediaManager .browserItemField.ready .hints {
display: none;
}
#EasyBlogMediaManager .browserItemField.loading .hint.hint-loading {
margin-top: -21px;
display: block;
}
#EasyBlogMediaManager .browserItemField.loading .hint.hint-loading i {
width: 220px;
height: 19px;
background: url(loader.bar.gif) no-repeat;
display: inline-block;
}
#EasyBlogMediaManager .browserItemField.empty .hint.hint-empty {
display: block;
}
#EasyBlogMediaManager .browserItemField.empty .hint.hint-empty
.uploaderButton {
display: none;
}
#EasyBlogMediaManager .browserItemField.empty.canUpload .hint.hint-empty {
margin-top: -29px;
}
#EasyBlogMediaManager .browserItemField.empty.canUpload .hint.hint-empty
.uploaderButton {
display: inline-block;
height: 32px;
padding-left: 28px;
margin-top: 4px;
}
#EasyBlogMediaManager .browserItemField.empty.canUpload .hint.hint-empty
.uploaderButton i {
background: url(icon.media.png) no-repeat;
background-position: -192px -32px;
display: block;
height: 16px;
left: 7px;
position: absolute;
top: 6px;
width: 16px;
}
#EasyBlogMediaManager .browserItemField.emptySearch .hint.hint-emptySearch
{
display: block;
}
#EasyBlogMediaManager .browserItemField.error .hint.hint-error {
display: block;
}
#EasyBlogMediaManager .browserItemField.selectAlbum .hint.hint-selectAlbum
{
display: block;
}
#EasyBlogMediaManager .browserItemField.flickr .hint.hint-flickr {
margin-top: -41px;
display: block;
}
#EasyBlogMediaManager .browserItemField.flickr .hint.hint-flickr
.hint-content {
height: auto;
padding: 0 100px 10px;
}
#EasyBlogMediaManager .browserItemField .browserItemGroup {
position: relative;
width: 100%;
display: none;
border-bottom: 1px solid #fff;
/* Fixes flickering */
zoom: 1;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#EasyBlogMediaManager .browserItemField .browserItemGroup:before,
#EasyBlogMediaManager .browserItemField .browserItemGroup:after {
content: "";
display: table;
}
#EasyBlogMediaManager .browserItemField .browserItemGroup:after {
clear: both;
}
#EasyBlogMediaManager .browserItemField .browserItemGroup.active {
display: block;
}
#EasyBlogMediaManager .browserItemField .browserItem {
position: relative;
cursor: pointer;
overflow: hidden;
}
#EasyBlogMediaManager .browserItemField .browserItem i.loading {
background: url(loader.gif) center center no-repeat;
width: 16px;
height: 16px;
display: none;
}
#EasyBlogMediaManager .browserItemField .browserItem.loading-icon i.loading
{
display: block;
}
#EasyBlogMediaManager .browserItemField .browserItem .itemTitle {
font-size: 12px;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#EasyBlogMediaManager .browserItemField .browserItem.loading-icon .itemIcon
{
-moz-opacity: 0;
-khtml-opacity: 0;
-webkit-opacity: 0;
opacity: 0;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
filter: alpha(opacity=0);
}
#EasyBlogMediaManager .browserItemField .browserItem.item-type-folder {
padding: 0;
display: none;
width: auto !important;
height: auto !important;
}
#EasyBlogMediaManager .browserItemField
.browserItem.item-type-folder.active,
#EasyBlogMediaManager .browserItemField .browserItem.item-type-folder.focus
{
display: block;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-file,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-image,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-audio,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-video {
float: left;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding-top: 10px;
padding-bottom: 28px;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-file i.loading,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-image i.loading,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-audio i.loading,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-video i.loading {
position: absolute;
top: 50%;
width: 100%;
margin-top: -16px;
margin-left: 0;
margin-left: -10px;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-file .item-wrap,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-image .item-wrap,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-audio .item-wrap,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-video .item-wrap {
display: block;
width: 100%;
height: 100%;
overflow: hidden;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-file .item-wrap .item-wrap-outer,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-image .item-wrap .item-wrap-outer,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-audio .item-wrap .item-wrap-outer,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-video .item-wrap .item-wrap-outer {
display: table;
width: 100%;
height: 100%;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-file .item-wrap .item-wrap-inner,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-image .item-wrap .item-wrap-inner,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-audio .item-wrap .item-wrap-inner,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-video .item-wrap .item-wrap-inner {
display: table-cell;
padding: 0 10px;
text-align: center;
vertical-align: middle;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-file .itemIcon,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-image .itemIcon,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-audio .itemIcon,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-video .itemIcon {
display: inline;
z-index: 1;
max-width: 100%;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-file .itemIcon.orientation-tall,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-image .itemIcon.orientation-tall,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-audio .itemIcon.orientation-tall,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-video .itemIcon.orientation-tall {
width: 100%;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-file .itemIcon.orientation-wide,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-image .itemIcon.orientation-wide,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-audio .itemIcon.orientation-wide,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-video .itemIcon.orientation-wide {
width: 100%;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-file .itemIcon.orientation-square,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-image .itemIcon.orientation-square,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-audio .itemIcon.orientation-square,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-video .itemIcon.orientation-square {
width: 100%;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-file .itemTitle,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-image .itemTitle,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-audio .itemTitle,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-video .itemTitle {
display: inline;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 18px;
margin-bottom: 10px;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-file .itemTitle span,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-image .itemTitle span,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-audio .itemTitle span,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-video .itemTitle span {
display: block;
margin: 0 10px;
line-height: 24px;
-o-text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-file.active,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-image.active,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-audio.active,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-video.active {
background-color: #2f59a8;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#4d71b5), to(#2f59a8));
/* Konqueror */
background-image: -moz-linear-gradient(#4d71b5, #2f59a8);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#4d71b5, #2f59a8);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #4d71b5), color-stop(100%, #2f59a8));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#4d71b5, #2f59a8);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#4d71b5, #2f59a8);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d71b5',
endColorstr='#2f59a8', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d71b5',
endColorstr='#2f59a8', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#4d71b5, #2f59a8);
/* the standard */
color: white;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-folder {
zoom: 1;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-folder:before,
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-folder:after {
content: "";
display: table;
}
#EasyBlogMediaManager .browserItemField.view-tile
.browserItem.item-type-folder:after {
clear: both;
}
#EasyBlogMediaManager .browserItemField.view-list .browserItem {
line-height: 32px;
border-top: 1px solid #ddd;
}
#EasyBlogMediaManager .browserItemField.view-list .browserItem .item-wrap {
position: relative;
}
#EasyBlogMediaManager .browserItemField.view-list .browserItem i.loading {
position: absolute;
top: 8px;
left: 6px;
}
#EasyBlogMediaManager .browserItemField.view-list .browserItem
.folderItemGroup {
width: auto;
}
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-file,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-image,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-audio,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-video,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-upload {
height: 32px;
padding: 4px 8px;
}
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-file.active,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-image.active,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-audio.active,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-video.active,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-upload.active {
background-color: #2f59a8;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#4d71b5), to(#2f59a8));
/* Konqueror */
background-image: -moz-linear-gradient(#4d71b5, #2f59a8);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#4d71b5, #2f59a8);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #4d71b5), color-stop(100%, #2f59a8));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#4d71b5, #2f59a8);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#4d71b5, #2f59a8);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d71b5',
endColorstr='#2f59a8', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d71b5',
endColorstr='#2f59a8', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#4d71b5, #2f59a8);
/* the standard */
color: white;
}
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-file .itemIcon,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-image .itemIcon,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-audio .itemIcon,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-video .itemIcon,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-upload .itemIcon {
max-width: 32px;
max-height: 32px;
display: inline-block;
position: absolute;
z-index: 1;
}
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-file .itemTitle,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-image .itemTitle,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-audio .itemTitle,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-video .itemTitle,
#EasyBlogMediaManager .browserItemField.view-list
.browserItem.item-type-upload .itemTitle {
display: block;
text-align: left;
position: relative;
z-index: 2;
padding: 0 0 0 37px;
}
#EasyBlogMediaManager .browserTreeItemField {
position: relative;
overflow: auto;
float: left;
background: #f5f5f5;
width: 180px;
height: 100%;
border-right: 1px solid #ccc;
}
#EasyBlogMediaManager .browserTreeItemGroup {
zoom: 1;
border-bottom: 1px solid #F5F5F5;
}
#EasyBlogMediaManager .browserTreeItemGroup:before,
#EasyBlogMediaManager .browserTreeItemGroup:after {
content: "";
display: table;
}
#EasyBlogMediaManager .browserTreeItemGroup:after {
clear: both;
}
#EasyBlogMediaManager .browserTreeItemGroup.expanded
.browserTreeItem.type-folder {
display: block;
}
#EasyBlogMediaManager .browserTreeItemGroup.expanded
.browserTreeItem.type-place i {
background: url(icon.media.png) no-repeat;
background-position: -416px -96px;
}
#EasyBlogMediaManager .browserTreeItemGroup.expanded
.browserTreeItem.type-place.active i {
background: url(icon.media.png) no-repeat;
background-position: -416px -64px;
}
#EasyBlogMediaManager .browserTreeItem {
position: relative;
cursor: pointer;
padding: 3px 3px 3px 22px;
text-align: left;
height: 16px;
line-height: 16px;
white-space: nowrap;
}
#EasyBlogMediaManager .browserTreeItem i {
width: 16px;
height: 16px;
position: absolute;
top: 3px;
left: 3px;
}
#EasyBlogMediaManager .browserTreeItem .treeItemTitle {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#EasyBlogMediaManager .browserTreeItem.active {
background-color: #2f59a8;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#4d71b5), to(#2f59a8));
/* Konqueror */
background-image: -moz-linear-gradient(#4d71b5, #2f59a8);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#4d71b5, #2f59a8);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #4d71b5), color-stop(100%, #2f59a8));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#4d71b5, #2f59a8);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#4d71b5, #2f59a8);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d71b5',
endColorstr='#2f59a8', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d71b5',
endColorstr='#2f59a8', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#4d71b5, #2f59a8);
/* the standard */
color: white;
}
#EasyBlogMediaManager .browserTreeItem.loading i {
background: url(loader.gif) no-repeat center center !important;
}
#EasyBlogMediaManager .browserTreeItem.type-folder {
display: none;
padding-left: 24px;
margin-left: 18px;
margin-right: 4px;
overflow: hidden;
padding-right: 4px;
-o-text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
text-overflow: ellipsis;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
min-width: 32px;
}
#EasyBlogMediaManager .browserTreeItem.type-folder i {
background: url(icon.media.png) no-repeat;
background-position: -288px -64px;
left: 4px;
}
#EasyBlogMediaManager .browserTreeItem.type-place i {
background: url(icon.media.png) no-repeat;
background-position: -416px -32px;
}
#EasyBlogMediaManager .browserTreeItem.type-place.active i {
background: url(icon.media.png) no-repeat;
background-position: -416px 0px;
}
.uploadInstructions {
font-weight: bold;
top: 39px;
right: 0px;
font-size: 12px;
line-height: 16px;
display: none;
}
.uploadInstructions .uploadExtensions {
font-size: 10px;
font-weight: normal;
line-height: 14px;
margin-top: 4px;
display: block;
color: #888;
}
.uploadInstructions.show {
display: block;
z-index: 9999;
}
#EasyBlogMediaManager .uploader {
background: #fff;
}
#EasyBlogMediaManager .uploader > form {
z-index: 99999 !important;
cursor: pointer;
}
#EasyBlogMediaManager .uploader .plupload {
cursor: pointer;
}
#EasyBlogMediaManager .uploader .plupload input {
cursor: pointer;
}
#EasyBlogMediaManager .uploader .uploadDropHint {
z-index: 1;
}
#EasyBlogMediaManager .uploader .uploadDropHint .hint.hint-dropUpload {
margin-top: -122px;
}
#EasyBlogMediaManager .uploader .uploadDropHint .hint.hint-dropUpload i {
background: url(icon.media.png) no-repeat;
background-position: 0px -128px;
width: 210px;
height: 210px;
display: inline-block;
}
#EasyBlogMediaManager .uploader .uploadItemGroup {
position: relative;
z-index: 2;
overflow-y: scroll;
overflow-x: hidden;
height: 100%;
-moz-opacity: 1;
-khtml-opacity: 1;
-webkit-opacity: 1;
opacity: 1;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
filter: alpha(opacity=100);
background: #fff;
-webkit-transition: all 0.2s ease-out;
-moz-transition: all 0.2s ease-out;
transition: all 0.2s ease-out;
}
#EasyBlogMediaManager .uploader .uploadItemGroup.empty {
-moz-opacity: 0;
-khtml-opacity: 0;
-webkit-opacity: 0;
opacity: 0;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
filter: alpha(opacity=0);
-webkit-transition: all 0.2s ease-out;
-moz-transition: all 0.2s ease-out;
transition: all 0.2s ease-out;
}
#EasyBlogMediaManager .uploader .uploadItemGroup.indefinite-progress
.uploadItem .uploadProgressBar progress {
display: none;
}
#EasyBlogMediaManager .uploader .uploadItemGroup.indefinite-progress
.uploadItem .uploadProgressBar .progress-alt {
display: block;
}
#EasyBlogMediaManager .uploader .uploadItemGroup.blogimage .uploadItem
.uploadActions .insertItemButton {
display: none !important;
}
#EasyBlogMediaManager .uploader .uploadItemGroup.blogimage .uploadItem
.uploadActions .insertBlogImageButton {
display: block !important;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem {
padding: 8px;
padding-left: 32px !important;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem + .uploadItem
{
border-top: 1px solid #ccc;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem .item-wrap {
position: relative;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadFilename {
display: block;
height: 16px;
line-height: 16px;
padding: 0;
white-space: nowrap;
overflow: hidden;
font-size: 12px;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem .uploadStatus
{
display: block;
color: #777;
font-weight: normal;
line-height: 14px;
font-size: 10px;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadProgressBar {
display: none;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadProgressBar progress {
width: 99%;
height: 8px;
margin: 6px 0 2px;
background: #fff;
border: 1px solid #aaa;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadProgressBar progress::-moz-progress-bar {
background: #E5EEFF !important;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadProgressBar progress::-webkit-progress-bar {
background: #E5EEFF !important;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadProgressBar progress::-webkit-progress-value {
background: #E5EEFF !important;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadProgressBar progress[role][aria-valuenow]:before {
background: #E5EEFF !important;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadProgressBar .progress-alt {
width: 99%;
height: 8px;
margin: 6px 0 2px;
background: #fff;
border: 1px solid #aaa;
display: none;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem
.uploadProgressBar .progress-alt img {
height: 8px;
width: 100%;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem .uploadActions
{
display: none;
position: absolute;
top: 0;
right: 0;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem .uploadActions
button {
float: right;
margin-left: 5px;
padding-left: 26px !important;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem .uploadActions
button > i {
position: absolute;
top: 4px;
left: 6px;
width: 16px;
height: 16px;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem .uploadActions
.locateItemButton > i {
background: url(icon.media.png) no-repeat;
background-position: -64px -64px;
height: 17px;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem .uploadActions
.insertItemButton > i {
background: url(icon.media.png) no-repeat;
background-position: -192px -96px;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem .uploadActions
.insertBlogImageButton {
display: none;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem .uploadActions
.insertBlogImageButton > i {
background: url(icon.media.png) no-repeat;
background-position: -192px -96px;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem .uploadIcon {
position: absolute;
width: 16px;
height: 16px;
top: 0;
left: -22px;
display: block;
cursor: pointer;
}
#EasyBlogMediaManager .uploader .uploadItemGroup
.uploadItem.upload-state-queued .uploadIcon {
background: url(icon.media.png) no-repeat;
background-position: -160px -64px;
}
#EasyBlogMediaManager .uploader .uploadItemGroup
.uploadItem.upload-state-uploading .uploadProgressBar {
display: block;
}
#EasyBlogMediaManager .uploader .uploadItemGroup
.uploadItem.upload-state-uploading .uploadIcon {
background-image: url("loader.gif");
background-position: center center;
background-repeat: no-repeat;
}
#EasyBlogMediaManager .uploader .uploadItemGroup
.uploadItem.upload-state-done .uploadIcon {
background: url(icon.media.png) no-repeat;
background-position: -192px -64px;
}
#EasyBlogMediaManager .uploader .uploadItemGroup
.uploadItem.upload-state-done .uploadActions {
display: block;
opacity: 0.3;
}
#EasyBlogMediaManager .uploader .uploadItemGroup
.uploadItem.upload-state-done:hover .uploadActions {
opacity: 1;
}
#EasyBlogMediaManager .uploader .uploadItemGroup
.uploadItem.upload-state-failed .uploadIcon {
background: url(icon.media.png) no-repeat;
background-position: -224px -64px;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem:hover
.uploadIcon.uploadRemoveButton {
background: url(icon.media.png) no-repeat;
background-position: -128px -64px;
}
#EasyBlogMediaManager .uploader .uploadItemGroup .uploadItem:hover
.uploadIcon.uploadRemoveButton:hover {
background: url(icon.media.png) no-repeat;
background-position: -96px -64px;
}
#EasyBlogMediaManager .uploader .modalContent {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#EasyBlogMediaManager .uploader .modalToolbar .uploadButton > i {
background: url(icon.media.png) no-repeat;
background-position: -192px -32px;
}
#EasyBlogMediaManager .uploader .modalToolbar .changeUploadFolderButton
> i {
background: url(icon.media.png) no-repeat;
background-position: -320px -64px;
width: 18px !important;
top: 9px !important;
}
#EasyBlogMediaManager .uploader .modalPrompt .changeUploadFolderPrompt
.promptContent {
padding: 5px 15px;
}
#EasyBlogMediaManager .uploader .modalPrompt .changeUploadFolderPrompt
.browserTreeItemField {
border: 1px solid #ccc;
width: auto;
float: none;
height: 145px;
}
#EasyBlogMediaManager .uploader .modalPrompt .changeUploadFolderPrompt
.browserTreeItemField .browserTreeItemGroup .browserTreeItem.type-place i,
#EasyBlogMediaManager .uploader .modalPrompt .changeUploadFolderPrompt
.browserTreeItemField .browserTreeItemGroup
.browserTreeItem.type-place.active i {
background: url(icon.media.png) no-repeat;
background-position: -288px -64px;
}
#EasyBlogMediaManager .editor {
background: #fff;
}
#EasyBlogMediaManager .editor .modalToolbar .insertItemButton > i {
background: url(icon.media.png) no-repeat;
background-position: -192px -96px;
}
#EasyBlogMediaManager .editor .modalToolbar .cancelEditingButton > i {
background: url(icon.media.png) no-repeat;
background-position: -160px -96px;
}
#EasyBlogMediaManager .editor .modalContent {
zoom: 1;
}
#EasyBlogMediaManager .editor .modalContent:before,
#EasyBlogMediaManager .editor .modalContent:after {
content: "";
display: table;
}
#EasyBlogMediaManager .editor .modalContent:after {
clear: both;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport,
#EasyBlogMediaManager .editor .modalContent .editorLoading {
width: 100%;
height: 100%;
overflow: hidden;
position: absolute;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport {
top: 99999px;
left: 99999px;
z-index: 2;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport.active {
top: 0;
left: 0;
z-index: 3;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport .editorPreview
{
height: 100%;
margin-right: 300px;
background: url("editor.preview.png");
overflow: hidden;
position: relative;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport .editorPreview
.previewContainer {
position: absolute;
z-index: 2;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport .editorPreview
.previewContainer object {
outline: none;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport .editorPreview
.previewContainer object::-moz-focus-inner {
outline: none;
border: 0;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport .editorPreview
.previewContainer.imageCaptionBorder {
padding: 5px;
border: 1px solid #ddd;
background: #f5f5f5;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport .editorPreview
.previewContainer .imageCaptionText {
background: #f5f5f5;
padding: 5px 0;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport .editorPreview
.previewDialogGroup {
width: 100%;
height: 100%;
position: absolute;
z-index: 1;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport .editorPreview
.previewDialogGroup.alwaysOnTop {
z-index: 3;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport .editorPreview
.previewDialogGroup.show-dialog-loading .previewDialog.dialog-loading {
display: block;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport .editorPreview
.previewDialogGroup .previewDialog {
display: none;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport .editorPreview
.previewDialogGroup .previewDialog.dialog-loading {
position: absolute;
top: 50%;
width: 100%;
margin-top: 0;
margin-left: 0;
background: url("loader.gif") no-repeat center center;
width: 16px;
height: 16px;
margin: 0 auto;
position: relative;
z-index: 9999;
}
#EasyBlogMediaManager .editor .modalContent .editorViewport .editorPanel {
width: 300px;
height: 100%;
float: right;
background: #F5F5F5;
border-left: 1px solid #CCCCCC;
overflow-y: scroll;
overflow-x: hidden;
}
#EasyBlogMediaManager .editor .modalContent .editorLoading {
z-index: 1;
top: 0;
left: 0;
text-align: center;
width: 100%;
height: 100%;
background: #f6f6f6;
}
#EasyBlogMediaManager .editor .modalContent .editorLoading .loadingHint {
position: absolute;
top: 50%;
width: 100%;
margin-top: -9.5px;
}
#EasyBlogMediaManager .editor .modalContent .editorLoading .loadingHint i {
background: url("loader.bar.gif");
width: 220px;
height: 19px;
display: inline-block;
}
#EasyBlogMediaManager .editor .modalContent .editorLoading .loadingHint
.loadingText {
font-size: 22px;
line-height: 22px;
padding: 12px;
display: block;
color: #bbb;
text-shadow: 1px 1px 0px #ffffff;
-moz-text-shadow: 1px 1px 0px #ffffff;
-webkit-text-shadow: 1px 1px 0px #ffffff;
/*
filter:
progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color', Positive='true');
-ms-filter:
"progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color',
Positive='true')";
*zoom: 1;
*/
}
#EasyBlogMediaManager .panelSection {
text-align: left;
}
#EasyBlogMediaManager .panelSection .panelSectionHeader {
border-top: 1px solid #ccc;
padding: 8px 16px;
cursor: pointer;
}
#EasyBlogMediaManager .panelSection .panelSectionHeader .panelSectionTitle
{
text-shadow: 1px 1px 0 #f2f2f2;
-moz-text-shadow: 1px 1px 0 #f2f2f2;
-webkit-text-shadow: 1px 1px 0 #f2f2f2;
/*
filter:
progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color', Positive='true');
-ms-filter:
"progid:DXImageTransform.Microsoft.dropshadow(OffX=@horizontalOffset,
OffY=verticalOffset, Color='@color',
Positive='true')";
*zoom: 1;
*/
position: relative;
height: 16px;
line-height: 16px;
padding-left: 8px;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#EasyBlogMediaManager .panelSection .panelSectionHeader .panelSectionTitle
> i {
background: url(icon.media.png) no-repeat;
background-position: -416px -32px;
display: block;
position: absolute;
width: 16px;
height: 16px;
top: 0px;
left: -12px;
}
#EasyBlogMediaManager .panelSection .panelSectionContent {
padding: 8px 24px 16px;
display: none;
position: relative;
}
#EasyBlogMediaManager .panelSection.active .panelSectionHeader {
padding: 8px 16px 0px;
}
#EasyBlogMediaManager .panelSection.active .panelSectionHeader
.panelSectionTitle > i {
background: url(icon.media.png) no-repeat;
background-position: -416px -96px;
}
#EasyBlogMediaManager .panelSection.active .panelSectionContent {
display: block;
}
#EasyBlogMediaManager .editorPanel .formGroup {
display: block;
clear: both;
margin: 8px 0;
}
#EasyBlogMediaManager .editorPanel .formGroup .formLabel {
display: block;
float: left;
width: 85px;
text-align: right;
font-size: 11px;
padding-top: 4px;
}
#EasyBlogMediaManager .editorPanel .formGroup .formControl {
margin-left: 95px;
}
#EasyBlogMediaManager .editorPanel .formGroup input[type=text] {
background: transparent;
border: none;
line-height: 20px;
width: 150px;
height: 20px;
font-size: 12px;
border: 1px solid #999;
padding: 0 0 0 4px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
-webkit-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.2) inset;
-moz-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.2) inset;
box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.2) inset;
}
#EasyBlogMediaManager .list-form,
#EasyBlogMediaManager .list-form li {
font-size: 11px;
margin: 0!important;
padding: 0!important;
list-style: none!important;
border: 0!important;
background: none!important;
}
#EasyBlogMediaManager .list-form + li,
#EasyBlogMediaManager .list-form li + li {
margin: 5px 0 0!important;
}
#EasyBlogMediaManager .list-form > label,
#EasyBlogMediaManager .list-form li > label {
display: block;
min-height: 17px;
line-height: 17px;
margin: 0;
text-align: left;
width: auto;
float: none;
}
#EasyBlogMediaManager .list-form > label + div,
#EasyBlogMediaManager .list-form li > label + div {
margin: 0;
line-height: 20px;
}
#EasyBlogMediaManager .list-form input[type="text"],
#EasyBlogMediaManager .list-form li input[type="text"],
#EasyBlogMediaManager .list-form input[type="password"],
#EasyBlogMediaManager .list-form li input[type="password"],
#EasyBlogMediaManager .list-form input[type="checkbox"],
#EasyBlogMediaManager .list-form li input[type="checkbox"],
#EasyBlogMediaManager .list-form input[type="radio"] textarea,
#EasyBlogMediaManager .list-form li input[type="radio"] textarea,
#EasyBlogMediaManager .list-form select,
#EasyBlogMediaManager .list-form li select {
border: 1px solid #ccc;
font-family: 'Lucida Grande', Tahoma, Arial, sans-serif
!important;
font-size: 11px !important;
background: #fff;
color: #555;
display: inline-block;
position: relative;
vertical-align: top;
}
#EasyBlogMediaManager .list-form input[type="text"],
#EasyBlogMediaManager .list-form li input[type="text"],
#EasyBlogMediaManager .list-form input[type="password"],
#EasyBlogMediaManager .list-form li input[type="password"],
#EasyBlogMediaManager .list-form textarea,
#EasyBlogMediaManager .list-form li textarea {
padding: 4px;
}
#EasyBlogMediaManager .list-form input[type="text"],
#EasyBlogMediaManager .list-form li input[type="text"],
#EasyBlogMediaManager .list-form input[type="password"],
#EasyBlogMediaManager .list-form li input[type="password"] {
width: 90%;
height: 20px;
}
#EasyBlogMediaManager .list-form input[type="checkbox"],
#EasyBlogMediaManager .list-form li input[type="checkbox"],
#EasyBlogMediaManager .list-form input[type="radio"],
#EasyBlogMediaManager .list-form li input[type="radio"] {
float: left;
display: inline-block;
vertical-align: text-bottom;
bottom: -2px;
}
#EasyBlogMediaManager .list-form input[type="checkbox"] + label,
#EasyBlogMediaManager .list-form li input[type="checkbox"] +
label,
#EasyBlogMediaManager .list-form input[type="radio"] + label,
#EasyBlogMediaManager .list-form li input[type="radio"] + label {
margin: 0 0 0 20px!important;
}
#EasyBlogMediaManager .list-form select,
#EasyBlogMediaManager .list-form li select {
padding: 2px;
top: -1px;
}
#EasyBlogMediaManager .list-form label,
#EasyBlogMediaManager .list-form li label {
font-family: 'Lucida Grande', Tahoma, Arial, sans-serif
!important;
font-size: 11px !important;
}
#EasyBlogMediaManager .list-form .field-content,
#EasyBlogMediaManager .list-form li .field-content {
display: block;
margin: 5px 0 0 20px;
}
#EasyBlogMediaManager .list-form.hide-field-content .field-content,
#EasyBlogMediaManager .list-form li.hide-field-content .field-content {
display: none;
}
#EasyBlogMediaManager .editor-type-video .panelSection.infoPanel .itemInfo
> i,
#EasyBlogMediaManager .editor-type-audio .panelSection.infoPanel .itemInfo
> i {
background: url(icon.media.png) no-repeat;
background-position: -288px -128px;
}
#EasyBlogMediaManager .editor-type-image .panelSection.infoPanel .itemInfo
> i {
background: url(icon.media.png) no-repeat;
background-position: -224px -128px;
}
#EasyBlogMediaManager .editor-type-file .panelSection.infoPanel .itemInfo
> i {
background: url(icon.media.png) no-repeat;
background-position: -352px -128px;
}
#EasyBlogMediaManager .panelSection.infoPanel .panelSectionContent {
padding: 8px;
}
#EasyBlogMediaManager .panelSection.infoPanel .panelSectionContent
.itemInfo {
position: relative;
padding-left: 40px;
min-height: 32px;
}
#EasyBlogMediaManager .panelSection.infoPanel .panelSectionContent
.itemInfo > i {
display: block;
position: absolute;
width: 32px;
height: 32px;
top: 0;
left: 0;
}
#EasyBlogMediaManager .panelSection.infoPanel .panelSectionContent
.itemInfo .itemFilename {
display: block;
font-weight: bold;
line-height: 16px;
-o-text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
padding-right: 64px;
}
#EasyBlogMediaManager .panelSection.infoPanel .panelSectionContent
.itemInfo .itemFilesize {
line-height: 16px;
position: absolute;
top: 0;
right: 0;
}
#EasyBlogMediaManager .panelSection.infoPanel .panelSectionContent
.itemInfo .itemCreationDate {
font-size: 11px;
line-height: 16px;
}
#EasyBlogMediaManager .panelSection.infoPanel .panelSectionContent
.itemExtraInfo {
background: none repeat scroll 0 0 #FFFFFF;
border: 1px solid #DDD;
margin-top: 6px;
padding: 8px;
word-wrap: break-word;
/* Internet Explorer 5.5+ */
}
#EasyBlogMediaManager .panelSection.infoPanel .panelSectionContent
.itemExtraInfo .itemUrl {
font-size: 10px;
}
#EasyBlogMediaManager .imageVariationMessage {
position: relative;
line-height: 16px;
color: #900;
display: block;
text-align: center;
font-size: 12px;
}
#EasyBlogMediaManager .imageVariationList .imageVariations {
background: #fff;
border: 1px solid #bbb;
border-bottom: none;
-webkit-border-top-right-radius: 3px;
-webkit-border-bottom-right-radius: 0;
-webkit-border-bottom-left-radius: 0;
-webkit-border-top-left-radius: 3px;
-moz-border-radius-topright: 3px;
-moz-border-radius-bottomright: 0;
-moz-border-radius-bottomleft: 0;
-moz-border-radius-topleft: 3px;
border-top-right-radius: 3px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
border-top-left-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
overflow-y: auto;
height: 88px;
}
#EasyBlogMediaManager .imageVariationList .imageVariations.busy {
background: url(loader.gif) #ffffff no-repeat center center;
}
#EasyBlogMediaManager .imageVariationList .imageVariations .imageVariation
{
padding: 4px;
font-size: 11px;
position: relative;
}
#EasyBlogMediaManager .imageVariationList .imageVariations .imageVariation
.variationName {
background-repeat: no-repeat;
background-position: left center;
white-space: nowrap;
}
#EasyBlogMediaManager .imageVariationList .imageVariations
.imageVariation.locked i {
display: inline-block;
width: 10px;
height: 10px;
background: url(icon.media.png) no-repeat;
background-position: -512px -64px;
}
#EasyBlogMediaManager .imageVariationList .imageVariations
.imageVariation.busy .variationName {
background-image: url(variation.busy.gif);
}
#EasyBlogMediaManager .imageVariationList .imageVariations .imageVariation
.variationDimension {
position: absolute;
top: 4px;
right: 4px;
}
#EasyBlogMediaManager .imageVariationList .imageVariations
.imageVariation.active {
background-color: #2f59a8;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom,
from(#4d71b5), to(#2f59a8));
/* Konqueror */
background-image: -moz-linear-gradient(#4d71b5, #2f59a8);
/* FF 3.6+ */
background-image: -ms-linear-gradient(#4d71b5, #2f59a8);
/* IE10 */
background-image: -webkit-gradient(linear, left top, left bottom,
color-stop(0%, #4d71b5), color-stop(100%, #2f59a8));
/* Safari 4+, Chrome 2+ */
background-image: -webkit-linear-gradient(#4d71b5, #2f59a8);
/* Safari 5.1+, Chrome 10+ */
background-image: -o-linear-gradient(#4d71b5, #2f59a8);
/* Opera 11.10 */
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d71b5',
endColorstr='#2f59a8', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d71b5',
endColorstr='#2f59a8', GradientType=0)";
/* IE8+ */
background-image: linear-gradient(#4d71b5, #2f59a8);
/* the standard */
color: white;
}
#EasyBlogMediaManager .imageVariationList .imageVariations
.imageVariation:hover {
cursor: pointer;
}
#EasyBlogMediaManager .imageVariationList.readOnly .imageVariations {
border: 1px solid #bbb;
-webkit-border-top-right-radius: 3px;
-webkit-border-bottom-right-radius: 3px;
-webkit-border-bottom-left-radius: 3px;
-webkit-border-top-left-radius: 3px;
-moz-border-radius-topright: 3px;
-moz-border-radius-bottomright: 3px;
-moz-border-radius-bottomleft: 3px;
-moz-border-radius-topleft: 3px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
}
#EasyBlogMediaManager .imageVariationForm {
position: relative;
}
#EasyBlogMediaManager .imageVariationForm form {
background: #fff;
border: 1px solid #bbb;
border-bottom: none;
-webkit-border-top-right-radius: 3px;
-webkit-border-bottom-right-radius: 0;
-webkit-border-bottom-left-radius: 0;
-webkit-border-top-left-radius: 3px;
-moz-border-radius-topright: 3px;
-moz-border-radius-bottomright: 0;
-moz-border-radius-bottomleft: 0;
-moz-border-radius-topleft: 3px;
border-top-right-radius: 3px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
border-top-left-radius: 3px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding: 10px;
}
#EasyBlogMediaManager .imageVariationForm .newVariationRatio {
display: block;
width: 24px;
height: 30px;
position: absolute;
top: 80px;
right: 90px;
background: url(icon.media.png) no-repeat;
background-position: -512px -32px;
cursor: pointer;
}
#EasyBlogMediaManager .imageVariationForm .newVariationRatio.locked {
background: url(icon.media.png) no-repeat;
background-position: -512px 0px;
}
#EasyBlogMediaManager .imageVariationForm .newVariationLockRatio {
display: none;
}
#EasyBlogMediaManager .imageVariationActions {
position: relative;
background-color: #ffffff;
background-repeat: no-repeat;
background-image: -webkit-gradient(linear, left top, left bottom,
from(#ffffff), color-stop(50%, #f3f3f3), color-stop(51%, #ededed),
to(#ffffff));
background-image: -webkit-linear-gradient(top, #ffffff 0%, #f3f3f3 50%,
#ededed 51%, #ffffff 100%);
background-image: -moz-linear-gradient(top, #ffffff 0%, #f3f3f3 50%,
#ededed 51%, #ffffff 100%);
background-image: -o-linear-gradient(top, #ffffff 0%, #f3f3f3 50%,
#ededed 51%, #ffffff 100%);
background-image: -ms-linear-gradient(top, #ffffff 0%, #f3f3f3 50%,
#ededed 51%, #ffffff 100%);
background-image: linear-gradient(top, #ffffff 0%, #f3f3f3 50%, #ededed
51%, #ffffff 100%);
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
endColorstr='#ffffff', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
endColorstr='#ffffff', GradientType=0)";
/* IE8+ */
border: 1px solid #bbb;
border-top: 1px solid #ccc;
-webkit-border-top-right-radius: 0;
-webkit-border-bottom-right-radius: 3px;
-webkit-border-bottom-left-radius: 3px;
-webkit-border-top-left-radius: 0;
-moz-border-radius-topright: 0;
-moz-border-radius-bottomright: 3px;
-moz-border-radius-bottomleft: 3px;
-moz-border-radius-topleft: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
border-top-left-radius: 0;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
height: 24px;
}
#EasyBlogMediaManager .imageVariationActions button {
display: block;
position: absolute;
background: none;
border: none;
height: 24px;
line-height: 24px;
padding: 0 6px;
padding-left: 18px;
cursor: pointer;
margin: 0 !important;
text-transform: normal !important;
font-size: 11px !important;
}
#EasyBlogMediaManager .imageVariationActions button i {
width: 12px;
height: 24px;
background-repeat: no-repeat;
background-position: center 8px;
position: absolute;
top: 2px;
left: 6px;
-moz-opacity: 0.75;
-khtml-opacity: 0.75;
-webkit-opacity: 0.75;
opacity: 0.75;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=75);
filter: alpha(opacity=75);
}
#EasyBlogMediaManager .imageVariationActions button:hover {
background-color: #ffffff;
background-repeat: no-repeat;
background-image: -webkit-gradient(linear, left top, left bottom,
from(#ffffff), color-stop(50%, #fbfbfb), color-stop(51%, #f5f5f5),
to(#ffffff));
background-image: -webkit-linear-gradient(top, #ffffff 0%, #fbfbfb 50%,
#f5f5f5 51%, #ffffff 100%);
background-image: -moz-linear-gradient(top, #ffffff 0%, #fbfbfb 50%,
#f5f5f5 51%, #ffffff 100%);
background-image: -o-linear-gradient(top, #ffffff 0%, #fbfbfb 50%,
#f5f5f5 51%, #ffffff 100%);
background-image: -ms-linear-gradient(top, #ffffff 0%, #fbfbfb 50%,
#f5f5f5 51%, #ffffff 100%);
background-image: linear-gradient(top, #ffffff 0%, #fbfbfb 50%, #f5f5f5
51%, #ffffff 100%);
filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
endColorstr='#ffffff', GradientType=0);
/* IE6 & IE7 */
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
endColorstr='#ffffff', GradientType=0)";
/* IE8+ */
}
#EasyBlogMediaManager .imageVariationActions button.addVariationButton {
-webkit-border-top-right-radius: 0;
-webkit-border-bottom-right-radius: 3px;
-webkit-border-bottom-left-radius: 0;
-webkit-border-top-left-radius: 0;
-moz-border-radius-topright: 0;
-moz-border-radius-bottomright: 3px;
-moz-border-radius-bottomleft: 0;
-moz-border-radius-topleft: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 0;
border-top-left-radius: 0;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
top: 0;
right: 0;
border-left: 1px solid #ccc;
}
#EasyBlogMediaManager .imageVariationActions button.addVariationButton i {
background: url(icon.media.png) no-repeat;
background-position: -544px 0px;
}
#EasyBlogMediaManager .imageVariationActions button.removeVariationButton {
-webkit-border-top-right-radius: 0;
-webkit-border-bottom-right-radius: 0;
-webkit-border-bottom-left-radius: 3px;
-webkit-border-top-left-radius: 0;
-moz-border-radius-topright: 0;
-moz-border-radius-bottomright: 0;
-moz-border-radius-bottomleft: 3px;
-moz-border-radius-topleft: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-bottom-left-radius: 3px;
border-top-left-radius: 0;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
top: 0;
left: 0;
border-right: 1px solid #ccc;
}
#EasyBlogMediaManager .imageVariationActions button.removeVariationButton i
{
background: url(icon.media.png) no-repeat;
background-position: -544px -32px;
}
#EasyBlogMediaManager .imageVariationActions button.createVariationButton {
-webkit-border-top-right-radius: 0;
-webkit-border-bottom-right-radius: 3px;
-webkit-border-bottom-left-radius: 0;
-webkit-border-top-left-radius: 0;
-moz-border-radius-topright: 0;
-moz-border-radius-bottomright: 3px;
-moz-border-radius-bottomleft: 0;
-moz-border-radius-topleft: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 0;
border-top-left-radius: 0;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
top: 0;
right: 0;
border-left: 1px solid #ccc;
}
#EasyBlogMediaManager .imageVariationActions button.createVariationButton i
{
background: url(icon.media.png) no-repeat;
background-position: -576px 0px;
}
#EasyBlogMediaManager .imageVariationActions button.backVariationButton {
-webkit-border-top-right-radius: 0;
-webkit-border-bottom-right-radius: 0;
-webkit-border-bottom-left-radius: 3px;
-webkit-border-top-left-radius: 0;
-moz-border-radius-topright: 0;
-moz-border-radius-bottomright: 0;
-moz-border-radius-bottomleft: 3px;
-moz-border-radius-topleft: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-bottom-left-radius: 3px;
border-top-left-radius: 0;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
top: 0;
left: 0;
border-right: 1px solid #ccc;
}
#EasyBlogMediaManager .imageVariationActions button.backVariationButton i {
background: url(icon.media.png) no-repeat;
background-position: -576px -32px;
}
#EasyBlogMediaManager .imageEnforceDimension {
position: relative;
}
#EasyBlogMediaManager .imageEnforceDimension .imageEnforceRatio {
display: block;
width: 24px;
height: 30px;
position: absolute;
top: 85px;
right: 58px;
background: url(icon.media.png) no-repeat;
background-position: -512px -32px;
cursor: pointer;
}
#EasyBlogMediaManager .imageEnforceDimension .imageEnforceRatio.locked {
background: url(icon.media.png) no-repeat;
background-position: -512px 0px;
}
#EasyBlogMediaManager .imageEnforceDimension .imageEnforceLockRatio {
display: none !important;
}
#EasyBlogMediaManager .imageEnforceDimension.field-content
.imageEnforceRatio {
top: 10px;
right: 20px;
}
#EasyBlogMediaManager {
/*Palm only*/
}
@media (max-width: 480px) {
#EasyBlogMediaManager .mediaModalGroup {
padding: 0 10px;
}
#EasyBlogMediaManager .browserTreeItemField {
float: none;
height: auto;
width: 100%;
}
#EasyBlogMediaManager .browserItemField {
margin-left: 0;
}
#EasyBlogMediaManager .mediaModal .modalHeader .modalTitle {
position: relative;
display: none;
}
#EasyBlogMediaManager .mediaModal .modalHeader .modalButtons {
float: none;
}
#EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.uploaderButton,
#EasyBlogMediaManager .mediaModal .modalHeader
button.modalButton.browserButton {
float: left;
}
#EasyBlogMediaManager .mediaModal .modalToolbar {
height: 106px;
}
#EasyBlogMediaManager .mediaModal .modalToolbar .topActions {
position: relative;
right: auto;
}
}
media/style.less000064400000000630151167475130007664 0ustar00@MediaManager:
"#EasyBlogMediaManager";
@import "elements";
@import "common";
@import "modal";
@import "manager";
@import "navigation";
@import "browser";
@import "browser.search";
@import "browser.item";
@import "browser.treeItem";
@import "uploader";
@import "editor";
@import "editor.panel.section";
@import "editor.panel.form";
@import "editor.panel.info";
@import "editor.image";
@import "responsive";
media/uploader.item.js000064400000002710151167475130010743 0ustar00//
module: start
EasyBlog.module("media/uploader.item", function($) {
var module = this;
// controller: start
EasyBlog.Controller("Media.Browser.Uploader.Item",
{
defaultOptions: {
"{filename}": ".uploadFilename",
"{progressBar}": ".uploadProgressBar progress",
"{percentage}": ".uploadPercentage",
"{status}": ".uploadStatus",
"{removeButton}": ".uploadRemoveButton"
}
},
// Instance properties
function(self) { return {
init: function() {
self.element.data("item", self);
self.filename()
.html(self.file.name);
self.setState("queued");
},
getFilesize: function(p, s) {
return (
(self.file.size===undefined || self.file.size=="N/A") ?
"":
((p) ? p : "") +
$.plupload.formatSize(self.file.size) + ((s) ? s : "")
);
},
setProgress: function(val) {
self.progressBar()
.attr("value", val);
self.percentage()
.html(val);
},
setState: function(state) {
// queued, uploading, failed, done
self.element
.removeClass("upload-state-" + self.state)
.addClass("upload-state-" + state);
self.state = state;
},
setMessage: function(message) {
self.status()
.html(message);
},
"{removeButton} click": function(el, event) {
event.stopPropagation();
// TODO: Garbage collection
self.element
.slideUp(function(){
self.element.remove();
});
}
}}
);
// controller: end
module.resolve();
});
// module: end
media/uploader.js000064400000052552151167475140010020 0ustar00// module:
start
EasyBlog.module("media/uploader", function($) {
var module = this;
// require: start
EasyBlog.require()
.library(
"plupload"
)
// .view(
// "media/browser.uploader",
// "media/browser.uploader.item",
// "media/browser.treeItemGroup",
// "media/browser.treeItem"
// )
// .language(
// 'COM_EASYBLOG_MM_UPLOADING',
// 'COM_EASYBLOG_MM_UPLOADING_STATE',
// 'COM_EASYBLOG_MM_UPLOADING_PENDING',
// 'COM_EASYBLOG_MM_UPLOAD_COMPLETE',
// 'COM_EASYBLOG_MM_UPLOAD_PREPARING',
// 'COM_EASYBLOG_MM_UPLOAD_UNABLE_PARSE_RESPONSE',
// 'COM_EASYBLOG_MM_UPLOADING_LEFT'
// )
.done(function(){
var $Media, $Library, $Uploader, DS;
// controller: start
EasyBlog.Controller("Media.Uploader",
{
defaultOptions: {
view: {
uploader: "media/browser.uploader",
uploadItem: "media/browser.uploader.item"
},
"{modalHeader}": ".modalHeader",
"{modalToolbar}": ".modalToolbar",
"{modalContent}": ".modalContent",
"{modalFooter}": ".modalFooter",
"{modalPrompt}": ".modalPrompt",
"{modalBrowserButton}":
".modalButton.browserButton",
"{modalDashboardButton}":
".modalButton.dashboardButton",
"{uploadButton}" : ".uploadButton",
"{uploadNavigation}" : ".uploadNavigation",
"{uploadForm}": ".uploadForm",
"{uploadPath}": ".uploadPath",
"{uploadSize}": ".uploadSize",
"{uploadExtensionList}":
".uploadExtensionList",
"{uploadItemGroup}": ".uploadItemGroup",
"{uploadItem}": ".uploadItem",
"{uploadDropHint}": ".uploadDropHint",
"{uploadInstructions}":
".uploadInstructions",
"{clearListButton}": ".clearListButton"
}
},
function(self) { return {
init: function() {
$Media = self.media;
$Library = $Media.library;
$Uploader = $Media.uploader = self;
DS = $Media.options.directorySeparator;
// Uploader template
self.element
.addClass("uploader")
.html(self.view.uploader({
uploadSize: self.options.settings.max_file_size,
uploadExtensionList:
self.options.settings.filters[0].extensions.split(",").join(",
")
}));
// Browser navigation
self.uploadNavigation()
.implement(
EasyBlog.Controller.Media.Navigation,
{
controller: self.controllerProps()
},
function() {
// Assign controller as a property of myself
self.navigation = this;
}
);
// Modal prompt
self.modalPrompt()
.implement(
EasyBlog.Controller.Media.Prompt,
{
controller: self.controllerProps()
},
function() {
self.promptDialog = this;
}
);
// Folder switcher
self.element
.implement(
EasyBlog.Controller.Media.Uploader.FolderSwitcher,
{
controller: self.controllerProps()
},
function() {
self.folderSwitcher = this;
}
);
// Plupload
self.element
.implement(
"plupload",
{
settings: self.options.settings,
"{uploadButton}" :
self.options["{uploadButton}"],
"{uploadDropsite}":
self.options["{uploadItemGroup}"]
},
function() {
self.plupload = this.plupload;
if (self.plupload.runtime=="html4" ||
$.browser.msie) {
// No drag & drop support
self.uploadDropHint().remove();
self.uploadItemGroup().addClass("indefinite-progress");
// Really dirty fix to fix tooltip in IE
var uploadInstructions =
self.uploadInstructions()
.appendTo($Media.element);
self.element.find("> form")
.mouseover(function(){
var uploadButton = self.uploadButton(),
offset = uploadButton.offset();
uploadInstructions
.addClass("show")
.css({
top: offset.top +
uploadButton.outerHeight() - $Media.element.offset().top + 3,
right: $(window).width() -
(offset.left + uploadButton.outerWidth()) - 1
});
})
.mouseout(function(){
uploadInstructions.removeClass("show");
});
} else {
self.uploadButton()
.mouseover(function(){
self.uploadInstructions().addClass("show");
})
.mouseout(function(){
self.uploadInstructions().removeClass("show");
});
}
}
);
self.setLayout();
},
setLayout: function() {
// Don't set layout if current modal is not us
if ($Media.currentModal!=="uploader") return;
var contentHeight;
self.modalContent()
.hide()
.height(
contentHeight =
self.element.height() -
self.modalHeader().outerHeight() -
self.modalToolbar().outerHeight() -
self.modalFooter().outerHeight()
)
.show();
if ($.browser.msie) {
self.uploadDropHint()
.height(contentHeight);
self.uploadItemGroup()
.height(contentHeight);
}
if (self.plupload) {
self.plupload.refresh();
}
},
controllerProps: function(prop) {
return $.extend(
{
media: self.media,
uploader: self
}, prop || {});
},
setUploadFolder: function(key) {
if (!key) return;
self.navigation
.setPathway(key);
self.currentUploadFolder = key;
},
items: {},
createItem: function(file) {
// Create item controller
var item = new EasyBlog.Controller.Media.Uploader.Item(
self.view.uploadItem(),
{
controller: self.controllerProps({
id: file.id,
originalFile: file,
uploadFolder: self.currentUploadFolder
})
}
);
// Add to item group
item.element
.appendTo(self.uploadItemGroup());
// Set initial status to pending
var filesize = item.file().filesize,
filesize = (filesize) ? "" : " (" +
filesize + ").";
item.setMessage($.language(
"COM_EASYBLOG_MM_UPLOADING_PENDING" ) + filesize);
// Keep a copy of the item in our registry
self.items[file.id] = item;
return item;
},
"{self} BeforeUpload": function(el, event, uploader,
file) {
var item = self.items[file.id];
if (item===undefined) return;
item.setMessage( $.language(
'COM_EASYBLOG_MM_UPLOAD_PREPARING' ) );
var uploadUrl = self.options.settings.url,
meta = $Library.getMeta(item.uploadFolder),
place = (meta) ? meta.place :
item.uploadFolder.split("|")[0],
path = encodeURIComponent((meta) ? meta.path :
item.uploadFolder.split("|")[1]);
uploader.settings.url = uploadUrl + "&place=" +
place + "&path=" + path;
},
"{self} FilesAdded": function(el, event, uploader, files)
{
// Wrap the entire body in a try...catch scope to prevent
// browser from trying to redirect and load the file if
anything goes wrong here.
try {
$.each(files, function(i, file) {
// The item may have been created before, e.g.
// when plupload error event gets triggered first.
if (self.items[file.id]!==undefined) return;
self.createItem(file);
});
if (self.uploadItem().length > 0) {
self.uploadItemGroup().removeClass("empty");
}
self.plupload.start();
} catch (e) {
console.error(e);
};
},
"{self} UploadFile": function(el, event, uploader, file)
{
var item = self.items[file.id];
if (item===undefined) return;
item.setState("uploading");
item.setMessage( $.language(
'COM_EASYBLOG_MM_UPLOADING_STATE' ) );
},
"{self} UploadProgress": function(el, event, uploader,
file) {
var item = self.items[file.id];
if (item===undefined) return;
item.setProgress(file.percent);
item.setMessage(
$.language( 'COM_EASYBLOG_MM_UPLOADING' ) +
((file.percent!==undefined) ? " " + file.percent
+ "%" : "") +
((file.loaded!==undefined &&
!file.size!==undefined) ?
((file.size - file.loaded) ?
" (" + $.plupload.formatSize(file.size -
file.loaded) + " " + $.language(
'COM_EASYBLOG_MM_UPLOADING_LEFT' ) + ")" : ""
) : ""
)
);
},
"{self} FileUploaded": function(el, event, uploader,
file, response) {
// Get upload item
var item = self.items[file.id];
if (item===undefined) return;
// Store the item response (For debugging purposes)
item.response = response;
// If the response is not a valid object
if (!$.isPlainObject(response)) {
// Set upload item state to failed.
item.setState("failed");
item.setMessage($.language('COM_EASYBLOG_MM_SERVER_RETURNED_INVALID_RESPONSE'));
return;
}
// If the response object did not include the meta
if (!$.isPlainObject(response.item)) {
// Set upload item state to failed.
item.setState("failed");
item.setMessage(response.message ||
$.language('COM_EASYBLOG_MM_UPLOAD_UNABLE_PARSE_RESPONSE'));
return;
}
// If all goes well, set upload item state to done.
item.setState("done");
item.setMessage( $.language(
'COM_EASYBLOG_MM_UPLOAD_COMPLETE' ) );
// Store the meta
item.meta = response.item;
// hack: Restore place
item.meta.place = $Media.library.get(item.uploadFolder).place;
// Remove insert blog image button for non-image files
if (item.meta.type!=="image") {
item.insertBlogImageButton().remove();
}
$Media.library.addMeta(item.meta);
},
"{self} FileError": function(el, event, uploader, file,
response) {
var item = self.items[file.id];
if (item===undefined) {
// Create the item
item = self.createItem(file);
}
item.response = response;
item.setState("failed");
item.setMessage(response.message);
if (self.uploadItem().length > 0) {
self.uploadItemGroup().removeClass("empty");
}
},
"{self} Error": function(el, event, uploader, error) {
// If the returned error object also returns a file object
if (error.file) {
// Check if the upload item has been created
var file = error.file,
item = self.items[file.id];
// If the upload item doesn't exist
if (item===undefined) {
// Create the item
item = self.createItem(file);
}
// Set the item state as failed
item.setState("failed");
// And the message for the item.
item.setMessage(error.message);
}
if (self.uploadItem().length > 0) {
self.uploadItemGroup().removeClass("empty");
}
},
"{modalBrowserButton} click": function() {
$Media.browse();
},
"{modalDashboardButton} click": function() {
$Media.hide();
},
"{uploadNavigation} activate": function(el, event, key) {
self.setUploadFolder(key);
},
"{self} modalActivate": function(el, event, key) {
self.setUploadFolder(key);
if ($Media.browser) {
self.uploadItemGroup()
.toggleClass("blogimage",
$Media.browser.mode()=="blogimage");
}
},
removeItem: function(id) {
var item = self.items[id];
if (item!==undefined) {
self.plupload.removeFile(item.file());
item.element.remove();
delete self.items[id];
}
if (self.uploadItem().length < 1) {
self.uploadItemGroup().addClass("empty");
}
},
"{clearListButton} click": function() {
for (id in self.items) {
self.removeItem(id);
}
}
}}
);
EasyBlog.Controller("Media.Uploader.Item",
{
defaultOptions: {
"{filename}": ".uploadFilename",
"{progressBar}": ".uploadProgressBar
progress",
"{percentage}": ".uploadPercentage",
"{status}": ".uploadStatus",
"{removeButton}": ".uploadRemoveButton",
"{insertItemButton}": ".insertItemButton",
"{locateItemButton}": ".locateItemButton",
"{insertBlogImageButton}":
".insertBlogImageButton"
}
},
// Instance properties
function(self) { return {
init: function() {
var file = self.file();
self.filename()
.html(file.name);
self.setState("queued");
},
file: function() {
var file = $Uploader.plupload.getFile(self.id) ||
self.originalFile;
if (file) {
file.filesize = (file.size===undefined ||
file.size=="N/A") ? "" :
$.plupload.formatSize(self.file.size);
}
return file;
},
"dblclick": function(el, event) {
if (event.shiftKey) {
$Media.console("log", self);
}
},
setProgress: function(val) {
self.progressBar()
.attr("value", val);
self.percentage()
.html(val);
},
setState: function(state) {
// queued, uploading, failed, done
self.element
.removeClass("upload-state-" + self.state)
.addClass("upload-state-" + state);
self.state = state;
},
setMessage: function(message) {
self.status()
.html(message);
},
"{removeButton} click": function(el, event) {
event.stopPropagation();
$Uploader.removeItem(self.id);
},
"{insertItemButton} click": function() {
$Media.insert(self.meta);
},
"{locateItemButton} click": function() {
$Media.browse(self.meta);
},
"{insertBlogImageButton} click": function() {
// We are getting the raw meta
var meta = $Library.meta[$Library.getMeta(self.meta).key];
EasyBlog.dashboard.blogImage.setImage(meta);
$Media.hide();
}
}}
);
EasyBlog.Controller("Media.Uploader.FolderSwitcher",
{
defaultOptions: {
view: {
treeItemGroup: "media/browser.tree-item-group",
treeItem : "media/browser.tree-item"
},
"{changeUploadFolderButton}":
".changeUploadFolderButton",
"{selectFolderButton}":
".selectFolderButton",
"{treeItemField}" :
".browserTreeItemField",
"{treeItemGroup}" :
".browserTreeItemGroup",
"{treeItem}" : ".browserTreeItem"
}
},
function(self) { return {
init: function() {
var initialUploadFolder;
self.promptDialog =
$Uploader.promptDialog.get("changeUploadFolderPrompt");
// Create all places
$.each($Media.library.places, function(id, place) {
if (!place.acl.canUploadItem) return;
place.uploaderTreeItemGroup =
self.view.treeItemGroup()
.addClass("expanded") // Always expanded
.appendTo(self.treeItemField());
place.uploaderTreeItem =
self.view.treeItem({title: place.title})
.addClass("loading")
.addClass("type-place")
.data("place", place)
.appendTo(place.uploaderTreeItemGroup);
if (!initialUploadFolder) {
initialUploadFolder = place.id + "|" + DS;
$Uploader.setUploadFolder(initialUploadFolder);
}
place
.done(function(){
self.createTreeItem(place.baseFolder());
place.uploaderTreeItem
.removeClass("loading");
});
});
},
treeItems: {},
createTreeItem: function(meta) {
var meta = $Library.getMeta(meta),
treeItem = self.treeItems[meta.key] || (function(){
var place = $Library.getPlace(meta.place),
parentMeta = $Library.getMeta(meta.parentKey),
// Create tree item
treeItem = self.treeItems[meta.key] =
((parentMeta) ?
self.view.treeItem({title: meta.title})
.addClass("type-folder")
.insertAfter(self.treeItems[parentMeta.key])
:
place.uploaderTreeItem
// Store a reference to the key
).data("key", meta.key);
// Remove tree item when meta is removed
meta.data.on("removed", function(){
self.removeTreeItem(meta);
});
// Listen to the subfolder for changes
meta.data.views
.create({group: "folders"})
.updated(function(folders) {
$.each(folders, function(i, key) {
self.createTreeItem(key);
});
});
return treeItem;
})();
return treeItem;
},
removeTreeItem: function(meta) {
var meta = $Library.getMeta(meta),
treeItem = self.treeItems[meta.key];
if (treeItem) {
treeItem.remove();
var parentTreeItem = self.treeItems[meta.parentKey];
$Uploader.setUploadFolder(meta.parentKey);
}
},
"{treeItem} click": function(el) {
self.treeItem().removeClass("active");
el.addClass("active");
},
"{changeUploadFolderButton} click": function() {
var key = self.currentUploadFolder,
treeItem = self.treeItems[key] ||
self.treeItem(":first");
// Highlght on that tree item
treeItem.click()
self.promptDialog.show();
},
"{selectFolderButton} click": function() {
var key =
self.treeItem(".active").data("key");
$Uploader.setUploadFolder(key);
self.promptDialog.hide();
}
}}
);
// controller: end
module.resolve();
});
// require: end
});
// module: end
media/uploader.less000064400000020427151167475140010346
0ustar00.uploadInstructions {
font-weight: bold;
top: 39px;
right: 0px;
font-size: 12px;
line-height: 16px;
display: none;
.uploadExtensions {
font-size: 10px;
font-weight: normal;
line-height: 14px;
margin-top: 4px;
display: block;
color: #888;
}
&.show {
display: block;
z-index: 9999;
}
}
(~"@{MediaManager}") {
.uploader {
> form {
// Fixes unable to click uploader button on IE.
z-index: 99999 !important;
cursor: pointer;
}
.plupload {
cursor: pointer;
input {
cursor: pointer;
}
}
background: #fff;
.uploadDropHint {
z-index: 1;
.hint.hint-dropUpload {
margin-top: -244px / 2;
i {
.icon-media(1, 5);
width: 210px;
height: 210px;
display: inline-block;
}
}
}
.uploadItemGroup {
position: relative;
z-index: 2;
overflow-y: scroll;
overflow-x: hidden;
height: 100%;
.opacity(1);
background: #fff;
.transition();
&.empty {
.opacity(0);
.transition();
}
&.indefinite-progress {
.uploadItem {
.uploadProgressBar {
progress {
display: none;
}
.progress-alt {
display: block;
}
}
}
}
&.blogimage {
.uploadItem .uploadActions {
.insertItemButton {
display: none !important;
}
.insertBlogImageButton {
display: block !important;
}
}
}
// start: .uploadItem
.uploadItem {
padding: 8px;
padding-left: 32px !important; // 12px + 16px icon + 4px
gap
.unselectable();
+ .uploadItem {
border-top: 1px solid #ccc;
}
.item-wrap {
position: relative;
}
.uploadFilename {
display: block;
height: 16px;
line-height: 16px;
padding: 0;
white-space: nowrap;
overflow: hidden;
font-size: 12px;
}
.uploadStatus {
display: block;
color: #777;
font-weight: normal;
line-height: 14px;
font-size: 10px;
}
.uploadProgressBar {
display: none;
.progress() {
width: 99%;
height: 8px;
margin: 6px 0 2px;
background: #fff;
border: 1px solid #aaa;
}
.progressBar() {
background: #E5EEFF !important;
.rounded(3px);
}
progress {
.progress();
.rounded(3px);
&::-moz-progress-bar { .progressBar();
}
&::-webkit-progress-bar { .progressBar();
}
&::-webkit-progress-value { .progressBar();
}
&[role][aria-valuenow]:before { .progressBar();
}
}
.progress-alt {
.progress();
display: none;
img {
height: 8px;
width: 100%;
}
}
}
.uploadActions {
display: none;
position: absolute;
top: 0;
right: 0;
button {
float: right;
margin-left: 5px;
padding-left: 8px + 16px + 2px !important; // 1px
for cosmetic
> i {
position: absolute;
top: 4px;
left: 6px;
width: 16px;
height: 16px;
}
}
.locateItemButton {
> i {
.icon-media(3, 3);
height: 17px;
}
}
.insertItemButton {
> i {
.icon-media(7, 4);
}
}
.insertBlogImageButton {
display: none;
> i {
.icon-media(7, 4);
}
}
}
.uploadIcon {
position: absolute;
width: 16px;
height: 16px;
top: 0;
left: -22px;
display: block;
cursor: pointer;
}
&.upload-state-queued {
.uploadIcon {
.icon-media(6, 3);
}
}
&.upload-state-uploading {
.uploadProgressBar {
display: block;
}
.uploadIcon {
background-image: url("loader.gif");
background-position: center center;
background-repeat: no-repeat;
}
}
&.upload-state-done {
.uploadIcon {
.icon-media(7, 3);
}
.uploadActions {
display: block;
opacity: 0.3;
}
&:hover .uploadActions {
opacity: 1;
}
}
&.upload-state-failed {
.uploadIcon {
.icon-media(8, 3);
}
}
&:hover {
.uploadIcon.uploadRemoveButton {
.icon-media(5, 3);
&:hover {
.icon-media(4, 3);
}
}
}
}
// end: .uploadItem
}
.modalContent {
.unselectable();
}
.modalToolbar {
.uploadButton {
> i {
.icon-media(7, 2);
}
}
.changeUploadFolderButton {
> i {
.icon-media(11, 3);
width: 18px !important;
top: 9px !important;
}
}
}
.modalFooter {
.clearListButton {
> i {
}
}
}
.modalPrompt {
.changeUploadFolderPrompt {
.promptContent {
padding: 5px 15px;
}
.browserTreeItemField {
border: 1px solid #ccc;
width: auto;
float: none;
height: 145px;
.browserTreeItemGroup .browserTreeItem.type-place i,
.browserTreeItemGroup
.browserTreeItem.type-place.active i {
.icon-media(10, 3);
}
}
}
}
}
}
media.js000064400000126015151167475140006201
0ustar00EasyBlog.module("media", function($){
var module = this;
var htmlentity = function(str) {
return $("<div>").text(str)
.html()
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
var $Media, $Library, $Browser, $Uploader, DS;
//
// 1. Create media manager controller.
//
EasyBlog.Controller("Media",
{
defaultOptions: {
debug: {
logging: EasyBlog.debug,
itemVisibility: false,
delayConfiguration: 0,
delayCommon: 0,
delayBrowser: 0,
delayUploader: 0,
delayEditor: 0
},
ui: "#EasyBlogMediaManagerUI",
overlay: {
background: "black",
opacity: 0
},
modal: {
size: 0.9
},
recentActivities: {
hideAfter: 3000
},
"{modalGroup}" : ".mediaModalGroup",
"{modal}" : ".mediaModal",
"{loaderModal}" : ".loaderModal",
"{uploaderModal}" : ".uploaderModal",
"{browserModal}" : ".browserModal",
"{editorModal}" : ".editorModal",
"{modalContent}" : ".modalContent",
"{overlay}": ".media-overlay",
"{modalDashboardButton}": ".dashboardButton",
"{assetItem}": ".assetItem"
}
},
function(self) { return {
console: function(method, args) {
if (!self.options.debug.logging) return;
var console = window.console;
if (!console) return;
var method = console[method];
if (!method) return;
// Normal browsers
if (method.apply) {
method.apply(console, args);
// IE
} else {
method(args.join(" "));
}
},
assets: {},
getAsset: function(name) {
if (self.assets[name]===undefined) {
var asset = self.assets[name] = $.Deferred();
asset
.done(function(){
self.assetItem(".asset-type-"+name)
.removeClass("loading done failed")
.addClass("done");
})
.fail(function(){
self.assetItem(".asset-type-"+name)
.removeClass("loading done failed")
.addClass("fail");
});
}
return self.assets[name];
},
createAsset: function(name, factory, delay) {
var asset = self.getAsset(name);
asset.factory = factory;
setTimeout(function(){
asset.factory && asset.factory(asset);
}, delay);
return asset;
},
init: function() {
// Globals
$Media = self;
self.IE = (function(){
var undef,
v = 3,
div = document.createElement('div'),
all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) +
']><i></i><![endif]-->',
all[0]
);
return v > 4 ? v : undef;
}());
if( typeof( tinyMCE ) != 'undefined' )
{
// Caret position fix
if (tinyMCE && tinyMCE.isIE && self.IE==9) {
// Wait for TinyMCE to be ready
var waitForTinyMCE = setInterval(function(){
var editor = tinyMCE.editors.write_content;
if (!editor) return;
var events = "keydown.mediaManager mousedown.mediaManager
focus.mediaManager";
$(editor.contentWindow)
// Just in case it was binded
.off(events)
.on(events, function(){
self.bookmark = {
element: editor.selection.getEnd(),
range: editor.selection.getBookmark(1).rng
}
});
clearInterval(waitForTinyMCE);
}, 500);
}
}
// Remember the document body's original overflow property
// Used with .hide();
self.originalBodyOverflow =
$("body").css("overflow");
// When "module/configuration" gets resolved,
// file & folder indexing kicks in immediately
// without waiting for the other assets to resolve.
self.createAsset(
"configuration",
function(asset) {
EasyBlog.module("media/configuration")
.done(function() {
var options = this;
self.initialize(this);
asset.resolve();
})
.fail(function(){
asset.reject();
});
},
self.options.debug.delayConfiguration
);
// Stylesheet & navigation is given priority because it needs to be
// ready before uploader can initialize. And we need
// uploader to be up & ready as fast as possible.
self.createAsset(
"common",
function(asset) {
EasyBlog.require()
.script(
"media/navigation"
)
.view(
"media/recent.item",
// Browser
"media/browser",
"media/browser.item-group",
"media/browser.item",
"media/browser.tree-item-group",
"media/browser.tree-item",
"media/browser.pagination-page",
// Uploader
"media/browser.uploader",
"media/browser.uploader.item",
// Editor
"media/editor",
"media/editor.viewport",
// Navigation
"media/navigation.item",
"media/navigation.itemgroup"
)
.language(
"COM_EASYBLOG_MM_UNABLE_TO_FIND_EXPORTER",
"COM_EASYBLOG_MM_GETTING_IMAGE_SIZES",
"COM_EASYBLOG_MM_UNABLE_TO_RETRIEVE_VARIATIONS",
"COM_EASYBLOG_MM_ITEM_INSERTED",
"COM_EASYBLOG_MM_UPLOADING",
"COM_EASYBLOG_MM_UPLOADING_STATE",
"COM_EASYBLOG_MM_UPLOADING_PENDING",
"COM_EASYBLOG_MM_UPLOAD_COMPLETE",
"COM_EASYBLOG_MM_UPLOAD_PREPARING",
"COM_EASYBLOG_MM_UPLOAD_UNABLE_PARSE_RESPONSE",
"COM_EASYBLOG_MM_UPLOADING_LEFT",
"COM_EASYBLOG_MM_CONFIRM_DELETE_ITEM",
"COM_EASYBLOG_MM_CANCEL_BUTTON",
"COM_EASYBLOG_MM_YES_BUTTON",
"COM_EASYBLOG_MM_ITEM_DELETE_CONFIRMATION"
)
.stylesheet("media/style")
.done(function() {
asset.resolve();
})
.fail(function(){
asset.reject();
});
},
self.options.debug.delayCommon
);
// Load all uploader dependencies NOW so we can shave off
// that extra 1-2 seconds that was used to wait for
// "media/uploader" module to resolve.
self.createAsset(
"uploader",
function(asset) {
$.when(
self.getAsset("configuration"),
self.getAsset("common"),
EasyBlog.require().script("media/uploader").done()
)
.done(function() {
var modal = self.createModal("uploader");
$Uploader = modal.controller = new
EasyBlog.Controller.Media.Uploader(modal.element, self.options.uploader);
asset.resolve();
})
.fail(function(){
asset.reject();
});
},
self.options.debug.delayUploader
);
// Browser
self.createAsset(
"browser",
function(asset) {
$.when(
self.getAsset("configuration"),
self.getAsset("common"),
EasyBlog.require().script("media/browser").done()
)
.done(function(){
var modal = self.createModal("browser");
$Browser = modal.controller = new
EasyBlog.Controller.Media.Browser(modal.element, self.options.browser);
asset.resolve();
})
.fail(function(){
asset.reject();
});
},
self.options.debug.delayBrowser
);
// Editor
self.createAsset(
"editor",
function(asset) {
$.when(
self.getAsset("browser"),
EasyBlog.require().script("media/editor").done()
)
.done(function(){
var modal = self.createModal("editor");
modal.controller = new
EasyBlog.Controller.Media.Editor(modal.element, self.options.editor);
asset.resolve();
})
.fail(function(){
asset.reject();
});
},
self.options.debug.delayEditor
);
// Progressive enhancement
EasyBlog.require()
.library("throttle-debounce")
.done(function(){
// Debounce self.setLayout(). Debouncing setLayout() is only useful
when
// media explorer is doing resource-intensive thumbnail resizing.
self.setLayout = $.debounce(200, self._setLayout);
});
},
initialize: function(options) {
// Inject subcontroller options with back-reference to media
var media = {controller: {media: self}},
options = $.extend(true, options, {browser: media, uploader: media,
library: media, editor: media, exporter: media});
// Reload configuration
self.update(options);
// Globals
DS = options.directorySeparator;
// Render media manager UI
var UI = $(self.options.ui);
self.element.append(UI.html());
UI.remove();
// Set up overlay
self.overlay()
.css(self.options.overlay);
// Set up loader
self.loader = new
EasyBlog.Controller.Media.Loader(self.createModal("loader"),
{controller: {media: self}});
// Implement media library
self.element
.implement(
EasyBlog.Controller.Media.Library,
self.options.library,
function(){
}
);
// Implement media exporter
self.element
.implement(
EasyBlog.Controller.Media.Exporter,
self.options.exporter
);
module.resolve();
},
// This will be replaced with a debounced function later on.
setLayout: function() {
self._setLayout();
},
// We are retaining direct access to non-debounced setLayout()
// because we might need it sometimes.
_setLayout: function() {
self.layout = (self.element.hasClass("active")) ? $.uid() :
null;
if (self.layout) {
self.setModalLayout();
}
return self.layout;
},
modals: {},
createModal: function(name) {
var element = self.modal("."+name+"Modal");
if (element.length < 1) {
element = $('<div
class="mediaModal"></div>').addClass(name+"Modal").appendTo(self.modalGroup());
}
return self.modals[name] = {
name: name,
element: element
}
},
activateModal: function(name, args) {
if (self.modals[name]===undefined) {
self.loader
.when(self.assets[name])
.done(function(){
setTimeout(function(){
self.activateModal(name, args);
}, 1000);
});
return;
}
// If modal to activate is current modal, skip.
if (self.currentModal===name) return true;
var modal = self.modals[name];
if (!modal) return false;
self.deactivateModal(self.currentModal);
self.currentModal = name;
// This will also set modal layout
self.show();
// Trigger "modalActivate event"
var controller = modal.controller;
if (controller) {
controller.trigger("modalActivate", args);
}
return true;
},
deactivateModal: function(name, args) {
var modal = self.modals[name];
if (!modal) return false;
// Trigger "modalActivate event"
var controller = modal.controller;
if (controller) {
try {
controller.trigger("modalDeactivate", args);
} catch (e) {
console.error(e);
}
}
modal.element.removeClass("active");
self.currentModal = undefined;
return true;
},
setModalLayout: function() {
clearTimeout(self.setModalLayout.task);
var modal = self.modals[self.currentModal];
// Skip if modal does not exist, or no visible modal.
if (!modal) return;
// If no layout has been set, set it first.
// setModalLayout will eventually be called again.
if (!self.layout) return self._setLayout();
// Show the modal
modal.element.addClass("active");
// Set the layout modal
var controller = modal.controller;
if (controller && $.isFunction(controller.setLayout)) {
// This fixes an issue where the modal requires
// more time than expected to paint on the screen.
// Whenever the modal is painted on the screen,
// its top/left is never 0.
var task = function() {
var offset = controller.element.offset();
if (offset.top===0 || offset.left===0) {
self.setModalLayout.task = setTimeout(task, 50);
} else {
controller.setLayout();
}
};
task();
}
},
show: function() {
// This prevents scrolling of page body
// $("body").css("overflow", "hidden");
self.element
.addClass("active");
self._setLayout();
// Conflict with certain mootools version
// self.trigger("show");
self.trigger("showModal");
},
hide: function() {
self.element
.removeClass("active");
self.deactivateModal(self.currentModal);
// $("body").css("overflow",
self.originalBodyOverflow);
// Conflict with certain mootools version
// self.trigger("hide");
self.trigger("hideModal");
},
"{overlay} click": function() {
self.hide();
},
"{window} resize": function() {
self.setLayout();
},
"{modalDashboardButton} click": function(el, event) {
// #debug:start
if (event.shiftKey) return self.console("dir", [self]);
// #debug:end
self.hide();
},
// Sugar methods
upload: function() { self.activateModal("uploader",
arguments); },
browse: function() { self.activateModal("browser", arguments);
},
edit : function() { self.activateModal("editor", arguments);
}
}}
);
EasyBlog.Controller("Media.Loader",
{
defaultOptions: {
}
},
function(self) { return {
init: function() {
},
when: function() {
self.media.activateModal("loader");
var queue = $.when.apply(null, arguments),
onQueueDone = queue.done; // Keep an original copy of done method
queue.id = $.uid();
queue.done = function(callback) {
onQueueDone(function(){
// If we are still waiting for it
if (self.currentQueueId==queue.id) {
// then execute the callback
callback && callback();
}
});
}
self.currentQueueId = queue.id;
return queue;
},
"{self} hide": function() {
self.currentQueueId = null;
}
}}
);
EasyBlog.Controller("Media.Prompt",
{
defaultOptions: {
"{dialog}": ".modalPromptDialog",
"{cancelButton}": ".promptCancelButton"
}
},
function(self){ return {
init: function() {
},
get: function(name) {
var dialog = self.dialog("." + name);
return self.instantiate(dialog);
},
instantiate: function(dialog) {
var methods = {
element: dialog,
show: function() {
dialog.addClass("active");
self.element.addClass("active");
return methods;
},
hide: function() {
dialog.removeClass("active");
self.element.removeClass("active");
return methods;
},
state: function(state) {
var lastState = dialog.data("lastPromptState");
if (state===undefined) {
return lastState;
}
var getStateElement = function(state) {
return dialog.find(".promptState" + ".state-" +
state);
},
currentState = getStateElement(state),
lastState = getStateElement(lastState);
if (currentState.length < 1) {
return;
}
lastState.removeClass("active");
currentState.addClass("active");
dialog.data("lastPromptState", state);
return methods;
}
}
return methods;
},
hideAll: function() {
self.dialog().removeClass("active");
self.element.removeClass("active");
},
"{cancelButton} click": function() {
self.hideAll();
}
}}
);
EasyBlog.Controller("Media.Library",
{
defaultOptions: {
// options for managing indexing of metas here
places: [],
place: {
files: {},
acl: {
canCreateFolder: false,
canUploadItem: false,
canRenameItem: false,
canRemoveItem: false,
canCreateVariation: false,
canDeleteVariation: false
},
populateImmediately: false
}
}
},
function(self) { return {
init: function() {
// Register itself to media
self.media.library = self;
$.each(self.options.places, function(i, place) {
self.addPlace(place);
});
},
places: {},
getPlace: function(place) {
// Skip going through all the tests below.
if (!place) return;
// Place (test using acl property)
if (place.acl) {
return place;
}
// Place ID or Key
if (typeof place==="string") {
return self.places[place.split("|")[0]];
}
},
addPlace: function(place) {
var place = self.places[place.id] = $.extend(
{
tasks: $.Threads({threadLimit: 1}),
ready: $.Deferred(),
baseFolder: function() {
return self.getMeta(place.id + "|" +
self.media.options.directorySeparator);
}
},
self.options.place,
place
);
place.done = place.ready.done;
place.fail = place.ready.fail;
place.always = place.ready.always;
var importJSON = function(data) {
// When tree is not populated, it is an empty object.
if ($.isEmptyObject(data)) return;
// When tree is a string, it might be json string.
if (typeof data === "string") {
// Try to eval it.
try { data = $.evalJSON(data); } catch(e) {}
}
return (typeof data === "object") ? data : undefined;
}
// Import initial file tree
place.files = importJSON(place.files);
if (place.files) {
place.tasks.add(function(){
self.importMeta(place.files);
place.ready.resolve(place);
});
};
place.populate = function() {
if (place.populate.task!==undefined) return place.populate.task;
place.populate.task = $.Deferred();
// JomSocial & Flickr goes directly to getFileTree,
// User & Shared folder getFolderTree first.
place.populate[
(/jomsocial|flickr/.test(place.id) || place.files) ?
"getFileTree" : "getFolderTree"
]();
return place.populate.task;
};
place.populate.getFolderTree = function() {
// Get final folder tree
return self.getRemoteMeta({place: place.id, foldersOnly: 1})
.done(function(meta){
// Import the folder tree
place.tasks.add(function(){
// #debug:start
// var profiler = "Importing final folder tree for " +
place.id;
// self.media.console("time", [profiler]);
// #debug:end
self.importMeta(meta);
place.ready.resolve(place);
// #debug:start
// self.media.console("timeEnd", [profiler]);
// #debug:end
});
place.populate.getFileTree();
})
.fail(function(){
place.populate.task.reject(place);
delete place.populate.task;
place.ready.reject(place);
});
};
place.populate.getFileTree = function() {
// Get final file tree
return self.getRemoteMeta({place: place.id})
.done(function(meta){
// Import the folder tree
place.tasks.add(function(){
// #debug:start
// var profiler = "Importing final file tree for " +
place.id;
// self.media.console("time", [profiler]);
// #debug:end
self.importMeta(meta);
place.ready.resolve(place);
place.populate.task.resolve(place);
// #debug:start
// self.media.console("timeEnd", [profiler]);
// #debug:end
});
})
.fail(function(){
place.populate.task.reject(place);
delete place.populate.task;
});
};
if (place.populateImmediately) {
place.populate();
}
return place;
},
meta: {},
metadata: {}, // Extended data attribute for meta
isMeta: function(meta) {
return !(meta===undefined || !$.isPlainObject(meta) ||
$.isEmptyObject(meta));
},
get: function(key) {
if (!self.meta.hasOwnProperty(key)) return;
// Create a clone of the meta, keeping the original intact
var meta = $.extend({}, self.meta[key]);
// Extend meta with additional data attributes
meta.data = self.metadata[key];
return meta;
},
getKey: function(meta) {
return (meta) ? meta.place + "|" + meta.path : null;
},
getParentKey: function(meta) {
if (!meta) return;
var key = (typeof meta==="string") ? meta : (meta.key ||
self.getKey(meta)),
start = key.indexOf(DS),
end = key.lastIndexOf(DS);
return (end===key.length-1) ? undefined : key.substring(0, end +
((start===end) ? 1 : 0));
},
getMeta: function(meta) {
// Skip going through all the tests below.
if (!meta) return;
// Meta
if (self.isMeta(meta)) {
// Try to get the updated meta,
// if it doesn't work, just return the existing meta.
return self.get(self.getKey(meta)) || meta;
}
// Key
if (typeof meta==="string") {
return self.get(meta); // meta == key
}
},
getRemoteMeta: function(options) {
var task = $.Deferred();
task.retry = 0;
var defaultOptions = {
path: self.media.options.directorySeparator,
retry: 3,
retryAfter: 1000,
variation: 0,
foldersOnly: 0
},
options = $.extend(defaultOptions, options);
// Don't do anything if place is not given
if (options.place===undefined) {
return task.rejectWith(task, "Error: Place not given!");
}
var loadRemoteMeta = (function() {
task.loader =
EasyBlog.ajax(
"site.views.media.getMeta",
options,
{
success: function(data) {
task.resolveWith(task, arguments);
},
// Server-side error
fail: function() {
task.rejectWith(task, arguments);
},
// Network error
error: function() {
task.retry++;
if (task.retry < options.retry) {
loadRemoteMeta();
} else {
task.rejectWith(task, arguments);
}
}
}
);
return arguments.callee;
})();
return task;
},
getMetaVariations: function(meta) {
var meta = self.getMeta(meta);
if (meta===undefined) return;
return self.getRemoteMeta({place: meta.place, path: meta.path,
variation: 1})
.done(function(meta){
self.addMeta(meta);
});
},
removeMetaVariation: function(meta, variationName) {
var meta = self.getMeta(meta);
if (meta===undefined) return;
if (meta.variations===undefined) return;
var variation;
for (var i=0; i<meta.variations.length; i++) {
if (meta.variations[i].name===variationName) {
variation = meta.variations[i];
meta.variations.splice(i, 1);
break;
}
};
return variation;
},
addMeta: function(meta) {
var key = self.getKey(meta),
existingMeta = self.getMeta(key);
// If the meta passed in is the meta that we already have,
// just return the existing meta.
if (existingMeta && meta.hash===existingMeta.hash) return
existingMeta;
// Create meta
meta.key = key;
meta.hash = $.uid();
meta.group = (meta.type=="folder") ? "folders" :
"files";
// Store parent key if this is not the top level folder
meta.parentKey = self.getParentKey(meta);
// Add friendly path
var place = self.getPlace(meta.place);
meta.friendlyPath =
(meta.path===DS) ?
place.title :
place.title + meta.path.substring(meta.path.indexOf(DS),
meta.path.length);
// Store it to our meta library
self.meta[key] = meta;
// Create metadata
var data = meta.data = (self.metadata[key] || (self.metadata[key] =
$.eventable({})));
// Additional metadata for folder type
if (meta.type=="folder") {
data.files = data.files || {};
data.folders = data.folders || {};
data.views = data.views || self.createMetaView(meta);
}
// For new meta, add to parent meta's view.
if (!existingMeta) {
var parentMeta = self.getMeta(meta.parentKey);
if (parentMeta) {
parentMeta.data.views.addMeta(meta);
}
// For existing meta, fire update event.
} else {
// Ensure events don't slow down adding of large list of metas
setTimeout(function(){ meta.data.fire("updated", meta); },
0);
}
return meta;
},
removeMeta: function(meta) {
var meta = self.getMeta(meta);
if (meta===undefined) return;
if (meta.type==="folder") {
var folders = meta.data.folders,
files = meta.data.files;
for (key in folders) {
self.removeMeta(key);
}
for (key in files) {
self.removeMeta(key);
}
}
// If this is not base folder
if (meta.parentKey) {
// Remove meta from parent
var parentMeta = self.getMeta(meta.parentKey);
if (parentMeta) {
parentMeta.data.views.removeMeta(meta);
}
delete self.meta[meta.key];
setTimeout(function(){ meta.data.fire("removed", meta); },
0);
}
return meta;
},
removeRemoteMeta: function(meta) {
var task = $.Deferred();
var meta = self.getMeta(meta);
if (meta===undefined) {
return task.rejectWith(task, "The file does not exist in the
media library.");
}
task.loader =
EasyBlog.ajax(
"site.views.media.delete",
{
place: meta.place,
path: meta.path
},
{
success: function() {
self.removeMeta(meta);
// Return the meta which is no longer in the library
task.resolveWith(task, [meta]);
},
// Server-side error
fail: function() {
task.rejectWith(task, arguments);
},
// Network error
error: function(xhr, errorStatus) {
task.rejectWith(task, [errorStatus])
}
});
return task;
},
createFolder: function(meta, name) {
var task = $.Deferred();
// Don't do anything if parent meta not found.
var meta = self.getMeta(meta),
place = meta.place;
if (meta===undefined || meta.type!=="folder") {
return task.rejectWith(task, "Parent folder was not
found.");
}
task.loader =
EasyBlog.ajax(
"site.views.media.createFolder",
{
place: place,
path : meta.path + DS + name
},
{
success: function(meta) {
// #hack: Restore place property
meta.place = place;
var meta = self.addMeta(meta);
task.resolveWith(task, [meta]);
},
// Server-side error
fail: function() {
task.rejectWith(task, arguments);
},
// Network error
error: function(xhr, errorStatus) {
task.rejectWith(task, [errorStatus])
}
}
);
return task;
},
importMeta: function(meta, recursive) {
if (meta===undefined) return;
if (meta.type!=="folder") return;
if (recursive===undefined) recursive = true;
// Remove the contents property
// before adding into our meta library.
var contents = meta.contents,
length = contents.length;
delete meta.contents;
// Temporary hack
contents.reverse();
// If the folder meta was created before,
// the update event is triggered by the parent.
var folder = self.addMeta(meta),
data = folder.data,
_data = {files: {}, folders: {}};
var i = 0;
while (i < length) {
var meta = self.addMeta(contents[i]),
key = meta.key,
group = meta.group;
_data[group][key] = delete data[group][key];
i++;
}
for (key in data.files) {
self.removeMeta(key);
}
for (key in data.folders) {
self.removeMeta(key);
}
// Update to the new set of data
data.folders = _data.folders;
data.files = _data.files;
if (recursive) {
for (key in data.folders) {
self.importMeta(self.getMeta(key), recursive);
}
}
return folder;
},
createMetaView: function(meta) {
var view = {
meta: meta,
addMeta: function(meta) {
for (mode in view.modes) {
var viewMap = view.modes[mode][meta.group];
viewMap && viewMap.add(meta);
}
},
removeMeta: function(meta) {
for (mode in view.modes) {
var viewMap = view.modes[mode][meta.group];
viewMap && viewMap.remove(meta);
}
},
create: function(options) {
var defaultOptions = {
from: 0,
to: 1024,
mode: "dateModified",
group: "files"
};
// Create monitor
var monitor = $.Callbacks("unique memory");
$.extend(
monitor,
defaultOptions,
options,
{
uid: $.uid(),
select: function(options) {
// Update options
$.extend(monitor, options);
// Deregister from the previous map
if (monitor.map) {
delete monitor.map.monitors[monitor.uid];
}
monitor.map = view.modes[monitor.mode][monitor.group];
// Register to the new map
monitor.map.monitors[monitor.uid] = monitor;
// #debug:start
// self.media.console("log", ["Monitoring " +
monitor.group + " in " + meta.key, monitor]);
// #debug:end
return monitor.refresh();
},
updated: monitor.add,
refresh: function() {
return monitor.fire(monitor.map.slice(monitor.from, monitor.to));
},
destroy: function() {
monitor.disable();
if (monitor.map) {
delete monitor.map.monitors[monitor.uid];
}
return monitor;
}
}
);
return monitor.select();
}
};
// Extend view with view modes
self.createViewModes(view);
return view;
},
createViewModes: function(view) {
// TODO: Make this extensible for other types of sort maps.
view.modes = {
dateModified: {
folders: self.createViewMap(view, true), // Monkey patch
files: self.createViewMap(view)
}
};
return view;
},
// TODO: When createViewModes is extensible,
// this is only part of dateModified mode.
createViewMap: function(view, folderGroup) {
var map = $.extend([], {
task: $.Threads({threadLimit: 1}),
affectedIndex: [],
add: function(meta) {
map.task.add(function() {
// TODO: Proper date modified insertion
map.unshift(meta.key);
map.affectedIndex.push(0);
// Monkey patch to show folder tree in alphabetical order
if (folderGroup) {
map.sort().reverse();
}
map.refreshMonitor();
});
},
remove: function(meta) {
map.task.add(function() {
var key = meta.key,
i = map.length,
position;
while (i--) {
if (map[i]===key) {
position = i;
break;
}
}
if (position===undefined) return;
map.splice(i, 1);
map.affectedIndex.push(i);
map.refreshMonitor();
});
},
monitors: {},
refreshMonitor: function() {
clearTimeout(map.refreshMonitor.timer);
map.refreshMonitor.timer = setTimeout(function(){
var affectedIndex = map.affectedIndex;
map.affectedIndex = [];
map.task.add(function(){
var l = affectedIndex.length,
i = 0;
for (id in map.monitors) {
var monitor = map.monitors[id],
from = monitor.from,
to = monitor.to,
i;
for (i=0; i<l; i++) {
var a = affectedIndex[i];
if (a >= from || a <= to) {
monitor.refresh();
break;
}
}
}
});
}, 250);
}
});
return map;
},
search: function(keyword) {
// TODO: Also remove DS from keyword
if ($.trim(keyword)==="") return [];
// #debug:start
// var profiler = "Searching library using keyword '" +
keyword + "'";
// self.media.console("time", [profiler]);
// #debug:end
var keyword = keyword.toLowerCase();
var results = self.createMetaView({type: "search"});
for (key in self.meta) {
var parts = key.split("|"),
place = parts[0],
path = parts[1],
meta = self.meta[key];
if (/jomsocial|flickr/.test(place)) {
// Note: This means that album name keyword cannot be matched.
path = meta.title || "";
}
if (path.toLowerCase().match(keyword)) {
results.addMeta(meta);
}
}
// #debug:start
// self.media.console("timeEnd", [profiler]);
// #debug:end
return results;
}
}}
);
EasyBlog.Controller("Media.Exporter",
{
defaultOptions: {
view: {
recentItem: "media/recent.item"
},
// Recent inserts
"{recentActivities}" :
".recentActivities",
"{recentActivitiesDialog}" : ".recentActivities
.modalPromptDialog",
"{hideRecentActivitiesButton}" : ".recentActivities
.promptHideButton",
"{dashboardButton}" : ".recentActivities
.dashboardButton",
"{recentItemGroup}": ".recentItemGroup",
"{recentItem}" : ".recentItem"
}
},
function(self){ return {
init: function() {
$Media.exporter = self;
$Media.insert = self.insert;
},
handler: {},
showDialog: function() {
self.recentActivitiesDialog()
.addClass("active");
self.recentActivities()
.css({top: 0, opacity: 1})
.addClass("active");
},
hideDialog: function() {
self.recentActivities()
.animate({top: "-=50px", opacity: 0}, {duration: 250,
complete: function() {
self.recentActivities()
.removeClass("active");
self.recentActivitiesDialog()
.removeClass("active");
}
});
},
"{dashboardButton} click": function() {
self.hideDialog();
},
"{hideRecentActivitiesButton} click": function() {
self.hideDialog();
},
// Recent inserts
insert: function(item, settings) {
var meta = $Media.library.getMeta(item);
if (meta===undefined) return;
var task = self.create(meta.type, meta.key, settings);
// Show dialog
self.showDialog();
// Create recent item
task.recentItem =
self.view.recentItem({meta: meta})
.addClass("loading")
.css({opacity: 0})
.prependTo(self.recentItemGroup())
.animate({opacity: 1}, {duration: 500, complete: function() {
task
.done(function(html) {
if (html==="") {
task.recentItem
.removeClass("loading done")
.addClass("error")
.find(".itemProgress")
.html($.language("COM_EASYBLOG_MM_UNABLE_TO_EXPORT_ITEM"));
}
if( typeof( tinyMCE ) != 'undefined' )
{
// If you are TinyMCE/JCE on IE
if (tinyMCE && tinyMCE.isIE && $Media.IE==9) {
// Get back the bookmark we stored just now
var bookmark = $Media.bookmark;
if (bookmark) {
var editor = tinyMCE.editors.write_content;
editor.selection.moveToBookmark({rng: bookmark.range});
editor.execCommand('mceInsertContent', false, html);
// Just in case we did not get the bookmark
} else {
EasyBlog.dashboard.editor.insert(html);
}
} else {
EasyBlog.dashboard.editor.insert(html);
}
}
else
{
EasyBlog.dashboard.editor.insert(html);
}
task.recentItem
.removeClass("loading failed")
.addClass("done")
.find(".itemProgress")
.html($.language("COM_EASYBLOG_MM_ITEM_INSERTED"));
if ($Media.options.recentActivities.hideAfter > 0) {
setTimeout(function(){ self.hideDialog(); },
$Media.options.recentActivities.hideAfter);
}
})
.progress(function(message){
if (task.recentItem.hasClass("done")) return;
task.recentItem
.find(".itemProgress")
.html(message);
})
.fail(function(message){
task.recentItem
.removeClass("loading done")
.addClass("error")
.find(".itemProgress")
.html(message);
});
}
});
return task;
},
create: function(type, key, settings) {
var handler = self.handler[type],
task = $.Deferred();
if (handler===undefined) {
var Exporter =
EasyBlog.Controller.Media.Exporter[$.String.capitalize(type)];
if (Exporter===undefined) {
task.reject($.language("COM_EASYBLOG_MM_UNABLE_TO_FIND_EXPORTER"));
return task;
}
handler = self.handler[type] = new Exporter(self.element, $.extend({},
{settings: self.options[type], controller: { media: self.media }}));
}
handler.create(task, key, settings);
return task;
}
}}
);
EasyBlog.Controller("Media.Exporter.File",
{
defaultOptions: {
settings: {
title: "",
target: "_self",
content: ""
}
}
},
function(self){ return {
init: function() {
},
create: function(task, key, customSettings) {
var settings = $.extend({}, self.options.settings, customSettings),
meta = self.media.library.getMeta(key),
link =
$(document.createElement("A"))
.attr({
title: settings.title,
target: settings.target,
href: meta.url
})
.html((settings.content) ? settings.content : meta.title);
task.resolve(link.toHTML());
return task;
}
}}
);
EasyBlog.Controller("Media.Exporter.Folder",
{
defaultOptions: {
settings: {
}
}
},
function(self){ return {
init: function() {
},
create: function(task, key, customSettings) {
var settings = $.extend({}, self.options.settings, customSettings),
meta = self.media.library.getMeta(key),
embedType = (meta.place=="jomsocial") ? "album" :
"gallery";
settings.file = meta.path;
settings.place = meta.place;
var snippet = "[embed=" + embedType + "]" +
$.toJSON(settings) + "[/embed]";
task.resolve(snippet);
return task;
}
}}
);
EasyBlog.Controller("Media.Exporter.Image",
{
defaultOptions: {
settings: {
zoom: null, // variationName
caption: null,
enforceDimension: false,
enforceWidth: null,
enforceHeight: null,
variation: null, // variationName
defaultVariation: "thumbnail",
defaultZoom: "original"
}
}
},
function(self){ return {
init: function() {
},
create: function(task, key, customSettings) {
var settings = $.extend({}, self.options.settings, customSettings),
meta = self.media.library.getMeta(key),
image = $(new Image());
// Convert caption into html entities,
// escape quotes and other special characters.
var title = htmlentity(meta.title);
image.attr({
src: meta.thumbnail.url,
alt: title,
title: title
});
var resolve = function() {
task.resolve(image.toHTML());
},
process = function() {
var variations = {};
$.each(meta.variations, function(i, variation) {
variations[variation.name] = variation;
});
// Use provided variation, else use default variation, or the first
variation on the list.
var variation = variations[settings.variation] ||
variations[settings.defaultVariation] ||
meta.variations[0];
// Convert caption into html entities,
// escape quotes and other special characters.
var title = htmlentity(variation.title);
// Use setting from selected variation
image.attr({
src: variation.url,
alt: title,
title: title
});
// Enforce dimension
if (settings.enforceDimension) {
if (settings.enforceWidth!==null &&
settings.enforceHeight!==null) {
var sizes = $.Image.resizeWithin(
variation.width, variation.height,
settings.enforceWidth, settings.enforceHeight
);
// Turn it into whole number
sizes.width = Math.floor(sizes.width);
sizes.height = Math.floor(sizes.height);
image.attr(sizes);
}
}
// Image caption
if (settings.caption!==null) {
// Convert caption into html entities,
// escape quotes and other special characters.
var caption = htmlentity(settings.caption);
image
.addClass("easyblog-image-caption")
.attr("title", caption);
}
// Image zooming capabilities
if (settings.zoom!==null) {
var zoomWith = variations[settings.zoom] ||
variations[settings.defaultZoom] ||
{url: meta.thumbnail.url, title: meta.title};
var title = htmlentity(settings.caption || zoomWith.title ||
"");
image =
$("<a>")
.addClass("easyblog-thumb-preview")
.attr({
href: zoomWith.url,
title: title
})
.html(image);
};
resolve();
}
// If any of these criterias were true,
// we need to retrieve the variations.
if (settings.variation || settings.zoom || settings.enforceWidth ||
settings.enforceHeight) {
// If the variations hasn't been loaded
if (meta.variations===undefined) {
task.notify($.language("COM_EASYBLOG_MM_GETTING_IMAGE_SIZES"));
// Then get it first
self.media.library.getMetaVariations(key)
.done(function(metaWithVariations) {
// Add variations to our meta
meta = metaWithVariations;
// Process the rest of the image settings
process();
})
.fail(function() {
// If the ajax call failed, reject task.
task.reject($.language("COM_EASYBLOG_MM_UNABLE_TO_RETRIEVE_VARIATIONS"));
});
// If variations has been loaded,
// process the rest of the image settings now.
} else {
process();
}
// If there are no fancy image settings,
// the default one will work just fine.
} else {
resolve();
}
return task;
}
}}
);
EasyBlog.Controller("Media.Exporter.Audio",
{
defaultOptions: {
width: 400,
height: 24,
autostart: false,
controlbar: "bottom",
backcolor: "#333333",
frontcolor: "#ffffff"
}
},
function(self){ return {
init: function() {
},
create: function(task, key, customSettings) {
var settings = $.extend({}, self.options.settings, customSettings),
meta = self.media.library.getMeta(key);
settings.file = meta.path;
settings.place = meta.place;
var snippet = "[embed=audio]" + $.toJSON(settings) +
"[/embed]";
task.resolve(snippet);
return task;
}
}}
);
EasyBlog.Controller("Media.Exporter.Video",
{
defaultOptions: {
settings: {
width: 400,
height: 225,
autostart: false,
controlbar: "bottom",
backcolor: "#333333",
frontcolor: "#ffffff"
}
}
},
function(self){ return {
init: function() {
},
create: function(task, key, customSettings) {
var settings = $.extend({}, self.options.settings, customSettings),
meta = self.media.library.getMeta(key);
settings.file = meta.path;
settings.place = meta.place;
var snippet = "[embed=video]" + $.toJSON(settings) +
"[/embed]";
task.resolve(snippet);
return task;
}
}}
);
EasyBlog.Controller("MediaLauncher",
{
defaultOptions: {
"{uploadImageButton}": ".uploadImageButton",
"{chooseImageButton}": ".chooseImageButton"
}
},
function(self) { return {
init: function() {
$("#media_manager_button").click(function(){
EasyBlog.mediaManager.browse();
});
},
"{uploadImageButton} click": function() {
EasyBlog.mediaManager.upload();
},
"{chooseImageButton} click": function() {
EasyBlog.mediaManager.browse();
}
}}
);
//
// 2. Initialize media manager.
//
var container =
$(document.createElement("div")).attr("id",
"EasyBlogMediaManager").appendTo("body");
EasyBlog.mediaManager = new EasyBlog.Controller.Media(container);
});
responsive.js000064400000012451151167475140007315
0ustar00EasyBlog.module('responsive', function($) {
var module = this;
// $(selector).responsive({condition});
// $(selector).responsive([{condition1}, {condition2}]);
$.fn.responsive = function() {
var node = this;
/* conditions = {
at: 0, // threshold value
switchTo: '', // classname to apply to the node
alsoSwitch: {
'selector': 'class'
}
switchStylesheet: '',
targetFunction: '',
reverseFunction: ''
} */
var options = {
elementWidth: function() {
return $(node).outerWidth(true);
},
conditions: $.makeArray(arguments)
};
$.responsive.process.call(node, options);
};
/*
$.responsive({
elementWidth: function() {} // width calculation of the target element
}, {
condition1
});
$.responsive({
elementWidth: function() {} // width calculation of the target element
}, [{
condition1
}, {
condition2
}]);
*/
$.responsive = function(elem, options) {
// make sure that single condition object gets convert into array any how
options.conditions = $.makeArray(options.conditions);
/*var defaultOptions = {
// main element width to calculate
elementWidth: function() {}, // a function that returns pixel value
// array of conditions of ascending thresholdWidth
conditions: [{
// threshold for this condition
at: 0,
// condition specific options
switchTo: '',
alsoSwitch: {}, // objects with element and class
switchStylesheet: '',
targetFunction: '', // function to run
reverseFunction: '' // reverse function that reverses any
action in target function
}]
}*/
$.responsive.process.call($(elem), options);
};
$.responsive.process = function(options) {
var node = this;
var totalConditions = options.conditions.length;
$(window).resize(function() {
$.responsive.sortConditions(options);
var elementWidth;
// calculate element width
if ($.isFunction(options.elementWidth)) {
elementWidth = options.elementWidth();
} else {
elementWidth = options.elementWidth;
}
// loop through each condition
$.each(options.conditions, function(i, condition) {
var conditionOptions = $.responsive.properConditions(condition);
var thresholdWidth = condition.at;
// calculate threshold width
if ($.isFunction(condition.at)) {
thresholdWidth = condition.at();
} else {
thresholdWidth = condition.at;
}
// perform resize if element <= threshold
if (elementWidth <= thresholdWidth) {
// remove all other condition first
$.responsive.resetToDefault.call(node, options.conditions, i);
// apply current condition
$.responsive.resize.call(node, conditionOptions);
return false;
} else {
$.responsive.deresize.call(node, conditionOptions);
}
});
}).resize();
};
$.responsive.resize = function(condition) {
var node = this;
if (condition.switchTo) {
$.each(condition.switchTo, function(i, classname) {
node.addClass(classname);
});
}
if (condition.alsoSwitch) {
$.each(condition.alsoSwitch, function(selector, classname) {
$(selector).addClass(classname);
});
}
if (condition.targetFunction) {
condition.targetFunction();
}
if (condition.switchStylesheet) {
$.each(condition.switchStylesheet, function(i, stylesheet) {
var tmp = $('link[href$="' + stylesheet +
'"]');
if (tmp.length < 1) {
$('<link/>', {
rel: 'stylesheet',
type: 'text/css',
href: stylesheet
}).appendTo('head');
}
});
}
};
$.responsive.deresize = function(condition) {
var node = this;
if (condition.switchTo) {
$.each(condition.switchTo, function(i, classname) {
node.removeClass(classname);
});
}
if (condition.alsoSwitch) {
$.each(condition.alsoSwitch, function(selector, classname) {
$(selector).removeClass(classname);
});
}
if (condition.reverseFunction) {
condition.reverseFunction();
}
if (condition.switchStylesheet) {
$.each(condition.switchStylesheet, function(i, stylesheet) {
$('link[href$="' + stylesheet +
'"]').remove();
});
}
};
$.responsive.resetToDefault = function(options, current) {
var node = this;
$.each(options, function(i, condition) {
if (current && i == current) {
return true;
} else {
$.responsive.deresize.call(node, condition);
}
});
};
$.responsive.properConditions = function(condition) {
var conditionOptions = {
at: condition.at,
alsoSwitch: condition.alsoSwitch,
switchTo: $.makeArray(condition.switchTo),
switchStylesheet: $.makeArray(condition.switchStylesheet),
targetFunction: condition.targetFunction,
reverseFunction: condition.reverseFunction
};
return conditionOptions;
};
$.responsive.sortConditions = function(options) {
var totalConditions = options.conditions.length;
for (var i = 0; i < totalConditions; i++) {
for (var j = i + 1; j < totalConditions; j++) {
var a, b;
if ($.isFunction(options.conditions[i].at)) {
a = options.conditions[i].at();
} else {
a = options.conditions[i].at;
}
if ($.isFunction(options.conditions[j].at)) {
b = options.conditions[j].at();
} else {
b = options.conditions[j].at;
}
if (a > b) {
var tmp = options.conditions[i];
options.conditions[i] = options.conditions[j];
options.conditions[j] = tmp;
}
}
}
};
module.resolve();
});
tag.js000064400000017567151167475140005710
0ustar00EasyBlog.module("tag", function($){
var module = this;
EasyBlog.require()
.view("dashboard/dashboard.tags.item")
.done(function(){
EasyBlog.Controller(
"Tag.Form",
{
defaultOptions: {
tags: [],
tagLimit: 0,
tagSelections: [],
tagSelectionLimit: 25,
"{tagList}" : ".tag-list.creation",
"{tagItems}" : ".tag-list.creation
.tag-item",
"{tagItemRemoveButton}" : ".remove-tag",
"{tagCreationForm}" : ".new-tag-item",
"{tagInput}" : ".tagInput",
"{tagCreateButton}" : ".tag-create",
"{totalTags}" : ".total-tags",
"{tagSelectionFilter}" : ".tag-selection-filter",
"{tagSelectionList}" : ".tag-list.selection",
"{tagSelectionItems}" : ".tag-list.selection
.tag-item",
"{tagSelection}" : ".tag-selection",
"{showAllTagsButton}" : ".show-all-tags",
view: {
tagItem: "dashboard/dashboard.tags.item"
}
}
},
function(self) { return {
init: function() {
if (EasyBlog.dashboard) {
EasyBlog.dashboard.registerPlugin("tags", self);
}
// Fork this into an asynchronous process
// in case of large dataset
setTimeout(function(){
// Populate tag selections
var tags = self.options.tagSelections,
i, l = tags.length;
for (i=0; i<l; i++) {
self.tags[tags[i].title.toLowerCase()] = tags[i];
}
// Populate selected tags if any
var tags = self.options.tags,
l = tags.length;
for (i=0; i<l; i++) {
var key = self.getKey(tags[i].title);
self.selectTag(key);
}
// Generate tag selections
self.showTagSelections("");
}, 0);
},
// Tag data
tags: {},
// Tag elements
items: {},
// Selected tags
selected: {},
sanitizeTitle: function(title) {
// return
$.trim(title).replace(/[,\'\"\#\<\>]/gi,"");
},
getKey: function(title) {
return title.toLowerCase();
// return self.sanitizeTitle(title).toLowerCase();
},
getTag: function(key) {
// This is because of key conflicts with native object methods
// like "watch" or "hasOwnProperty" since tags can
be anything.
return Object.prototype.hasOwnProperty.call(self.tags, key) ?
self.tags[key] : undefined;
},
createTag: function(title) {
var title = title,
//var title = self.sanitizeTitle(title),
key = title.toLowerCase();
return self.getTag(key) || (self.tags[key] = {title: title});
},
getTagItem: function(key) {
var tag = self.getTag(key);
if (!tag) return;
return tag.item || (tag.item = self.view.tagItem({title:
tag.title}).data("key", key));
},
getTagData: function(key) {
var tag = self.getTag(key);
if (!tag) return;
return tag.data || (tag.data = $('<input
class="tagdata" type="hidden" name="tags[]"
/>').val(tag.title));
},
search: function(keyword) {
var keyword = $.trim(keyword).toLowerCase(),
results = [];
for (key in self.tags) {
if (key.indexOf(keyword) < 0) continue;
results.push(key);
}
return results;
},
selectTag: function(key) {
clearTimeout(self.selectTag.refreshTagSelection);
var tagItem = self.getTagItem(key);
if (!tagItem) return;
var tagItems = self.tagItems();
if (self.options.tagLimit > 0 && tagItems.length >=
self.options.tagLimit) return;
tagItem.css({opacity: 0});
// When no item is selected
if (tagItems.length < 1) {
self.tagList()
.prepend(tagItem);
// When there are selected items
} else {
var lastTagItem = tagItems.filter(":last");
// Don't move tag if it's already the last one.
if (lastTagItem[0]!=tagItem[0]) {
tagItem.insertAfter(lastTagItem);
}
}
tagItem.animate({opacity: 1});
// Attach tag data
var tagData = self.getTagData(key);
tagData.appendTo(self.element);
self.selected[key] = true;
self.checkTagLimit();
self.selectTag.refreshTagSelection = setTimeout(function(){
// Refresh tag selection
self.showTagSelections();
}, 500);
},
unselectTag: function(key) {
var tagItem = self.getTagItem(key);
if (!tagItem) return;
// Detach tag item
tagItem.detach();
// Detach tag data
var tagData = self.getTagData(key);
tagData.detach();
delete self.selected[key];
self.checkTagLimit();
var tag = self.getTag(key);
if (tag.alias!==undefined) {
// Refresh tag selection
self.showTagSelections();
}
},
addToTagSelectionList: function(key) {
var tagItem = self.getTagItem(key);
return tagItem && tagItem.appendTo(self.tagSelectionList());
},
showTagSelections: function(filter) {
// Detach everything
self.tagSelectionItems().detach();
filter = self.currentFilter =
(filter===undefined) ? self.currentFilter || "" : filter;
var c = 0,
limit = self.options.tagSelectionLimit;
if (filter==="") {
for (key in self.tags) {
if (c >= limit) break;
if (self.selected[key] || self.getTag(key).alias===undefined)
continue;
self.addToTagSelectionList(key);
c++;
}
} else {
var results = self.search(filter),
i, l = results.length;
for (i=0; i<l; i++) {
if (c >= limit) break;
var key = results[i];
if (self.selected[key] || self.getTag(key).alias===undefined)
continue;
self.addToTagSelectionList(key);
c++;
}
}
self.tagSelection().toggleClass("no-selection", c < 1);
},
"{tagInput} keydown": function(tagInput, event) {
event.stopPropagation();
self.realEnterKey = (event.keyCode==13);
},
"{tagInput} keypress": function(tagInput, event) {
event.stopPropagation();
// We need to verify whether or not the user is actually entering
// an ENTER key or exiting from an IME context menu.
self.realEnterKey = self.realEnterKey && (event.keyCode==13);
},
"{tagInput} keyup": function(tagInput, event) {
clearTimeout(self.filterTask);
event.stopPropagation();
switch(event.keyCode) {
case 27: // escape
tagInput.val("");
break;
case 13: // enter
if (self.realEnterKey &&
tagInput.hasClass("canCreate")) {
self.createTagFromInput();
}
break;
}
self.filterTask = setTimeout(function(){
self.showTagSelections(tagInput.val());
}, 250);
},
createTagFromInput: function() {
var title = $.trim(self.tagInput().val());
if (title!=="") {
var key = self.getKey(title),
tag = self.createTag(title);
self.selectTag(key);
self.tagInput().val("");
}
// Reset show tag selections to original state
self.showTagSelections("");
},
checkTagLimit: function() {
var limit = self.options.tagLimit;
if (limit < 1) return;
var totalTags = self.tagItems().length;
// Update data count
self.totalTags().text(totalTags);
self.tagCreationForm()[totalTags >= limit ? "hide" :
"show"]();
},
"{tagCreateButton} click": function() {
self.createTagFromInput();
},
"{tagSelectionItems} click": function(el) {
var key = el.data("key");
self.selectTag(key);
},
"{tagItemRemoveButton} click": function(el) {
var key = el.parents(".tag-item").data("key");
self.unselectTag(key);
},
"{showAllTagsButton} click": function(el) {
if (el.hasClass("active")) {
el.removeClass("active");
self.options.tagSelectionLimit = self.originalLimit;
} else {
el.addClass("active");
self.originalLimit = self.options.tagSelectionLimit;
self.options.tagSelectionLimit = 9999;
}
self.showTagSelections("");
}
}}
);
module.resolve();
});
});