]>
git.ipfire.org Git - people/shoehn/ipfire.org.git/blob - www/static/js/jquery.progressbar.js
2 ( function ($){$. extend ({ progressBar
: new function (){ this . defaults
={ steps
: 20 , step_duration
: 20 , max
: 100 , showText
: true , textFormat
: 'percentage' , width
: 120 , height
: 12 , callback
: null , boxImage
: '/static/images/progressbar.gif' , barImage
:{ 0 : '/static/images/progressbg_green.gif' , 30 : '/static/images/progressbg_orange.gif' , 70 : '/static/images/progressbg_red.gif' }, running_value
: 0 , value
: 0 , image
: null }; this . construct = function ( arg1
, arg2
){ var argvalue
= null ; var argconfig
= null ; if ( arg1
!= null ){ if (! isNaN ( arg1
)){ argvalue
= arg1
; if ( arg2
!= null ){ argconfig
= arg2
;}} else { argconfig
= arg1
;}}
3 return this . each ( function ( child
){ var pb
= this ; var config
= this . config
; if ( argvalue
!= null && this . bar
!= null && this . config
!= null ){ this . config
. value
= argvalue
5 pb
. config
=$. extend ( this . config
, argconfig
); config
= pb
. config
;} else { var $ this =$( this ); var config
=$. extend ({},$. progressBar
. defaults
, argconfig
); config
. id
=$ this . attr ( 'id' )?$ this . attr ( 'id' ): Math
. ceil ( Math
. random ()* 100000 ); if ( argvalue
== null )
6 argvalue
=$ this . html (). replace ( "%" , "" )
7 config
. value
= argvalue
; config
. running_value
= 0 ; config
. image
= getBarImage ( config
);$ this . html ( "" ); var bar
= document
. createElement ( 'img' ); var text
= document
. createElement ( 'span' ); var $ bar
=$( bar
); var $ text
=$( text
); pb
. bar
=$ bar
;$ bar
. attr ( 'id' , config
. id
+ "_pbImage" );$ text
. attr ( 'id' , config
. id
+ "_pbText" );$ text
. html ( getText ( config
));$ bar
. attr ( 'title' , getText ( config
));$ bar
. attr ( 'alt' , getText ( config
));$ bar
. attr ( 'src' , config
. boxImage
);$ bar
. attr ( 'width' , config
. width
);$ bar
. css ( "width" , config
. width
+ "px" );$ bar
. css ( "height" , config
. height
+ "px" );$ bar
. css ( "background-image" , "url(" + config
. image
+ ")" );$ bar
. css ( "background-position" ,(( config
. width
*- 1 ))+ 'px 50%' );$ bar
. css ( "padding" , "0" );$ bar
. css ( "margin" , "0" );$ this . append ($ bar
);$ this . append ($ text
);}
8 function getPercentage ( config
){ return parseInt ( config
. running_value
* 100 / config
. max
);}
9 function getBarImage ( config
){ var image
= config
. barImage
; if ( typeof ( config
. barImage
)== 'object' ){ for ( var i
in config
. barImage
){ if ( config
. running_value
>= parseInt ( i
)){ image
= config
. barImage
[ i
];} else { break ;}}}
11 function getText ( config
){ if ( config
. showText
){ if ( config
. textFormat
== 'percentage' ){ return " " + Math
. round ( config
. running_value
)+ "%" ;} else if ( config
. textFormat
== 'fraction' ){ return " " + config
. running_value
+ '/' + config
. max
;}}}
12 config
. increment
= Math
. round (( config
. value
- config
. running_value
)/ config
. steps
); if ( config
. increment
< 0 )
13 config
. increment
*=- 1 ; if ( config
. increment
< 1 )
14 config
. increment
= 1 ; var t
= setInterval ( function (){ var pixels
= config
. width
/ 100 ; var stop
= false ; if ( config
. running_value
> config
. value
){ if ( config
. running_value
- config
. increment
< config
. value
){ config
. running_value
= parseInt ( config
. value
);} else { config
. running_value
-= config
. increment
;}}
15 else if ( config
. running_value
< config
. value
){ if ( config
. running_value
+ config
. increment
> config
. value
){ config
. running_value
= parseInt ( config
. value
);} else { config
. running_value
+= config
. increment
;}}
16 if ( config
. running_value
== config
. value
)
17 clearInterval ( t
); var $ bar
=$( "#" + config
. id
+ "_pbImage" ); var $ text
=$( "#" + config
. id
+ "_pbText" ); var image
= getBarImage ( config
); if ( image
!= config
. image
){$ bar
. css ( "background-image" , "url(" + image
+ ")" ); config
. image
= image
;}
18 $ bar
. css ( "background-position" ,((( config
. width
*- 1 ))+( getPercentage ( config
)* pixels
))+ 'px 50%' );$ text
. html ( getText ( config
)); if ( config
. callback
!= null && typeof ( config
. callback
)== 'function' )
19 config
. callback ( config
); pb
. config
= config
;}, config
. step_duration
);});};}});$. fn
. extend ({ progressBar
:$. progressBar
. construct
});})( jQuery
);