svn commit: r987145 - in /ofbiz/branches/jquery: ./ applications/humanres/widget/ applications/party/webapp/partymgr/WEB-INF/ applications/party/webapp/partymgr/js/ framework/common/webcommon/WEB-INF/ framework/common/widget/ framework/images/webapp/im...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r987145 - in /ofbiz/branches/jquery: ./ applications/humanres/widget/ applications/party/webapp/partymgr/WEB-INF/ applications/party/webapp/partymgr/js/ framework/common/webcommon/WEB-INF/ framework/common/widget/ framework/images/webapp/im...

erwan
Author: erwan
Date: Thu Aug 19 12:40:45 2010
New Revision: 987145

URL: http://svn.apache.org/viewvc?rev=987145&view=rev
Log:
OFBIZ-3878 - HR file upload progressbar jQuery implementation (https://issues.apache.org/jira/browse/OFBIZ-3878)

Added:
    ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/
    ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer-min.js   (with props)
    ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer.js   (with props)
    ofbiz/branches/jquery/themes/tomahawk/webapp/tomahawk/images/pbar-ani.gif   (with props)
Modified:
    ofbiz/branches/jquery/LICENSE
    ofbiz/branches/jquery/applications/humanres/widget/EmployeeScreens.xml
    ofbiz/branches/jquery/applications/party/webapp/partymgr/WEB-INF/controller.xml
    ofbiz/branches/jquery/applications/party/webapp/partymgr/js/PartyProfileContent.js
    ofbiz/branches/jquery/framework/common/webcommon/WEB-INF/common-controller.xml
    ofbiz/branches/jquery/framework/common/widget/CommonScreens.xml
    ofbiz/branches/jquery/themes/tomahawk/webapp/tomahawk/css/style.css

Modified: ofbiz/branches/jquery/LICENSE
URL: http://svn.apache.org/viewvc/ofbiz/branches/jquery/LICENSE?rev=987145&r1=987144&r2=987145&view=diff
==============================================================================
--- ofbiz/branches/jquery/LICENSE (original)
+++ ofbiz/branches/jquery/LICENSE Thu Aug 19 12:40:45 2010
@@ -1267,6 +1267,8 @@ ofbiz/trunk/framework/images/webapp/imag
 ofbiz/trunk/framework/images/webapp/images/jquery/plugins/jquery-ui-timepicker-addon-0.5.min.js
 ofbiz/trunk/framework/images/webapp/images/jquery/ui/js/jquery-ui-1.8.2.custom.min.js
 ofbiz/trunk/framework/images/webapp/images/jquery/plugins/jeditable/jquery.jeditable.js
+ofbiz/trunk/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer-min.js
+ofbiz/trunk/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer.js
 =========================================================================
 The MIT License
 

Modified: ofbiz/branches/jquery/applications/humanres/widget/EmployeeScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jquery/applications/humanres/widget/EmployeeScreens.xml?rev=987145&r1=987144&r2=987145&view=diff
==============================================================================
--- ofbiz/branches/jquery/applications/humanres/widget/EmployeeScreens.xml (original)
+++ ofbiz/branches/jquery/applications/humanres/widget/EmployeeScreens.xml Thu Aug 19 12:40:45 2010
@@ -84,9 +84,6 @@ under the License.
                 <set field="tabButtonItem" value="EmployeeProfile"/>
                 <set field="labelTitleProperty" value="PartyTaxAuthInfos"/>
                 <set field="partyId" from-field="parameters.partyId"/>
-                <set field="layoutSettings.javaScripts[]" value="/images/prototypejs/prototype.js" global="true"/>
-                <set field="layoutSettings.javaScripts[]" value="/images/prototypejs/control.progress_bar.js" global="true"/>
-                <set field="layoutSettings.styleSheets[]" value="/images/prototypejs/progress_bar.css" global="true"/>
                 <set field="layoutSettings.javaScripts[]" value="/partymgr/js/PartyProfileContent.js" global="true"/>
                 <script location="component://party/webapp/partymgr/WEB-INF/actions/party/ViewProfile.groovy"/>
                 <script location="component://party/webapp/partymgr/WEB-INF/actions/party/GetUserLoginPrimaryEmail.groovy"/>

Modified: ofbiz/branches/jquery/applications/party/webapp/partymgr/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jquery/applications/party/webapp/partymgr/WEB-INF/controller.xml?rev=987145&r1=987144&r2=987145&view=diff
==============================================================================
--- ofbiz/branches/jquery/applications/party/webapp/partymgr/WEB-INF/controller.xml (original)
+++ ofbiz/branches/jquery/applications/party/webapp/partymgr/WEB-INF/controller.xml Thu Aug 19 12:40:45 2010
@@ -1071,13 +1071,6 @@ under the License.
         <response name="success" type="view" value="partyContentList"/>
     </request-map>
 
-    <request-map uri="getFileUploadProgressStatus">
-        <security https="true" auth="false"/>
-        <event type="service" invoke="getFileUploadProgressStatus"/>
-        <response name="success" type="request" value="json"/>
-        <response name="error" type="request" value="json"/>
-    </request-map>
-
     <request-map uri="img">
         <security auth="false" https="false"/>
         <event type="java" path="org.ofbiz.content.data.DataEvents" invoke="serveImage"/>

Modified: ofbiz/branches/jquery/applications/party/webapp/partymgr/js/PartyProfileContent.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/jquery/applications/party/webapp/partymgr/js/PartyProfileContent.js?rev=987145&r1=987144&r2=987145&view=diff
==============================================================================
--- ofbiz/branches/jquery/applications/party/webapp/partymgr/js/PartyProfileContent.js (original)
+++ ofbiz/branches/jquery/applications/party/webapp/partymgr/js/PartyProfileContent.js Thu Aug 19 12:40:45 2010
@@ -17,80 +17,93 @@ specific language governing permissions
 under the License.
 * */
 
-var progressBar;
-
-Event.observe(window, 'load', function() {
-  Event.observe('uploadPartyContent', 'submit', uploadPartyContent);
-  Event.observe('uploadPartyContent', 'submit', getUploadProgressStatus);
-  progressBar = new Control.ProgressBar('progress_bar');
+/**
+ *
+ **/
+jQuery(document).ready(function() {
+    jQuery("#uploadPartyContent").bind("submit", uploadPartyContent);
+    jQuery("#uploadPartyContent").bind("submit", getUploadProgressStatus);
+    jQuery("#progress_bar").progressbar({value: 0});
+    
 });
+
 function uploadPartyContent(event){
-    var targetFrame = $('target_upload');
-    if(!targetFrame){
-        $('partyContent').insert("<iframe id='target_upload' name='target_upload' style='display: none' src=''> </iframe>");
+    jQuery("#progress_bar").progressbar("option", "value", 0);
+    var targetFrame = jQuery('#target_upload');
+    var infodiv = jQuery('#content-messages');
+    if(infodiv.length < 1){
+        jQuery('<div id="content-messages"></div>').insertAfter(jQuery("#partyContentList"));
     }
-    $('uploadPartyContent').target="target_upload";
-    Event.observe('target_upload', 'load', uploadCompleted);
-    var errordiv = $('content-messages');
-    if(errordiv){
-        $('content-messages').remove();
+    if(targetFrame.length < 1){
+        jQuery('#partyContent').append("<iframe id='target_upload' name='target_upload' style='display: none' src=''> </iframe>");
     }
+    jQuery('#uploadPartyContent').attr("target", "target_upload");
 }
 
-function uploadCompleted(event){
-    var doc = getIframeDocument($('target_upload'));
-    var errordiv = doc.getElementById('content-messages');
-    //console.log(errordiv);
-    if(errordiv){
-        $('partyContent').insert(errordiv);
-    }
-    var partyContentListDiv = doc.getElementById('partyContentList');
-    //console.log(partyContentListDiv);
-    if(partyContentListDiv){
-        $('partyContentList').update(partyContentListDiv.innerHTML);
-    }
-    if($('progressBarSavingMsg')){
-        $('progressBarSavingMsg').remove();
-    }
-    progressBar.reset();
+function uploadCompleted(){
+    var iframePartyContentList = jQuery("#target_upload").contents().find("#partyContentList").html();
+    
+    // update partyContentList - copy the Data from the iFrame partyContentList to the page partyContentList
+    jQuery("#partyContentList").html(iframePartyContentList);
+    
+    jQuery('#progressBarSavingMsg').html("Saving complete!");
+    // reset progressbar
+    jQuery("#progress_bar").progressbar("option", "value", 0);
+    
+    // remove iFrame
+    jQuery("#target_upload").remove();
+    return;
+}
+
+function checkIframeStatus() {
+    var iframePartyContentList = null;
+    // if the new partyContentList isn't created wait a few ms and call the method again
+    jQuery.fjTimer({
+        interval: 500,
+        repeat: true,
+        tick: function(counter, timerId) {
+            iframePartyContentList = jQuery("#target_upload").contents().find("#partyContentList");
+            if (iframePartyContentList != null && iframePartyContentList.length > 0) {
+                timerId.stop();
+                uploadCompleted();
+            }
+        }
+    });
+    return;
 }
 
 function getUploadProgressStatus(event){
+    jQuery('#uploadPartyContent').append("<span id='progressBarSavingMsg' class='label'>Uploading...</span>");
     var i=0;
-    new PeriodicalExecuter(function(event){
-        new Ajax.Request('/partymgr/control/getFileUploadProgressStatus', {
-            onSuccess: function(transport){
-                var data = transport.responseText.evalJSON(true);
-                if (data._ERROR_MESSAGE_LIST_ != undefined) {
-                   //console.log(data._ERROR_MESSAGE_LIST_);
-                   //alert(data._ERROR_MESSAGE_LIST_);
-                }else if (data._ERROR_MESSAGE_ != undefined) {
-                   //console.log(data._ERROR_MESSAGE_);
-                   //alert(data._ERROR_MESSAGE_);
-                }else {
-                   //console.log(data.readPercent);
-                   var readPercent = data.readPercent;
-                   progressBar.setProgress(readPercent);
-                   if(readPercent > 99){
-                          $('uploadPartyContent').insert("<span id='progressBarSavingMsg' class='label'>Saving..</span>");
-                       event.stop();
-                   }
-
+    jQuery.fjTimer({
+        interval: 1000,
+        repeat: true,
+        tick: function(counter, timerId) {
+            var timerId = timerId;
+            jQuery.ajax({
+                url: 'getFileUploadProgressStatus',
+                dataType: "json",
+                success: function(data) {
+                    if (data._ERROR_MESSAGE_LIST_ != undefined) {
+                        jQuery('#content-messages').html(data._ERROR_MESSAGE_LIST_);
+                        timerId.stop();
+                     } else if (data._ERROR_MESSAGE_ != undefined) {
+                         jQuery('#content-messages').html(data._ERROR_MESSAGE_);
+                        timerId.stop();
+                     } else {
+                        var readPercent = data.readPercent;
+                        jQuery("#progress_bar").progressbar("option", "value", readPercent);
+                        jQuery('#progressBarSavingMsg').html("Uploading... (" + readPercent + "%)");
+                        if(readPercent > 99){
+                            jQuery('#progressBarSavingMsg').html("Saving...");
+                            // stop the fjTimer
+                            timerId.stop();
+                            // call the upload complete method to do final stuff
+                            checkIframeStatus();
+                        }
+                     }
                 }
-            }});
-        },1);
-}
-
-function getIframeDocument(frameElement) {
-  var doc = null;
-  if (frameElement.contentDocument) {
-    doc = frameElement.contentDocument;
-  } else if (frameElement.contentWindow) {
-    doc = frameElement.contentWindow.document;
-  } else if (frameElement.document) {
-    doc = frameElement.document;
-  } else {
-    return null;
-  }
-  return doc;
+            });
+        }
+    });
 }

Modified: ofbiz/branches/jquery/framework/common/webcommon/WEB-INF/common-controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jquery/framework/common/webcommon/WEB-INF/common-controller.xml?rev=987145&r1=987144&r2=987145&view=diff
==============================================================================
--- ofbiz/branches/jquery/framework/common/webcommon/WEB-INF/common-controller.xml (original)
+++ ofbiz/branches/jquery/framework/common/webcommon/WEB-INF/common-controller.xml Thu Aug 19 12:40:45 2010
@@ -21,7 +21,7 @@ under the License.
 <site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/site-conf.xsd">
     <description>Common ControlServlet Configuration File</description>
-    
+
     <errorpage>/error/error.jsp</errorpage>
 
     <!-- event handlers -->
@@ -184,7 +184,7 @@ under the License.
         <event type="java" path="org.ofbiz.common.CommonEvents" invoke="jsonResponseFromRequestAttributes"/>
         <response name="success" type="none"/>
     </request-map>
-    
+
     <request-map uri="showHelp">
         <security https="true" auth="true"/>
         <response name="success" type="view" value="showHelp"/>
@@ -194,7 +194,7 @@ under the License.
         <security https="true" auth="true"/>
         <response name="success" type="view" value="main"/>
     </request-map>
-    
+
     <!--========================== AJAX events =====================-->
     <!-- to dynamically get products related to a product category -->
     <request-map uri="getAssociatedProductsList">
@@ -203,17 +203,25 @@ under the License.
         <response name="success" type="request" value="json"/>
         <response name="error" type="request" value="json"/>
     </request-map>
-    
+
     <!-- to dynamically get states related to a country -->
     <request-map uri="getAssociatedStateList">
         <security https="true" auth="false"/>
         <event type="service" invoke="getAssociatedStateList"/>
         <response name="success" type="request" value="json"/>
         <response name="error" type="request" value="json"/>
-    </request-map>    
+    </request-map>
+
+    <request-map uri="getFileUploadProgressStatus">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="getFileUploadProgressStatus"/>
+        <response name="success" type="request" value="json"/>
+        <response name="error" type="request" value="json"/>
+    </request-map>
+
     <!--========================== AJAX events =====================-->
-    
-    
+
+
     <!-- View Mappings -->
     <view-map name="error" page="/error/error.jsp"/>
     <view-map name="main" type="none"/>

Modified: ofbiz/branches/jquery/framework/common/widget/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jquery/framework/common/widget/CommonScreens.xml?rev=987145&r1=987144&r2=987145&view=diff
==============================================================================
--- ofbiz/branches/jquery/framework/common/widget/CommonScreens.xml (original)
+++ ofbiz/branches/jquery/framework/common/widget/CommonScreens.xml Thu Aug 19 12:40:45 2010
@@ -117,6 +117,7 @@ under the License.
                 <set field="layoutSettings.javaScripts[+0]" value="/images/jquery/ui/js/jquery-ui-1.8.2.custom.min.js" global="true"/>
                 <set field="layoutSettings.javaScripts[+0]" value="/images/jquery/plugins/datetimepicker/jquery-ui-timepicker-addon-0.5.js" global="true"/>
                 <set field="layoutSettings.javaScripts[+0]" value="/images/jquery/plugins/jeditable/jquery.jeditable.js" global="true"/>
+                <set field="layoutSettings.javaScripts[+0]" value="/images/jquery/plugins/fjTimer/jquerytimer-min.js" global="true"/>
                 <set field="layoutSettings.javaScripts[+0]" value="/images/jquery/ui/development-bundle/ui/jquery.ui.datepicker.js" global="true"/>
                 <set field="initialLocale" type="String" value="${parameters.userLogin.lastLocale}" default-value="${groovy:locale.toString()}"/>
                 <set field="layoutSettings.javaScripts[+0]" value="/images/jquery/ui/development-bundle/ui/i18n/jquery.ui.datepicker-${initialLocale}.js" global="true"/>

Added: ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer-min.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer-min.js?rev=987145&view=auto
==============================================================================
--- ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer-min.js (added)
+++ ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer-min.js Thu Aug 19 12:40:45 2010
@@ -0,0 +1,11 @@
+/*** fjTimer
+ *   Version: 1.3  http://www.foxjunior.eu/ 
+ *
+ *   Licensed under the MIT license:
+ *   http://www.opensource.org/licenses/mit-license.php
+**/
+jQuery.extend({fjFunctionQueue:function(a){if(a==null){if(jQuery.fjFunctionQueue.queue!=null&&jQuery.fjFunctionQueue.queue.queue.length>0)if(jQuery.fjFunctionQueue.queue.running)jQuery.fjTimer({interval:jQuery.fjFunctionQueue.queue.properties.interval,tick:function(){var d=jQuery.fjFunctionQueue.queue.queue.shift();try{jQuery.fjFunctionQueue.queue.properties.onTick(jQuery.fjFunctionQueue.queue.index,d);jQuery.fjFunctionQueue.queue.index++}catch(e){jQuery.fjFunctionQueue();throw e;}if(jQuery.fjFunctionQueue.queue.queue.length>
+0)jQuery.fjFunctionQueue();else{jQuery.fjFunctionQueue.queue.running=false;jQuery.fjFunctionQueue.queue.index=0;jQuery.fjFunctionQueue.queue.properties.onComplete()}}});else{jQuery.fjFunctionQueue.queue.running=true;jQuery.fjFunctionQueue()}}else{if(jQuery.fjFunctionQueue.queue==null)jQuery.fjFunctionQueue.queue={index:0,running:false,queue:[],properties:{interval:1,onComplete:function(){},onStart:function(){},autoStart:true,onTick:function(d,e){e()}}};var b=jQuery.fjFunctionQueue.queue.queue.length==
+0;if(jQuery.isFunction(a))jQuery.fjFunctionQueue.queue.queue.push(a);else if(jQuery.isArray(a))for(var c=0;c<a.length;c++)jQuery.fjFunctionQueue.queue.queue.push(a[c]);else jQuery.fjFunctionQueue.queue.properties=jQuery.extend(jQuery.fjFunctionQueue.queue.properties,a);if(b&&jQuery.fjFunctionQueue.queue.queue.length>0&&!jQuery.fjFunctionQueue.queue.running&&jQuery.fjFunctionQueue.queue.properties.autoStart){jQuery.fjFunctionQueue.queue.running=true;jQuery.fjFunctionQueue.queue.properties.onStart();
+jQuery.fjFunctionQueue.queue.running=false;jQuery.fjFunctionQueue()}}},fjTimer:function(a){a=jQuery.extend({interval:10,tick:function(){},repeat:false,random:false,onComplete:function(){},step:1},a);var b=0,c=new (function(){this.timerId=null;this.stop=function(){clearInterval(this.timerId)}});c.timerId=setInterval(function(){try{a.tick(b,c);b+=a.step}catch(d){alert(d)}if(a.repeat!==true&&(a.repeat*a.step<=b||a.repeat===false)){c.stop();a.onComplete()}},a.interval)},fjTimerEach:function(a){var b=
+a.array,c=a.tick;a.repeat=b.length;if(a.step!=null)a.repeat=Math.ceil(b.length/parseInt(a.step,10));a.tick=function(d){c(d,b[d])};jQuery.fjTimer(a)}});

Propchange: ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer-min.js
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer-min.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer.js?rev=987145&view=auto
==============================================================================
--- ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer.js (added)
+++ ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer.js Thu Aug 19 12:40:45 2010
@@ -0,0 +1,136 @@
+/*** fjTimer
+ *   Version: 1.3  http://www.foxjunior.eu/ 
+ *
+ *   Licensed under the MIT license:
+ *   http://www.opensource.org/licenses/mit-license.php
+**/
+
+/******************************
+Simple jQuery based timer. Simple usage:
+
+jQuery.fjTimer({
+ interval: 1000,
+ repeat: 5,
+ tick: function(counter, timerId) {
+ alert("tick:" + counter);
+ }
+});
+properties are:
+* interval - ticker interval in milliseconds, default 10
+* repeat - number of repeat times or boolean if reapeat forever or in case false not repeat at all
+* tick - ticker function itself with parameter of counter and timerId paramerer if you want to clear interval yourself
+
+fjTimerEach method can be used with arrays only. No objects!
+jQuery.fjTimerEach({
+ interval: 1000,
+ tick: function(counter, object) {
+ alert("tick:" + counter + " - " + object);
+ },
+ array: ["me", "myself", "I"]
+});
+Usage is similar to fjTimer with some exceptions:
+* tick comes with parameters index and object in array.
+* step property - if you want to walk through array with bigger steps than 1
+* array property - this is simple array element.
+
+fjFunctionQueue idea is that we have alot of functions going on. Sometimes browsers(mostly IE) hangs if alot of dom is changed or something is going on. So I wrote simple queue.
+Simple usage, just add function to queue:
+jQuery.fjFunctionQueue(function() {alert("a")});
+
+Configuration
+jQuery.fjFunctionQueue({ interval: 1, onStart: function(){ alert("start")}, onComplete: function(){alert("complete!"}, autoStart: false, tick: function(index, func) {func();}, });
+
+properties are:
+* interval - ticker interval in milliseconds. Default 1;
+* onStart function executed when queue starts;.
+* onComplete function executed when queue is complete (including added functions);
+* autoStart property, if queue should started automatically. Default true;
+* tick function is executed before each queue item execution. Parameters are index and executed function itself. When exteding it func method must be called manually.
+******************************/
+jQuery.extend({
+ fjFunctionQueue: function(funcToQue) {
+ if (funcToQue == null) {
+ if (jQuery.fjFunctionQueue.queue != null && jQuery.fjFunctionQueue.queue.queue.length > 0) {
+ if (jQuery.fjFunctionQueue.queue.running) {
+ jQuery.fjTimer({
+ interval: jQuery.fjFunctionQueue.queue.properties.interval,
+ tick: function(counter, timer) {
+ var func = jQuery.fjFunctionQueue.queue.queue.shift();
+ try {
+ jQuery.fjFunctionQueue.queue.properties.onTick(jQuery.fjFunctionQueue.queue.index, func);
+ jQuery.fjFunctionQueue.queue.index++;
+ } catch (e) {
+ jQuery.fjFunctionQueue();
+ throw e;
+ }
+ if (jQuery.fjFunctionQueue.queue.queue.length > 0) {
+ jQuery.fjFunctionQueue();
+ } else {
+ jQuery.fjFunctionQueue.queue.running = false;
+ jQuery.fjFunctionQueue.queue.index = 0;
+ jQuery.fjFunctionQueue.queue.properties.onComplete();
+ }
+ }
+ });
+ } else {
+ jQuery.fjFunctionQueue.queue.running = true;
+ jQuery.fjFunctionQueue();
+ }
+ }
+ } else {
+ if (jQuery.fjFunctionQueue.queue == null) {
+ jQuery.fjFunctionQueue.queue = {index: 0, running: false, queue:[], properties: {interval: 1, onComplete: function(){}, onStart: function(){}, autoStart: true, onTick: function(counter, func) {func();}}};
+ }
+ var isEmptyArray = jQuery.fjFunctionQueue.queue.queue.length == 0;
+ if (jQuery.isFunction(funcToQue)) {
+ jQuery.fjFunctionQueue.queue.queue.push(funcToQue);
+ } else if (jQuery.isArray(funcToQue)) {
+ for(var i = 0; i < funcToQue.length; i++) {
+ jQuery.fjFunctionQueue.queue.queue.push(funcToQue[i]);
+ }
+ } else {
+ jQuery.fjFunctionQueue.queue.properties = jQuery.extend(jQuery.fjFunctionQueue.queue.properties, funcToQue);
+ }
+ if (isEmptyArray && jQuery.fjFunctionQueue.queue.queue.length > 0 && !jQuery.fjFunctionQueue.queue.running && jQuery.fjFunctionQueue.queue.properties.autoStart) {
+ jQuery.fjFunctionQueue.queue.running = true;
+ jQuery.fjFunctionQueue.queue.properties.onStart();
+ jQuery.fjFunctionQueue.queue.running = false;
+ jQuery.fjFunctionQueue();
+ }
+ }
+ },
+ fjTimer : function(properties) {
+    properties = jQuery.extend({interval: 10, tick: function(){}, repeat: false, random :false, onComplete: function(){}, step: 1}, properties);
+    var counter = 0;
+    var timer = new function() {
+     this.timerId = null;
+     this.stop = function() {
+     clearInterval(this.timerId);
+     }
+    }
+    timer.timerId = setInterval(function() {
+     try {
+     properties.tick(counter, timer);
+     counter+=properties.step;
+     } catch (e) {
+     alert(e);
+     }
+     if (properties.repeat !== true && ((properties.repeat * properties.step) <= counter || properties.repeat === false)) {
+     timer.stop();
+     properties.onComplete();
+     }
+    }, properties.interval);
+ },
+ fjTimerEach: function(properties) {
+ var ___array = properties.array;
+ var ___callback = properties.tick;
+ properties.repeat = ___array.length;
+ if (properties.step != null) {
+ properties.repeat = Math.ceil(___array.length / parseInt(properties.step, 10));
+ }
+ properties.tick = function(counter, timer) {
+ ___callback(counter, ___array[counter]);
+ }
+ jQuery.fjTimer(properties);
+ }
+});

Propchange: ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer.js
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/branches/jquery/framework/images/webapp/images/jquery/plugins/fjTimer/jquerytimer.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: ofbiz/branches/jquery/themes/tomahawk/webapp/tomahawk/css/style.css
URL: http://svn.apache.org/viewvc/ofbiz/branches/jquery/themes/tomahawk/webapp/tomahawk/css/style.css?rev=987145&r1=987144&r2=987145&view=diff
==============================================================================
--- ofbiz/branches/jquery/themes/tomahawk/webapp/tomahawk/css/style.css (original)
+++ ofbiz/branches/jquery/themes/tomahawk/webapp/tomahawk/css/style.css Thu Aug 19 12:40:45 2010
@@ -2802,4 +2802,4 @@ height:22px;
 }/* Progressbar
 ----------------------------------*/
 .ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
+.ui-progressbar .ui-progressbar-value {background-image: url(../images/pbar-ani.gif); margin: -1px; height:100%; }

Added: ofbiz/branches/jquery/themes/tomahawk/webapp/tomahawk/images/pbar-ani.gif
URL: http://svn.apache.org/viewvc/ofbiz/branches/jquery/themes/tomahawk/webapp/tomahawk/images/pbar-ani.gif?rev=987145&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/branches/jquery/themes/tomahawk/webapp/tomahawk/images/pbar-ani.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif