New: jQuery and Accordion Admin menus
git-svn-id: http://piwigo.org/svn/trunk@2313 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
d91759d63f
commit
87a6b63d6f
11 changed files with 585 additions and 31 deletions
|
@ -593,26 +593,14 @@ $conf['recent_post_dates'] = array(
|
|||
);
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Set default admin layout |
|
||||
// | Set admin layout |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
// Must be user setable in future
|
||||
// Default value of admin layout
|
||||
// Step 1, default_admin_layout is not defined
|
||||
// null value, user_layout is used for admin layout
|
||||
// defined value, this value are used for admin layout
|
||||
// Next on step 2, default_admin_layout will be used
|
||||
// if there are not checked like admin layout
|
||||
// stored on user informations
|
||||
//$conf['default_admin_layout']='yoga/dark';
|
||||
$conf['admin_layout'] = 'yoga/admin';
|
||||
|
||||
// should we load the active plugins ? true=Yes, false=No
|
||||
$conf['enable_plugins']=true;
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Set default for Web Service |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
// Web services are allowed (true) or completely forbidden (false)
|
||||
$conf['allow_web_services'] = true;
|
||||
|
||||
|
@ -624,20 +612,18 @@ $conf['ws_max_images_per_page'] = 500;
|
|||
// if connected on member authorization basis
|
||||
$conf['ws_access_control'] = false;
|
||||
|
||||
// On Access control true
|
||||
// Additionnal controls are made based on Web Service Access Table
|
||||
|
||||
// Max returned rows number ( > 0 )
|
||||
$conf['ws_allowed_limit'] = array(1,2,3,5,10,25);
|
||||
$conf['ws_allowed_limit'] = array(1,2,3,5,10,25);
|
||||
|
||||
// By default can be delayed by 0, 1, 2, 3, 5, 7, 14 or 30 days
|
||||
// 0 it's Now(), don't remove that one
|
||||
$conf['ws_postponed_start'] = array(0,1,2,3,5,7,14,30); /* In days */
|
||||
$conf['ws_postponed_start'] = array(0,1,2,3,5,7,14,30); /* In days */
|
||||
|
||||
// By default 10, 5, 2, 1 year(s) or 6, 3, 1 month(s)
|
||||
// or 15, 10, 7, 5, 1, 0 day(s)
|
||||
// 0 it's temporary closed (Useful for one access)
|
||||
$conf['ws_durations'] = array(3650,1825,730,365,182,91,30,15,10,7,5,1,0);
|
||||
$conf['ws_durations'] = array(3650,1825,730,365,182,91,30,15,10,7,5,1,0);
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Filter |
|
||||
|
|
|
@ -868,6 +868,7 @@ function url_is_remote($url)
|
|||
*/
|
||||
function get_pwg_themes()
|
||||
{
|
||||
global $conf;
|
||||
$themes = array();
|
||||
|
||||
$template_dir = PHPWG_ROOT_PATH.'template';
|
||||
|
@ -876,6 +877,7 @@ function get_pwg_themes()
|
|||
{
|
||||
foreach (get_dirs($template_dir.'/'.$template.'/theme') as $theme)
|
||||
{
|
||||
if ( ($template.'/'.$theme) != $conf['admin_layout'] )
|
||||
array_push($themes, $template.'/'.$theme);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -205,12 +205,7 @@ function build_user( $user_id, $use_cache )
|
|||
if (is_admin($user['status']))
|
||||
{
|
||||
list($user['admin_template'], $user['admin_theme']) =
|
||||
explode
|
||||
(
|
||||
'/',
|
||||
isset($conf['default_admin_layout']) ? $conf['default_admin_layout']
|
||||
: $user['template']
|
||||
);
|
||||
explode ('/', $conf['admin_layout']);
|
||||
}
|
||||
|
||||
list($user['template'], $user['theme']) = explode('/', $user['template']);
|
||||
|
|
311
template-common/jquery.accordion.js
Normal file
311
template-common/jquery.accordion.js
Normal file
|
@ -0,0 +1,311 @@
|
|||
/*
|
||||
* jQuery UI Accordion 1.6
|
||||
*
|
||||
* Copyright (c) 2007 Jörn Zaefferer
|
||||
*
|
||||
* http://docs.jquery.com/UI/Accordion
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* Revision: $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
;(function($) {
|
||||
|
||||
// If the UI scope is not available, add it
|
||||
$.ui = $.ui || {};
|
||||
|
||||
$.fn.extend({
|
||||
accordion: function(options, data) {
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
|
||||
return this.each(function() {
|
||||
if (typeof options == "string") {
|
||||
var accordion = $.data(this, "ui-accordion");
|
||||
accordion[options].apply(accordion, args);
|
||||
// INIT with optional options
|
||||
} else if (!$(this).is(".ui-accordion"))
|
||||
$.data(this, "ui-accordion", new $.ui.accordion(this, options));
|
||||
});
|
||||
},
|
||||
// deprecated, use accordion("activate", index) instead
|
||||
activate: function(index) {
|
||||
return this.accordion("activate", index);
|
||||
}
|
||||
});
|
||||
|
||||
$.ui.accordion = function(container, options) {
|
||||
|
||||
// setup configuration
|
||||
this.options = options = $.extend({}, $.ui.accordion.defaults, options);
|
||||
this.element = container;
|
||||
|
||||
$(container).addClass("ui-accordion");
|
||||
|
||||
if ( options.navigation ) {
|
||||
var current = $(container).find("a").filter(options.navigationFilter);
|
||||
if ( current.length ) {
|
||||
if ( current.filter(options.header).length ) {
|
||||
options.active = current;
|
||||
} else {
|
||||
options.active = current.parent().parent().prev();
|
||||
current.addClass("current");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// calculate active if not specified, using the first header
|
||||
options.headers = $(container).find(options.header);
|
||||
options.active = findActive(options.headers, options.active);
|
||||
|
||||
if ( options.fillSpace ) {
|
||||
var maxHeight = $(container).parent().height();
|
||||
options.headers.each(function() {
|
||||
maxHeight -= $(this).outerHeight();
|
||||
});
|
||||
var maxPadding = 0;
|
||||
options.headers.next().each(function() {
|
||||
maxPadding = Math.max(maxPadding, $(this).innerHeight() - $(this).height());
|
||||
}).height(maxHeight - maxPadding);
|
||||
} else if ( options.autoheight ) {
|
||||
var maxHeight = 0;
|
||||
options.headers.next().each(function() {
|
||||
maxHeight = Math.max(maxHeight, $(this).outerHeight());
|
||||
}).height(maxHeight);
|
||||
}
|
||||
|
||||
options.headers
|
||||
.not(options.active || "")
|
||||
.next()
|
||||
.hide();
|
||||
options.active.parent().andSelf().addClass(options.selectedClass);
|
||||
|
||||
if (options.event)
|
||||
$(container).bind((options.event) + ".ui-accordion", clickHandler);
|
||||
};
|
||||
|
||||
$.ui.accordion.prototype = {
|
||||
activate: function(index) {
|
||||
// call clickHandler with custom event
|
||||
clickHandler.call(this.element, {
|
||||
target: findActive( this.options.headers, index )[0]
|
||||
});
|
||||
},
|
||||
|
||||
enable: function() {
|
||||
this.options.disabled = false;
|
||||
},
|
||||
disable: function() {
|
||||
this.options.disabled = true;
|
||||
},
|
||||
destroy: function() {
|
||||
this.options.headers.next().css("display", "");
|
||||
if ( this.options.fillSpace || this.options.autoheight ) {
|
||||
this.options.headers.next().css("height", "");
|
||||
}
|
||||
$.removeData(this.element, "ui-accordion");
|
||||
$(this.element).removeClass("ui-accordion").unbind(".ui-accordion");
|
||||
}
|
||||
}
|
||||
|
||||
function scopeCallback(callback, scope) {
|
||||
return function() {
|
||||
return callback.apply(scope, arguments);
|
||||
};
|
||||
}
|
||||
|
||||
function completed(cancel) {
|
||||
// if removed while animated data can be empty
|
||||
if (!$.data(this, "ui-accordion"))
|
||||
return;
|
||||
var instance = $.data(this, "ui-accordion");
|
||||
var options = instance.options;
|
||||
options.running = cancel ? 0 : --options.running;
|
||||
if ( options.running )
|
||||
return;
|
||||
if ( options.clearStyle ) {
|
||||
options.toShow.add(options.toHide).css({
|
||||
height: "",
|
||||
overflow: ""
|
||||
});
|
||||
}
|
||||
$(this).triggerHandler("change.ui-accordion", [options.data], options.change);
|
||||
}
|
||||
|
||||
function toggle(toShow, toHide, data, clickedActive, down) {
|
||||
var options = $.data(this, "ui-accordion").options;
|
||||
options.toShow = toShow;
|
||||
options.toHide = toHide;
|
||||
options.data = data;
|
||||
var complete = scopeCallback(completed, this);
|
||||
|
||||
// count elements to animate
|
||||
options.running = toHide.size() == 0 ? toShow.size() : toHide.size();
|
||||
|
||||
if ( options.animated ) {
|
||||
if ( !options.alwaysOpen && clickedActive ) {
|
||||
$.ui.accordion.animations[options.animated]({
|
||||
toShow: jQuery([]),
|
||||
toHide: toHide,
|
||||
complete: complete,
|
||||
down: down,
|
||||
autoheight: options.autoheight
|
||||
});
|
||||
} else {
|
||||
$.ui.accordion.animations[options.animated]({
|
||||
toShow: toShow,
|
||||
toHide: toHide,
|
||||
complete: complete,
|
||||
down: down,
|
||||
autoheight: options.autoheight
|
||||
});
|
||||
}
|
||||
} else {
|
||||
if ( !options.alwaysOpen && clickedActive ) {
|
||||
toShow.toggle();
|
||||
} else {
|
||||
toHide.hide();
|
||||
toShow.show();
|
||||
}
|
||||
complete(true);
|
||||
}
|
||||
}
|
||||
|
||||
function clickHandler(event) {
|
||||
var options = $.data(this, "ui-accordion").options;
|
||||
if (options.disabled)
|
||||
return false;
|
||||
|
||||
// called only when using activate(false) to close all parts programmatically
|
||||
if ( !event.target && !options.alwaysOpen ) {
|
||||
options.active.parent().andSelf().toggleClass(options.selectedClass);
|
||||
var toHide = options.active.next(),
|
||||
data = {
|
||||
instance: this,
|
||||
options: options,
|
||||
newHeader: jQuery([]),
|
||||
oldHeader: options.active,
|
||||
newContent: jQuery([]),
|
||||
oldContent: toHide
|
||||
},
|
||||
toShow = options.active = $([]);
|
||||
toggle.call(this, toShow, toHide, data );
|
||||
return false;
|
||||
}
|
||||
// get the click target
|
||||
var clicked = $(event.target);
|
||||
|
||||
// due to the event delegation model, we have to check if one
|
||||
// of the parent elements is our actual header, and find that
|
||||
if ( clicked.parents(options.header).length )
|
||||
while ( !clicked.is(options.header) )
|
||||
clicked = clicked.parent();
|
||||
|
||||
var clickedActive = clicked[0] == options.active[0];
|
||||
|
||||
// if animations are still active, or the active header is the target, ignore click
|
||||
if (options.running || (options.alwaysOpen && clickedActive))
|
||||
return false;
|
||||
if (!clicked.is(options.header))
|
||||
return;
|
||||
|
||||
// switch classes
|
||||
options.active.parent().andSelf().toggleClass(options.selectedClass);
|
||||
if ( !clickedActive ) {
|
||||
clicked.parent().andSelf().addClass(options.selectedClass);
|
||||
}
|
||||
|
||||
// find elements to show and hide
|
||||
var toShow = clicked.next(),
|
||||
toHide = options.active.next(),
|
||||
//data = [clicked, options.active, toShow, toHide],
|
||||
data = {
|
||||
instance: this,
|
||||
options: options,
|
||||
newHeader: clicked,
|
||||
oldHeader: options.active,
|
||||
newContent: toShow,
|
||||
oldContent: toHide
|
||||
},
|
||||
down = options.headers.index( options.active[0] ) > options.headers.index( clicked[0] );
|
||||
|
||||
options.active = clickedActive ? $([]) : clicked;
|
||||
toggle.call(this, toShow, toHide, data, clickedActive, down );
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
function findActive(headers, selector) {
|
||||
return selector != undefined
|
||||
? typeof selector == "number"
|
||||
? headers.filter(":eq(" + selector + ")")
|
||||
: headers.not(headers.not(selector))
|
||||
: selector === false
|
||||
? $([])
|
||||
: headers.filter(":eq(0)");
|
||||
}
|
||||
|
||||
$.extend($.ui.accordion, {
|
||||
defaults: {
|
||||
selectedClass: "selected",
|
||||
alwaysOpen: true,
|
||||
animated: 'slide',
|
||||
event: "click",
|
||||
header: "a",
|
||||
autoheight: true,
|
||||
running: 0,
|
||||
navigationFilter: function() {
|
||||
return this.href.toLowerCase() == location.href.toLowerCase();
|
||||
}
|
||||
},
|
||||
animations: {
|
||||
slide: function(options, additions) {
|
||||
options = $.extend({
|
||||
easing: "swing",
|
||||
duration: 300
|
||||
}, options, additions);
|
||||
if ( !options.toHide.size() ) {
|
||||
options.toShow.animate({height: "show"}, options);
|
||||
return;
|
||||
}
|
||||
var hideHeight = options.toHide.height(),
|
||||
showHeight = options.toShow.height(),
|
||||
difference = showHeight / hideHeight;
|
||||
options.toShow.css({ height: 0, overflow: 'hidden' }).show();
|
||||
options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate({height:"hide"},{
|
||||
step: function(now) {
|
||||
var current = (hideHeight - now) * difference;
|
||||
if ($.browser.msie || $.browser.opera) {
|
||||
current = Math.ceil(current);
|
||||
}
|
||||
options.toShow.height( current );
|
||||
},
|
||||
duration: options.duration,
|
||||
easing: options.easing,
|
||||
complete: function() {
|
||||
if ( !options.autoheight ) {
|
||||
options.toShow.css("height", "auto");
|
||||
}
|
||||
options.complete();
|
||||
}
|
||||
});
|
||||
},
|
||||
bounceslide: function(options) {
|
||||
this.slide(options, {
|
||||
easing: options.down ? "bounceout" : "swing",
|
||||
duration: options.down ? 1000 : 200
|
||||
});
|
||||
},
|
||||
easeslide: function(options) {
|
||||
this.slide(options, {
|
||||
easing: "easeinout",
|
||||
duration: 700
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery);
|
14
template-common/jquery.accordion.min.js
vendored
Normal file
14
template-common/jquery.accordion.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
15
template-common/jquery.accordion.pack.js
Normal file
15
template-common/jquery.accordion.pack.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* jQuery UI Accordion 1.6
|
||||
*
|
||||
* Copyright (c) 2007 Jörn Zaefferer
|
||||
*
|
||||
* http://docs.jquery.com/UI/Accordion
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* Revision: $Id$
|
||||
*
|
||||
*/
|
||||
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(3($){$.5=$.5||{};$.1L.M({6:3(c,b){7 d=1Q.1k.1K.F(16,1);9 2.B(3(){4(1m c=="1O"){7 a=$.j(2,"5-6");a[c].1h(a,d)}t 4(!$(2).R(".5-6"))$.j(2,"5-6",1D $.5.6(2,c))})},Q:3(a){9 2.6("Q",a)}});$.5.6=3(e,d){2.i=d=$.M({},$.5.6.11,d);2.N=e;$(e).L("5-6");4(d.1Z){7 a=$(e).1t("a").q(d.1r);4(a.V){4(a.q(d.u).V){d.8=a}t{d.8=a.m().m().1N();a.L("1M")}}}d.k=$(e).1t(d.u);d.8=U(d.k,d.8);4(d.1j){7 b=$(e).m().h();d.k.B(3(){b-=$(2).1g()});7 c=0;d.k.o().B(3(){c=P.19(c,$(2).1F()-$(2).h())}).h(b-c)}t 4(d.n){7 b=0;d.k.o().B(3(){b=P.19(b,$(2).1g())}).h(b)}d.k.O(d.8||"").o().10();d.8.m().J().L(d.w);4(d.Y)$(e).1z((d.Y)+".5-6",W)};$.5.6.1k={Q:3(a){W.F(2.N,{X:U(2.i.k,a)[0]})},1v:3(){2.i.Z=s},25:3(){2.i.Z=D},1Y:3(){2.i.k.o().C("1W","");4(2.i.1j||2.i.n){2.i.k.o().C("h","")}$.1V(2.N,"5-6");$(2.N).1U("5-6").1T(".5-6")}}3 1q(a,b){9 3(){9 a.1h(b,16)}}3 1p(a){4(!$.j(2,"5-6"))9;7 b=$.j(2,"5-6");7 c=b.i;c.v=a?0:--c.v;4(c.v)9;4(c.1S){c.l.1R(c.p).C({h:"",1n:""})}$(2).1P("1l.5-6",[c.j],c.1l)}3 I(g,c,b,d,a){7 e=$.j(2,"5-6").i;e.l=g;e.p=c;e.j=b;7 f=1q(1p,2);e.v=c.H()==0?g.H():c.H();4(e.G){4(!e.A&&d){$.5.6.T[e.G]({l:K([]),p:c,x:f,r:a,n:e.n})}t{$.5.6.T[e.G]({l:g,p:c,x:f,r:a,n:e.n})}}t{4(!e.A&&d){g.I()}t{c.10();g.S()}f(D)}}3 W(a){7 c=$.j(2,"5-6").i;4(c.Z)9 s;4(!a.X&&!c.A){c.8.m().J().1i(c.w);7 d=c.8.o(),j={1f:2,i:c,1e:K([]),1d:c.8,12:K([]),1b:d},f=c.8=$([]);I.F(2,f,d,j);9 s}7 b=$(a.X);4(b.1J(c.u).V)1I(!b.R(c.u))b=b.m();7 e=b[0]==c.8[0];4(c.v||(c.A&&e))9 s;4(!b.R(c.u))9;c.8.m().J().1i(c.w);4(!e){b.m().J().L(c.w)}7 f=b.o(),d=c.8.o(),j={1f:2,i:c,1e:b,1d:c.8,12:f,1b:d},r=c.k.1a(c.8[0])>c.k.1a(b[0]);c.8=e?$([]):b;I.F(2,f,d,j,e,r);9 s};3 U(a,b){9 b!=1H?1m b=="1G"?a.q(":18("+b+")"):a.O(a.O(b)):b===s?$([]):a.q(":18(0)")}$.M($.5.6,{11:{w:"1E",A:D,G:\'E\',Y:"1C",u:"a",n:D,v:0,1r:3(){9 2.17.1c()==1B.17.1c()}},T:{E:3(e,d){e=$.M({z:"15",y:1A},e,d);4(!e.p.H()){e.l.14({h:"S"},e);9}7 c=e.p.h(),13=e.l.h(),1s=13/c;e.l.C({h:0,1n:\'1o\'}).S();e.p.q(":1o").B(e.x).1y().q(":1x").14({h:"10"},{1X:3(a){7 b=(c-a)*1s;4($.1u.1w||$.1u.20){b=P.21(b)}e.l.h(b)},y:e.y,z:e.z,x:3(){4(!e.n){e.l.C("h","2a")}e.x()}})},28:3(a){2.E(a,{z:a.r?"27":"15",y:a.r?26:24})},23:3(a){2.E(a,{z:"22",y:29})}}})})(K);',62,135,'||this|function|if|ui|accordion|var|active|return||||||||height|options|data|headers|toShow|parent|autoheight|next|toHide|filter|down|false|else|header|running|selectedClass|complete|duration|easing|alwaysOpen|each|css|true|slide|call|animated|size|toggle|andSelf|jQuery|addClass|extend|element|not|Math|activate|is|show|animations|findActive|length|clickHandler|target|event|disabled|hide|defaults|newContent|showHeight|animate|swing|arguments|href|eq|max|index|oldContent|toLowerCase|oldHeader|newHeader|instance|outerHeight|apply|toggleClass|fillSpace|prototype|change|typeof|overflow|hidden|completed|scopeCallback|navigationFilter|difference|find|browser|enable|msie|visible|end|bind|300|location|click|new|selected|innerHeight|number|undefined|while|parents|slice|fn|current|prev|string|triggerHandler|Array|add|clearStyle|unbind|removeClass|removeData|display|step|destroy|navigation|opera|ceil|easeinout|easeslide|200|disable|1000|bounceout|bounceslide|700|auto'.split('|'),0,{}))
|
1
template-common/lib/chili-1.7.pack.js
Normal file
1
template-common/lib/chili-1.7.pack.js
Normal file
File diff suppressed because one or more lines are too long
116
template-common/lib/jquery.dimensions.js
Normal file
116
template-common/lib/jquery.dimensions.js
Normal file
|
@ -0,0 +1,116 @@
|
|||
/* Copyright (c) 2007 Paul Bakaus (paul.bakaus@googlemail.com) and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
|
||||
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
|
||||
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
|
||||
*
|
||||
* $LastChangedDate$
|
||||
* $Rev$
|
||||
*
|
||||
* Version: @VERSION
|
||||
*
|
||||
* Requires: jQuery 1.2+
|
||||
*/
|
||||
|
||||
(function($){
|
||||
|
||||
$.dimensions = {
|
||||
version: '@VERSION'
|
||||
};
|
||||
|
||||
// Create innerHeight, innerWidth, outerHeight and outerWidth methods
|
||||
$.each( [ 'Height', 'Width' ], function(i, name){
|
||||
|
||||
// innerHeight and innerWidth
|
||||
$.fn[ 'inner' + name ] = function() {
|
||||
if (!this[0]) return;
|
||||
|
||||
var torl = name == 'Height' ? 'Top' : 'Left', // top or left
|
||||
borr = name == 'Height' ? 'Bottom' : 'Right'; // bottom or right
|
||||
|
||||
return num( this, name.toLowerCase() ) + num(this, 'padding' + torl) + num(this, 'padding' + borr);
|
||||
};
|
||||
|
||||
// outerHeight and outerWidth
|
||||
$.fn[ 'outer' + name ] = function(options) {
|
||||
if (!this[0]) return;
|
||||
|
||||
var torl = name == 'Height' ? 'Top' : 'Left', // top or left
|
||||
borr = name == 'Height' ? 'Bottom' : 'Right'; // bottom or right
|
||||
|
||||
options = $.extend({ margin: false }, options || {});
|
||||
|
||||
return num( this, name.toLowerCase() )
|
||||
+ num(this, 'border' + torl + 'Width') + num(this, 'border' + borr + 'Width')
|
||||
+ num(this, 'padding' + torl) + num(this, 'padding' + borr)
|
||||
+ (options.margin ? (num(this, 'margin' + torl) + num(this, 'margin' + borr)) : 0);
|
||||
};
|
||||
});
|
||||
|
||||
// Create scrollLeft and scrollTop methods
|
||||
$.each( ['Left', 'Top'], function(i, name) {
|
||||
$.fn[ 'scroll' + name ] = function(val) {
|
||||
if (!this[0]) return;
|
||||
|
||||
return val != undefined ?
|
||||
|
||||
// Set the scroll offset
|
||||
this.each(function() {
|
||||
this == window || this == document ?
|
||||
window.scrollTo(
|
||||
name == 'Left' ? val : $(window)[ 'scrollLeft' ](),
|
||||
name == 'Top' ? val : $(window)[ 'scrollTop' ]()
|
||||
) :
|
||||
this[ 'scroll' + name ] = val;
|
||||
}) :
|
||||
|
||||
// Return the scroll offset
|
||||
this[0] == window || this[0] == document ?
|
||||
self[ (name == 'Left' ? 'pageXOffset' : 'pageYOffset') ] ||
|
||||
$.boxModel && document.documentElement[ 'scroll' + name ] ||
|
||||
document.body[ 'scroll' + name ] :
|
||||
this[0][ 'scroll' + name ];
|
||||
};
|
||||
});
|
||||
|
||||
$.fn.extend({
|
||||
position: function() {
|
||||
var left = 0, top = 0, elem = this[0], offset, parentOffset, offsetParent, results;
|
||||
|
||||
if (elem) {
|
||||
// Get *real* offsetParent
|
||||
offsetParent = this.offsetParent();
|
||||
|
||||
// Get correct offsets
|
||||
offset = this.offset();
|
||||
parentOffset = offsetParent.offset();
|
||||
|
||||
// Subtract element margins
|
||||
offset.top -= num(elem, 'marginTop');
|
||||
offset.left -= num(elem, 'marginLeft');
|
||||
|
||||
// Add offsetParent borders
|
||||
parentOffset.top += num(offsetParent, 'borderTopWidth');
|
||||
parentOffset.left += num(offsetParent, 'borderLeftWidth');
|
||||
|
||||
// Subtract the two offsets
|
||||
results = {
|
||||
top: offset.top - parentOffset.top,
|
||||
left: offset.left - parentOffset.left
|
||||
};
|
||||
}
|
||||
|
||||
return results;
|
||||
},
|
||||
|
||||
offsetParent: function() {
|
||||
var offsetParent = this[0].offsetParent;
|
||||
while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && $.css(offsetParent, 'position') == 'static') )
|
||||
offsetParent = offsetParent.offsetParent;
|
||||
return $(offsetParent);
|
||||
}
|
||||
});
|
||||
|
||||
function num(el, prop) {
|
||||
return parseInt($.css(el.jquery?el[0]:el,prop))||0;
|
||||
};
|
||||
|
||||
})(jQuery);
|
102
template-common/lib/jquery.easing.js
Normal file
102
template-common/lib/jquery.easing.js
Normal file
|
@ -0,0 +1,102 @@
|
|||
/*
|
||||
* jQuery Easing v1.1.1 - http://gsgd.co.uk/sandbox/jquery.easing.php
|
||||
*
|
||||
* Uses the built in easing capabilities added in jQuery 1.1
|
||||
* to offer multiple easing options
|
||||
*
|
||||
* Copyright (c) 2007 George Smith
|
||||
* Licensed under the MIT License:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
|
||||
jQuery.extend(jQuery.easing, {
|
||||
easein: function(x, t, b, c, d) {
|
||||
return c*(t/=d)*t + b; // in
|
||||
},
|
||||
easeinout: function(x, t, b, c, d) {
|
||||
if (t < d/2) return 2*c*t*t/(d*d) + b;
|
||||
var ts = t - d/2;
|
||||
return -2*c*ts*ts/(d*d) + 2*c*ts/d + c/2 + b;
|
||||
},
|
||||
easeout: function(x, t, b, c, d) {
|
||||
return -c*t*t/(d*d) + 2*c*t/d + b;
|
||||
},
|
||||
expoin: function(x, t, b, c, d) {
|
||||
var flip = 1;
|
||||
if (c < 0) {
|
||||
flip *= -1;
|
||||
c *= -1;
|
||||
}
|
||||
return flip * (Math.exp(Math.log(c)/d * t)) + b;
|
||||
},
|
||||
expoout: function(x, t, b, c, d) {
|
||||
var flip = 1;
|
||||
if (c < 0) {
|
||||
flip *= -1;
|
||||
c *= -1;
|
||||
}
|
||||
return flip * (-Math.exp(-Math.log(c)/d * (t-d)) + c + 1) + b;
|
||||
},
|
||||
expoinout: function(x, t, b, c, d) {
|
||||
var flip = 1;
|
||||
if (c < 0) {
|
||||
flip *= -1;
|
||||
c *= -1;
|
||||
}
|
||||
if (t < d/2) return flip * (Math.exp(Math.log(c/2)/(d/2) * t)) + b;
|
||||
return flip * (-Math.exp(-2*Math.log(c/2)/d * (t-d)) + c + 1) + b;
|
||||
},
|
||||
bouncein: function(x, t, b, c, d) {
|
||||
return c - jQuery.easing['bounceout'](x, d-t, 0, c, d) + b;
|
||||
},
|
||||
bounceout: function(x, t, b, c, d) {
|
||||
if ((t/=d) < (1/2.75)) {
|
||||
return c*(7.5625*t*t) + b;
|
||||
} else if (t < (2/2.75)) {
|
||||
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
|
||||
} else if (t < (2.5/2.75)) {
|
||||
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
|
||||
} else {
|
||||
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
|
||||
}
|
||||
},
|
||||
bounceinout: function(x, t, b, c, d) {
|
||||
if (t < d/2) return jQuery.easing['bouncein'] (x, t*2, 0, c, d) * .5 + b;
|
||||
return jQuery.easing['bounceout'] (x, t*2-d,0, c, d) * .5 + c*.5 + b;
|
||||
},
|
||||
elasin: function(x, t, b, c, d) {
|
||||
var s=1.70158;var p=0;var a=c;
|
||||
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
||||
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
||||
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
||||
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
||||
},
|
||||
elasout: function(x, t, b, c, d) {
|
||||
var s=1.70158;var p=0;var a=c;
|
||||
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
||||
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
||||
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
||||
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
|
||||
},
|
||||
elasinout: function(x, t, b, c, d) {
|
||||
var s=1.70158;var p=0;var a=c;
|
||||
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
|
||||
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
||||
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
||||
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
||||
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
|
||||
},
|
||||
backin: function(x, t, b, c, d) {
|
||||
var s=1.70158;
|
||||
return c*(t/=d)*t*((s+1)*t - s) + b;
|
||||
},
|
||||
backout: function(x, t, b, c, d) {
|
||||
var s=1.70158;
|
||||
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
|
||||
},
|
||||
backinout: function(x, t, b, c, d) {
|
||||
var s=1.70158;
|
||||
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
|
||||
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
|
||||
}
|
||||
});
|
11
template-common/lib/jquery.js
vendored
Normal file
11
template-common/lib/jquery.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,8 @@
|
|||
{* $Id$ *}
|
||||
<div id="post-header"></div>
|
||||
<div id="menubar">
|
||||
<dl>
|
||||
<dt>{'Links'|@translate}</dt>
|
||||
<dt class="rdion">{'Links'|@translate}</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_RETURN}">{'home'|@translate}</a></li>
|
||||
|
@ -11,7 +12,7 @@
|
|||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>{'config'|@translate}</dt>
|
||||
<dt class="rdion">{'config'|@translate}</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_CONFIG_GENERAL}">{'conf_general'|@translate}</a></li>
|
||||
|
@ -20,7 +21,7 @@
|
|||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>{'Categories'|@translate}</dt>
|
||||
<dt class="rdion">{'Categories'|@translate}</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_SITE_MANAGER}">{'Site manager'|@translate}</a></li>
|
||||
|
@ -33,7 +34,7 @@
|
|||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>{'Pictures'|@translate}</dt>
|
||||
<dt class="rdion">{'Pictures'|@translate}</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_WAITING}">{'waiting'|@translate}</a></li>
|
||||
|
@ -45,7 +46,7 @@
|
|||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>{'identification'|@translate}</dt>
|
||||
<dt class="rdion">{'identification'|@translate}</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_USERS}">{'users'|@translate}</a></li>
|
||||
|
@ -55,7 +56,7 @@
|
|||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>{'special_admin_menu'|@translate}</dt>
|
||||
<dt class="rdion">{'special_admin_menu'|@translate}</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_HISTORY_STAT}">{'History'|@translate}</a></li>
|
||||
|
|
Loading…
Add table
Reference in a new issue