Browse Source

#2466, recode some of progress. Fix module.value to not be estimated when using a total. Fixed issue with values less than 1 displaying incorrectly

pull/2492/head
Jack Lukic 10 years ago
parent
commit
62ae343363
1 changed files with 74 additions and 72 deletions
  1. 146
      src/definitions/modules/progress.js

146
src/definitions/modules/progress.js

@ -63,11 +63,12 @@ $.fn.progress = function(parameters) {
initialize: function() { initialize: function() {
module.debug('Initializing progress bar', settings); module.debug('Initializing progress bar', settings);
transitionEnd = module.get.transitionEnd();
module.set.duration();
module.set.transitionEvent();
module.read.metadata(); module.read.metadata();
module.set.duration();
module.set.initials();
module.read.settings();
module.instantiate(); module.instantiate();
}, },
@ -98,86 +99,109 @@ $.fn.progress = function(parameters) {
read: { read: {
metadata: function() { metadata: function() {
if( $module.data(metadata.percent) ) {
module.verbose('Current percent value set from metadata');
module.percent = $module.data(metadata.percent);
var
data = {
percent : $module.data(metadata.percent),
total : $module.data(metadata.total),
value : $module.data(metadata.value)
}
;
if(data.percent) {
module.debug('Current percent value set from metadata', data.percent);
module.set.percent(data.percent);
} }
if( $module.data(metadata.total) ) {
module.verbose('Total value set from metadata');
module.total = $module.data(metadata.total);
if(data.total) {
module.debug('Total value set from metadata', data.total);
module.set.total(data.total);
} }
if( $module.data(metadata.value) ) {
module.verbose('Current value set from metadata');
module.value = $module.data(metadata.value);
if(data.value) {
module.debug('Current value set from metadata', data.value);
module.set.value(data.value);
} }
}, },
currentValue: function() {
return (module.value !== undefined)
? module.value
: false
;
settings: function() {
if(settings.total !== false) {
module.debug('Current total set in settings', settings.total);
module.set.total(settings.total);
}
if(settings.value !== false) {
module.debug('Current value set in settings', settings.value);
module.set.value(settings.value);
module.set.progress(module.value);
}
if(settings.percent !== false) {
module.debug('Current percent set in settings', settings.percent);
module.set.percent(settings.percent);
}
} }
}, },
increment: function(incrementValue) { increment: function(incrementValue) {
var var
total = module.total || false,
edgeValue,
maxValue,
startValue, startValue,
newValue newValue
; ;
if(total) {
startValue = module.value || 0;
if( module.has.total() ) {
startValue = module.get.value();
incrementValue = incrementValue || 1; incrementValue = incrementValue || 1;
newValue = startValue + incrementValue; newValue = startValue + incrementValue;
edgeValue = module.total;
module.debug('Incrementing value by', incrementValue, startValue, edgeValue);
if(newValue > edgeValue ) {
module.debug('Value cannot increment above total', edgeValue);
newValue = edgeValue;
maxValue = module.get.total();
module.debug('Incrementing value', startValue, newValue, maxValue);
if(newValue > maxValue ) {
module.debug('Value cannot increment above total', maxValue);
newValue = maxValue;
} }
module.set.progress(newValue);
} }
else { else {
startValue = module.percent || 0;
startValue = module.get.percent();
incrementValue = incrementValue || module.get.randomValue(); incrementValue = incrementValue || module.get.randomValue();
newValue = startValue + incrementValue; newValue = startValue + incrementValue;
edgeValue = 100;
module.debug('Incrementing percentage by', incrementValue, startValue);
if(newValue > edgeValue ) {
maxValue = 100;
module.debug('Incrementing percentage by', startValue, newValue);
if(newValue > maxValue ) {
module.debug('Value cannot increment above 100 percent'); module.debug('Value cannot increment above 100 percent');
newValue = edgeValue;
newValue = maxValue;
} }
module.set.progress(newValue);
} }
module.set.progress(newValue);
}, },
decrement: function(decrementValue) { decrement: function(decrementValue) {
var var
total = module.total || false,
edgeValue = 0,
total = module.get.total(),
startValue, startValue,
newValue newValue
; ;
if(total) { if(total) {
startValue = module.value || 0;
startValue = module.get.value();
decrementValue = decrementValue || 1; decrementValue = decrementValue || 1;
newValue = startValue - decrementValue; newValue = startValue - decrementValue;
module.debug('Decrementing value by', decrementValue, startValue); module.debug('Decrementing value by', decrementValue, startValue);
} }
else { else {
startValue = module.percent || 0;
startValue = module.get.percent();
decrementValue = decrementValue || module.get.randomValue(); decrementValue = decrementValue || module.get.randomValue();
newValue = startValue - decrementValue; newValue = startValue - decrementValue;
module.debug('Decrementing percentage by', decrementValue, startValue); module.debug('Decrementing percentage by', decrementValue, startValue);
} }
if(newValue < edgeValue) {
if(newValue < 0) {
module.debug('Value cannot decrement below 0'); module.debug('Value cannot decrement below 0');
newValue = 0; newValue = 0;
} }
module.set.progress(newValue); module.set.progress(newValue);
}, },
has: {
total: function() {
return (module.get.total() !== false);
}
},
get: { get: {
text: function(templateText) { text: function(templateText) {
var var
@ -243,7 +267,7 @@ $.fn.progress = function(parameters) {
return module.percent || 0; return module.percent || 0;
}, },
value: function() { value: function() {
return module.value || false;
return module.value || 0;
}, },
total: function() { total: function() {
return module.total || false; return module.total || false;
@ -319,56 +343,28 @@ $.fn.progress = function(parameters) {
module.verbose('Setting progress bar transition duration', duration); module.verbose('Setting progress bar transition duration', duration);
$bar $bar
.css({ .css({
'-webkit-transition-duration': duration,
'-moz-transition-duration': duration,
'-ms-transition-duration': duration,
'-o-transition-duration': duration,
'transition-duration': duration 'transition-duration': duration
}) })
; ;
}, },
initials: function() {
if(settings.total !== false) {
module.verbose('Current total set in settings', settings.total);
module.total = settings.total;
}
if(settings.value !== false) {
module.verbose('Current value set in settings', settings.value);
module.value = settings.value;
}
if(settings.percent !== false) {
module.verbose('Current percent set in settings', settings.percent);
module.percent = settings.percent;
}
if(module.percent !== undefined) {
module.set.percent(module.percent);
}
else if(module.value !== undefined) {
module.set.progress(module.value);
}
},
percent: function(percent) { percent: function(percent) {
percent = (typeof percent == 'string') percent = (typeof percent == 'string')
? +(percent.replace('%', '')) ? +(percent.replace('%', ''))
: percent : percent
; ;
if(percent > 0 && percent < 1) {
module.verbose('Module percentage passed as decimal, converting');
percent = percent * 100;
}
// round percentage
// round display percentage
percent = (settings.precision > 0) percent = (settings.precision > 0)
? Math.round(percent * (10 * settings.precision)) / (10 * settings.precision) ? Math.round(percent * (10 * settings.precision)) / (10 * settings.precision)
: Math.round(percent) : Math.round(percent)
; ;
module.percent = percent; module.percent = percent;
if(module.total) {
if( !module.has.total() ) {
module.value = (settings.precision > 0) module.value = (settings.precision > 0)
? Math.round( (percent / 100) * module.total * (10 * settings.precision)) / (10 * settings.precision) ? Math.round( (percent / 100) * module.total * (10 * settings.precision)) / (10 * settings.precision)
: Math.round( (percent / 100) * module.total * 10) / 10 : Math.round( (percent / 100) * module.total * 10) / 10
; ;
} }
else if(settings.limitValues) {
if(settings.limitValues) {
module.value = (module.value > 100) module.value = (module.value > 100)
? 100 ? 100
: (module.value < 0) : (module.value < 0)
@ -499,9 +495,15 @@ $.fn.progress = function(parameters) {
} }
settings.onError.call(element, module.value, module.total); settings.onError.call(element, module.value, module.total);
}, },
transitionEvent: function() {
transitionEnd = module.get.transitionEnd();
},
total: function(totalValue) { total: function(totalValue) {
module.total = totalValue; module.total = totalValue;
}, },
value: function(value) {
module.value = value;
},
progress: function(value) { progress: function(value) {
var var
numericValue = (typeof value === 'string') numericValue = (typeof value === 'string')
@ -514,8 +516,8 @@ $.fn.progress = function(parameters) {
if(numericValue === false) { if(numericValue === false) {
module.error(error.nonNumeric, value); module.error(error.nonNumeric, value);
} }
if(module.total) {
module.value = numericValue;
if( module.has.total() ) {
module.set.value(numericValue);
percentComplete = (numericValue / module.total) * 100; percentComplete = (numericValue / module.total) * 100;
module.debug('Calculating percent complete from total', percentComplete); module.debug('Calculating percent complete from total', percentComplete);
module.set.percent( percentComplete ); module.set.percent( percentComplete );

Loading…
Cancel
Save