added jquery-tipsy for nice title tooltips
This commit is contained in:
parent
3747ba928f
commit
6c4d075bd6
|
@ -0,0 +1,7 @@
|
||||||
|
.tipsy { padding: 5px; font-size: 10px; opacity: 0.8; filter: alpha(opacity=80); background-repeat: no-repeat; background-image: url(../img/jquery-tipsy.gif); }
|
||||||
|
.tipsy-inner { padding: 5px 8px 4px 8px; background-color: black; color: white; max-width: 200px; text-align: center; }
|
||||||
|
.tipsy-inner { -moz-border-radius:3px; -webkit-border-radius:3px; }
|
||||||
|
.tipsy-north { background-position: top center; }
|
||||||
|
.tipsy-south { background-position: bottom center; }
|
||||||
|
.tipsy-east { background-position: right center; }
|
||||||
|
.tipsy-west { background-position: left center; }
|
Binary file not shown.
After Width: | Height: | Size: 867 B |
|
@ -0,0 +1,113 @@
|
||||||
|
/*
|
||||||
|
* @name Show Password
|
||||||
|
* @descripton
|
||||||
|
* @version 1.3
|
||||||
|
* @requires Jquery 1.5
|
||||||
|
*
|
||||||
|
* @author Jan Jarfalk
|
||||||
|
* @author-email jan.jarfalk@unwrongest.com
|
||||||
|
* @author-website http://www.unwrongest.com
|
||||||
|
*
|
||||||
|
* @special-thanks Michel Gratton
|
||||||
|
*
|
||||||
|
* @licens MIT License - http://www.opensource.org/licenses/mit-license.php
|
||||||
|
*/
|
||||||
|
(function($){
|
||||||
|
$.fn.extend({
|
||||||
|
showPassword: function(c) {
|
||||||
|
|
||||||
|
// Setup callback object
|
||||||
|
var callback = {'fn':null,'args':{}}
|
||||||
|
callback.fn = c;
|
||||||
|
|
||||||
|
// Clones passwords and turn the clones into text inputs
|
||||||
|
var cloneElement = function( element ) {
|
||||||
|
|
||||||
|
var $element = $(element);
|
||||||
|
|
||||||
|
$clone = $("<input />");
|
||||||
|
|
||||||
|
// Name added for JQuery Validation compatibility
|
||||||
|
// Element name is required to avoid script warning.
|
||||||
|
$clone.attr({
|
||||||
|
'type' : 'text',
|
||||||
|
'class' : $element.attr('class'),
|
||||||
|
'style' : $element.attr('style'),
|
||||||
|
'size' : $element.attr('size'),
|
||||||
|
'name' : $element.attr('name')+'-clone',
|
||||||
|
'tabindex' : $element.attr('tabindex')
|
||||||
|
});
|
||||||
|
|
||||||
|
return $clone;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// Transfers values between two elements
|
||||||
|
var update = function(a,b){
|
||||||
|
b.val(a.val());
|
||||||
|
};
|
||||||
|
|
||||||
|
// Shows a or b depending on checkbox
|
||||||
|
var setState = function( checkbox, a, b ){
|
||||||
|
|
||||||
|
if(checkbox.is(':checked')){
|
||||||
|
update(a,b);
|
||||||
|
b.show();
|
||||||
|
a.hide();
|
||||||
|
} else {
|
||||||
|
update(b,a);
|
||||||
|
b.hide();
|
||||||
|
a.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
return this.each(function() {
|
||||||
|
|
||||||
|
var $input = $(this),
|
||||||
|
$checkbox = $($input.data('typetoggle'));
|
||||||
|
|
||||||
|
// Create clone
|
||||||
|
var $clone = cloneElement($input);
|
||||||
|
$clone.insertAfter($input);
|
||||||
|
|
||||||
|
// Set callback arguments
|
||||||
|
if(callback.fn){
|
||||||
|
callback.args.input = $input;
|
||||||
|
callback.args.checkbox = $checkbox;
|
||||||
|
callback.args.clone = $clone;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$checkbox.bind('click', function() {
|
||||||
|
setState( $checkbox, $input, $clone );
|
||||||
|
});
|
||||||
|
|
||||||
|
$input.bind('keyup', function() {
|
||||||
|
update( $input, $clone )
|
||||||
|
});
|
||||||
|
|
||||||
|
$clone.bind('keyup', function(){
|
||||||
|
update( $clone, $input );
|
||||||
|
|
||||||
|
// Added for JQuery Validation compatibility
|
||||||
|
// This will trigger validation if it's ON for keyup event
|
||||||
|
$input.trigger('keyup');
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// Added for JQuery Validation compatibility
|
||||||
|
// This will trigger validation if it's ON for blur event
|
||||||
|
$clone.bind('blur', function() { $input.trigger('focusout'); });
|
||||||
|
|
||||||
|
setState( $checkbox, $input, $clone );
|
||||||
|
|
||||||
|
if( callback.fn ){
|
||||||
|
callback.fn( callback.args );
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})(jQuery);
|
|
@ -0,0 +1,108 @@
|
||||||
|
// tipsy - Facebook-style tooltip plugin for jQuery
|
||||||
|
// (c) 2008-2009 Jason Frame (jason@onehackoranother.com)
|
||||||
|
// Released under The MIT License.
|
||||||
|
|
||||||
|
(function($) {
|
||||||
|
$.fn.tipsy = function(options) {
|
||||||
|
|
||||||
|
options = $.extend({}, $.fn.tipsy.defaults, options);
|
||||||
|
|
||||||
|
return this.each(function() {
|
||||||
|
|
||||||
|
var opts = $.fn.tipsy.elementOptions(this, options);
|
||||||
|
|
||||||
|
$(this).hover(function() {
|
||||||
|
|
||||||
|
$.data(this, 'cancel.tipsy', true);
|
||||||
|
|
||||||
|
var tip = $.data(this, 'active.tipsy');
|
||||||
|
if (!tip) {
|
||||||
|
tip = $('<div class="tipsy"><div class="tipsy-inner"/></div>');
|
||||||
|
tip.css({position: 'absolute', zIndex: 100000});
|
||||||
|
$.data(this, 'active.tipsy', tip);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(this).attr('title') || typeof($(this).attr('original-title')) != 'string') {
|
||||||
|
$(this).attr('original-title', $(this).attr('title') || '').removeAttr('title');
|
||||||
|
}
|
||||||
|
|
||||||
|
var title;
|
||||||
|
if (typeof opts.title == 'string') {
|
||||||
|
title = $(this).attr(opts.title == 'title' ? 'original-title' : opts.title);
|
||||||
|
} else if (typeof opts.title == 'function') {
|
||||||
|
title = opts.title.call(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
tip.find('.tipsy-inner')[opts.html ? 'html' : 'text'](title || opts.fallback);
|
||||||
|
|
||||||
|
var pos = $.extend({}, $(this).offset(), {width: this.offsetWidth, height: this.offsetHeight});
|
||||||
|
tip.get(0).className = 'tipsy'; // reset classname in case of dynamic gravity
|
||||||
|
tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).appendTo(document.body);
|
||||||
|
var actualWidth = tip[0].offsetWidth, actualHeight = tip[0].offsetHeight;
|
||||||
|
var gravity = (typeof opts.gravity == 'function') ? opts.gravity.call(this) : opts.gravity;
|
||||||
|
|
||||||
|
switch (gravity.charAt(0)) {
|
||||||
|
case 'n':
|
||||||
|
tip.css({top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-north');
|
||||||
|
break;
|
||||||
|
case 's':
|
||||||
|
tip.css({top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-south');
|
||||||
|
break;
|
||||||
|
case 'e':
|
||||||
|
tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}).addClass('tipsy-east');
|
||||||
|
break;
|
||||||
|
case 'w':
|
||||||
|
tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}).addClass('tipsy-west');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (opts.fade) {
|
||||||
|
tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 0.8});
|
||||||
|
} else {
|
||||||
|
tip.css({visibility: 'visible'});
|
||||||
|
}
|
||||||
|
|
||||||
|
}, function() {
|
||||||
|
$.data(this, 'cancel.tipsy', false);
|
||||||
|
var self = this;
|
||||||
|
setTimeout(function() {
|
||||||
|
if ($.data(this, 'cancel.tipsy')) return;
|
||||||
|
var tip = $.data(self, 'active.tipsy');
|
||||||
|
if (opts.fade) {
|
||||||
|
tip.stop().fadeOut(function() { $(this).remove(); });
|
||||||
|
} else {
|
||||||
|
tip.remove();
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// Overwrite this method to provide options on a per-element basis.
|
||||||
|
// For example, you could store the gravity in a 'tipsy-gravity' attribute:
|
||||||
|
// return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' });
|
||||||
|
// (remember - do not modify 'options' in place!)
|
||||||
|
$.fn.tipsy.elementOptions = function(ele, options) {
|
||||||
|
return $.metadata ? $.extend({}, options, $(ele).metadata()) : options;
|
||||||
|
};
|
||||||
|
|
||||||
|
$.fn.tipsy.defaults = {
|
||||||
|
fade: false,
|
||||||
|
fallback: '',
|
||||||
|
gravity: 'n',
|
||||||
|
html: false,
|
||||||
|
title: 'title'
|
||||||
|
};
|
||||||
|
|
||||||
|
$.fn.tipsy.autoNS = function() {
|
||||||
|
return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n';
|
||||||
|
};
|
||||||
|
|
||||||
|
$.fn.tipsy.autoWE = function() {
|
||||||
|
return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w';
|
||||||
|
};
|
||||||
|
|
||||||
|
})(jQuery);
|
121
core/js/js.js
121
core/js/js.js
|
@ -288,7 +288,11 @@ $(document).ready(function(){
|
||||||
});
|
});
|
||||||
$('#settings #expand').hover(function(){
|
$('#settings #expand').hover(function(){
|
||||||
$('#settings #expand+span').fadeToggle();
|
$('#settings #expand+span').fadeToggle();
|
||||||
})
|
});
|
||||||
|
|
||||||
|
$('a.file_action').tipsy({gravity:'s', live:true});
|
||||||
|
$('.selectedActions a').tipsy({gravity:'n', live:true});
|
||||||
|
$('.selectedActions a.delete').tipsy({gravity: 'ne', live:true});
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!Array.prototype.map){
|
if (!Array.prototype.map){
|
||||||
|
@ -314,118 +318,3 @@ if (!Array.prototype.map){
|
||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @name Show Password
|
|
||||||
* @descripton
|
|
||||||
* @version 1.3
|
|
||||||
* @requires Jquery 1.5
|
|
||||||
*
|
|
||||||
* @author Jan Jarfalk
|
|
||||||
* @author-email jan.jarfalk@unwrongest.com
|
|
||||||
* @author-website http://www.unwrongest.com
|
|
||||||
*
|
|
||||||
* @special-thanks Michel Gratton
|
|
||||||
*
|
|
||||||
* @licens MIT License - http://www.opensource.org/licenses/mit-license.php
|
|
||||||
*/
|
|
||||||
(function($){
|
|
||||||
$.fn.extend({
|
|
||||||
showPassword: function(c) {
|
|
||||||
|
|
||||||
// Setup callback object
|
|
||||||
var callback = {'fn':null,'args':{}}
|
|
||||||
callback.fn = c;
|
|
||||||
|
|
||||||
// Clones passwords and turn the clones into text inputs
|
|
||||||
var cloneElement = function( element ) {
|
|
||||||
|
|
||||||
var $element = $(element);
|
|
||||||
|
|
||||||
$clone = $("<input />");
|
|
||||||
|
|
||||||
// Name added for JQuery Validation compatibility
|
|
||||||
// Element name is required to avoid script warning.
|
|
||||||
$clone.attr({
|
|
||||||
'type' : 'text',
|
|
||||||
'class' : $element.attr('class'),
|
|
||||||
'style' : $element.attr('style'),
|
|
||||||
'size' : $element.attr('size'),
|
|
||||||
'name' : $element.attr('name')+'-clone',
|
|
||||||
'tabindex' : $element.attr('tabindex')
|
|
||||||
});
|
|
||||||
|
|
||||||
return $clone;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// Transfers values between two elements
|
|
||||||
var update = function(a,b){
|
|
||||||
b.val(a.val());
|
|
||||||
};
|
|
||||||
|
|
||||||
// Shows a or b depending on checkbox
|
|
||||||
var setState = function( checkbox, a, b ){
|
|
||||||
|
|
||||||
if(checkbox.is(':checked')){
|
|
||||||
update(a,b);
|
|
||||||
b.show();
|
|
||||||
a.hide();
|
|
||||||
} else {
|
|
||||||
update(b,a);
|
|
||||||
b.hide();
|
|
||||||
a.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
return this.each(function() {
|
|
||||||
|
|
||||||
var $input = $(this),
|
|
||||||
$checkbox = $($input.data('typetoggle'));
|
|
||||||
|
|
||||||
// Create clone
|
|
||||||
var $clone = cloneElement($input);
|
|
||||||
$clone.insertAfter($input);
|
|
||||||
|
|
||||||
// Set callback arguments
|
|
||||||
if(callback.fn){
|
|
||||||
callback.args.input = $input;
|
|
||||||
callback.args.checkbox = $checkbox;
|
|
||||||
callback.args.clone = $clone;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$checkbox.bind('click', function() {
|
|
||||||
setState( $checkbox, $input, $clone );
|
|
||||||
});
|
|
||||||
|
|
||||||
$input.bind('keyup', function() {
|
|
||||||
update( $input, $clone )
|
|
||||||
});
|
|
||||||
|
|
||||||
$clone.bind('keyup', function(){
|
|
||||||
update( $clone, $input );
|
|
||||||
|
|
||||||
// Added for JQuery Validation compatibility
|
|
||||||
// This will trigger validation if it's ON for keyup event
|
|
||||||
$input.trigger('keyup');
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Added for JQuery Validation compatibility
|
|
||||||
// This will trigger validation if it's ON for blur event
|
|
||||||
$clone.bind('blur', function() { $input.trigger('focusout'); });
|
|
||||||
|
|
||||||
setState( $checkbox, $input, $clone );
|
|
||||||
|
|
||||||
if( callback.fn ){
|
|
||||||
callback.fn( callback.args );
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})(jQuery);
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ table th .name { float:left; margin-left:.5em; }
|
||||||
table th.multiselect { background:#ddd; color:#000; font-weight:bold; }
|
table th.multiselect { background:#ddd; color:#000; font-weight:bold; }
|
||||||
table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; }
|
table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; }
|
||||||
table td { border-bottom:1px solid #eee; font-style:normal; background-position:1em .5em; background-repeat:no-repeat; }
|
table td { border-bottom:1px solid #eee; font-style:normal; background-position:1em .5em; background-repeat:no-repeat; }
|
||||||
table th#headerSize, table td.filesize { width:5em; padding:0 1em; text-align:right; }
|
table th#headerSize, table td.filesize { width:3em; padding:0 1em; text-align:right; }
|
||||||
table th#headerDate, table td.date { width:11em; padding:0 .1em 0 1em; text-align:left; }
|
table th#headerDate, table td.date { width:11em; padding:0 .1em 0 1em; text-align:left; }
|
||||||
table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; }
|
table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; }
|
||||||
table td.filename a.name { display:block; height:1.5em; vertical-align:middle; margin-left:3em; }
|
table td.filename a.name { display:block; height:1.5em; vertical-align:middle; margin-left:3em; }
|
||||||
|
|
|
@ -18,6 +18,10 @@ $(document).ready(function() {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#file_upload_button_wrapper').tipsy({gravity:'e'});
|
||||||
|
$('td.filesize').tipsy({gravity:'se', live:true});
|
||||||
|
$('td .modified').tipsy({gravity:'s', live:true});
|
||||||
|
|
||||||
// Sets the file-action buttons behaviour :
|
// Sets the file-action buttons behaviour :
|
||||||
$('tr').live('mouseenter',function(event) {
|
$('tr').live('mouseenter',function(event) {
|
||||||
FileActions.display($(this).children('td.filename'));
|
FileActions.display($(this).children('td.filename'));
|
||||||
|
|
|
@ -6,10 +6,9 @@
|
||||||
<input type="hidden" class="max_human_file_size" value="(max <?php echo $_['uploadMaxHumanFilesize']; ?>)">
|
<input type="hidden" class="max_human_file_size" value="(max <?php echo $_['uploadMaxHumanFilesize']; ?>)">
|
||||||
<input type="hidden" name="dir" value="<?php echo $_['dir'] ?>" id="dir">
|
<input type="hidden" name="dir" value="<?php echo $_['dir'] ?>" id="dir">
|
||||||
<div class="file_upload_wrapper" class="svg">
|
<div class="file_upload_wrapper" class="svg">
|
||||||
<input type="submit" class="file_upload_filename" value="<?php echo $l->t('Upload');
|
<input type="submit" class="file_upload_filename" value="<?php echo $l->t('Upload'); ?>"/>
|
||||||
if($_['uploadMaxFilesize']<(10000000000)){echo ' (max. '.$_['uploadMaxHumanFilesize'].')';}?>"/>
|
|
||||||
<input id="file_upload_start" class="file_upload_start" type="file" name='files[]'/>
|
<input id="file_upload_start" class="file_upload_start" type="file" name='files[]'/>
|
||||||
<a href="#" id="file_upload_button_wrapper" onclick="return false;"></a>
|
<a href="#" id="file_upload_button_wrapper" onclick="return false;" title="<?php echo 'max. '.$_['uploadMaxHumanFilesize'] ?>"></a>
|
||||||
</div>
|
</div>
|
||||||
<iframe name="file_upload_target_1" class='file_upload_target' src=""></iframe>
|
<iframe name="file_upload_target_1" class='file_upload_target' src=""></iframe>
|
||||||
</form>
|
</form>
|
||||||
|
@ -33,8 +32,8 @@
|
||||||
<!--<a href="" title="" class="share">Share</a>-->
|
<!--<a href="" title="" class="share">Share</a>-->
|
||||||
</span>
|
</span>
|
||||||
</th>
|
</th>
|
||||||
<th id='headerSize'><?php echo $l->t( 'Size MB' ); ?></th>
|
<th id="headerSize"><?php echo $l->t( 'Size' ); ?></th>
|
||||||
<th id='headerDate'><span id="modified"><?php echo $l->t( 'Modified' ); ?></span><span class='selectedActions'><a href="" title="Delete" class="delete"><img class='svg' alt="<?php echo $l->t('Delete')?>" src="../core/img/actions/delete.svg" /></a></span></th>
|
<th id="headerDate"><span id="modified"><?php echo $l->t( 'Modified' ); ?></span><span class="selectedActions"><a href="" title="Delete" class="delete"><img class="svg" alt="<?php echo $l->t('Delete')?>" src="../core/img/actions/delete.svg" /></a></span></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="fileList">
|
<tbody id="fileList">
|
||||||
|
|
|
@ -148,12 +148,15 @@ OC_Group::setBackend( OC_Config::getValue( "groupbackend", "database" ));
|
||||||
// Add the stuff we need always
|
// Add the stuff we need always
|
||||||
OC_Util::addScript( "jquery-1.6.2.min" );
|
OC_Util::addScript( "jquery-1.6.2.min" );
|
||||||
OC_Util::addScript( "jquery-ui-1.8.14.custom.min" );
|
OC_Util::addScript( "jquery-ui-1.8.14.custom.min" );
|
||||||
|
OC_Util::addScript( "jquery-showpassword" );
|
||||||
|
OC_Util::addScript( "jquery-tipsy" );
|
||||||
OC_Util::addScript( "js" );
|
OC_Util::addScript( "js" );
|
||||||
OC_Util::addScript( "multiselect" );
|
OC_Util::addScript( "multiselect" );
|
||||||
OC_Util::addScript('search','result');
|
OC_Util::addScript('search','result');
|
||||||
OC_Util::addStyle( "jquery-ui-1.8.14.custom" );
|
|
||||||
OC_Util::addStyle( "styles" );
|
OC_Util::addStyle( "styles" );
|
||||||
OC_Util::addStyle( "multiselect" );
|
OC_Util::addStyle( "multiselect" );
|
||||||
|
OC_Util::addStyle( "jquery-ui-1.8.14.custom" );
|
||||||
|
OC_Util::addStyle( "jquery-tipsy" );
|
||||||
|
|
||||||
// Load Apps
|
// Load Apps
|
||||||
// This includes plugins for users and filesystems as well
|
// This includes plugins for users and filesystems as well
|
||||||
|
|
Loading…
Reference in New Issue