mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-16 09:34:39 +00:00
(legacy) zap numericupdown
This commit is contained in:
parent
54b97b694b
commit
fa5596e62b
@ -1,40 +0,0 @@
|
||||
.buttonInc,
|
||||
.buttonDec
|
||||
{
|
||||
margin:0;
|
||||
padding:0;
|
||||
width:11px;
|
||||
height:8px;
|
||||
vertical-align:top;
|
||||
background-color:#ccc;
|
||||
text-indent:-999px;
|
||||
overflow:hidden;
|
||||
background:#ccc url(../images/up.gif) no-repeat 50% 50%;
|
||||
border-top:1px solid #eee;
|
||||
border-left:1px solid #eee;
|
||||
border-bottom:1px solid #777;
|
||||
border-right:1px solid #777;
|
||||
voice-family: inherit;
|
||||
height:9px;
|
||||
}
|
||||
html>body .buttonInc,
|
||||
html>body .buttonDec
|
||||
{
|
||||
height:9px;
|
||||
}
|
||||
.buttonDec
|
||||
{
|
||||
margin:9px 0 0 -11px;
|
||||
background:#ccc url(../images/down.gif) no-repeat 50% 50%;
|
||||
voice-family: inherit;
|
||||
margin:10px 0 0 -11px;
|
||||
}
|
||||
html>body .buttonDec
|
||||
{
|
||||
margin:10px 0 0 -11px;
|
||||
}
|
||||
button
|
||||
{
|
||||
font-family:monospace;
|
||||
line-height:1em;
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 60 B |
Binary file not shown.
|
Before Width: | Height: | Size: 60 B |
@ -1,287 +0,0 @@
|
||||
// As usual, we keep the generic functions out of the namespace
|
||||
function addEvent(obj, evType, fn, useCapture){
|
||||
if (obj.addEventListener){
|
||||
obj.addEventListener(evType, fn, useCapture);
|
||||
return true;
|
||||
} else if (obj.attachEvent){
|
||||
var r = obj.attachEvent("on"+evType, fn);
|
||||
return r;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function removeEvent(obj, evType, fn, useCapture){
|
||||
if (obj.removeEventListener){
|
||||
obj.removeEventListener(evType, fn, useCapture);
|
||||
return true;
|
||||
} else if (obj.detachEvent){
|
||||
var r = obj.detachEvent("on"+evType, fn);
|
||||
return r;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!String.prototype.trim) String.prototype.trim = function() { return this.replace(/^\s*/,'').replace(/\s*$/, ''); };
|
||||
|
||||
var incrementalInputController;
|
||||
|
||||
// Encapsulate the Timer and incrementalInput objects
|
||||
(function() {
|
||||
|
||||
// WEBFX Timer : http://www.webfx.com/
|
||||
function Timer(nPauseTime) {
|
||||
this._pauseTime = typeof nPauseTime == "undefined" ? 1000 : nPauseTime;
|
||||
this._timer = null;
|
||||
this._isStarted = false;
|
||||
}
|
||||
|
||||
Timer.prototype.start = function () {
|
||||
if (this.isStarted())
|
||||
this.stop();
|
||||
var oThis = this;
|
||||
this._timer = window.setTimeout(function () {
|
||||
if (typeof oThis.ontimer == "function")
|
||||
oThis.ontimer();
|
||||
}, this._pauseTime);
|
||||
this._isStarted = false;
|
||||
};
|
||||
|
||||
Timer.prototype.stop = function () {
|
||||
if (this._timer != null)
|
||||
window.clearTimeout(this._timer);
|
||||
this._isStarted = false;
|
||||
};
|
||||
|
||||
Timer.prototype.isStarted = function () {
|
||||
return this._isStarted;
|
||||
};
|
||||
|
||||
Timer.prototype.getPauseTime = function () {
|
||||
return this._pauseTime;
|
||||
};
|
||||
|
||||
Timer.prototype.setPauseTime = function (nPauseTime) {
|
||||
this._pauseTime = nPauseTime;
|
||||
};
|
||||
|
||||
function incrementalInput(inp, range, increment, classInc, classDec) {
|
||||
if(!inp || !range) return;
|
||||
|
||||
this._inp = inp;
|
||||
this._buttonInc;
|
||||
this._buttonDec;
|
||||
this._value;
|
||||
this._classInc = classInc;
|
||||
this._classDec = classDec;
|
||||
this._minv = Number(range[0]);
|
||||
this._maxv = Number(range[1]);
|
||||
this._incBase = Number(increment) || 1;
|
||||
this._precision = 0;
|
||||
if(increment.indexOf('.') != -1) {
|
||||
this._precision = increment.substr(increment.indexOf('.')+1, increment.length);
|
||||
this._precision = this._precision.length;
|
||||
}
|
||||
|
||||
this._increment;
|
||||
this._timerInc = 1000;
|
||||
this._timer = new Timer(1000);
|
||||
this._stop = false;
|
||||
this._key = false;
|
||||
|
||||
this._events = {
|
||||
|
||||
dec: function(e) {
|
||||
self._increment = -self._incBase;
|
||||
self.updateValue();
|
||||
return false;
|
||||
},
|
||||
inc: function(e) {
|
||||
self._increment = self._incBase;
|
||||
self.updateValue();
|
||||
return false;
|
||||
},
|
||||
keydec: function(e) {
|
||||
var kc;
|
||||
if (!e) var e = window.event;
|
||||
|
||||
if (e.keyCode) kc = e.keyCode;
|
||||
else if (e.charCode) kc = e.charCode;
|
||||
|
||||
if ( kc != 13 || self._key ) return true;
|
||||
|
||||
self._key = true;
|
||||
self._increment = -self._incBase;
|
||||
self._timerInc = 1000;
|
||||
self.updateValue();
|
||||
return false;
|
||||
},
|
||||
keyinc: function(e) {
|
||||
var kc;
|
||||
if (!e) var e = window.event;
|
||||
|
||||
if (e.keyCode) kc = e.keyCode;
|
||||
else if (e.charCode) kc = e.charCode;
|
||||
|
||||
if ( kc != 13 || self._key ) return true;
|
||||
|
||||
self._key = true;
|
||||
self._increment = self._incBase;
|
||||
self._timerInc = 1000;
|
||||
self.updateValue();
|
||||
return false;
|
||||
},
|
||||
clearTimer: function(e) {
|
||||
self._key = false;
|
||||
self._events.stopTimer();
|
||||
},
|
||||
stopTimer: function(e) {
|
||||
self._timer.stop();
|
||||
self._timerInc = 1000;
|
||||
self._timer.setPauseTime(self._timerInc);
|
||||
},
|
||||
onchange: function(e){
|
||||
var value = Number(parseFloat(self._inp.value).toFixed(self._precision));
|
||||
|
||||
if( Number(value % self._incBase).toFixed(self._precision) != self._incBase ) {
|
||||
value -= Number(parseFloat(value % self._incBase)).toFixed(self._precision);
|
||||
};
|
||||
if(value < self._minv) value = self._minv;
|
||||
else if(value > self._maxv) value = self._maxv;
|
||||
self._inp.value = parseFloat(value).toFixed(self._precision);
|
||||
}
|
||||
};
|
||||
|
||||
this.updateValue = function() {
|
||||
if(self._inp.disabled) {
|
||||
stopTimer();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var value = Number(parseFloat(self._inp.value).toFixed(self._precision));
|
||||
var stop = self._timerInc == 0 ? true : false;
|
||||
|
||||
if( Math.abs(Number(value % self._incBase).toFixed(self._precision)) != self._incBase ) {
|
||||
value -= Number(parseFloat(value % self._incBase)).toFixed(self._precision);
|
||||
}
|
||||
|
||||
value += Number(parseFloat(self._increment).toFixed(self._precision));
|
||||
|
||||
if(value < self._minv) {
|
||||
value = self._minv;
|
||||
stop = true;
|
||||
} else if(value > self._maxv) {
|
||||
value = self._maxv;
|
||||
stop = true;
|
||||
}
|
||||
|
||||
self._inp.value = parseFloat(value).toFixed(self._precision);
|
||||
|
||||
if(self._timerInc > 50) {
|
||||
self._timerInc = 50 + Math.round(((self._timerInc - 50) / 1.8));
|
||||
}
|
||||
|
||||
self._timer.setPauseTime(self._timerInc);
|
||||
if(!stop) self._timer.start();
|
||||
};
|
||||
|
||||
this.construct = function() {
|
||||
var h = self._inp.offsetHeight;
|
||||
|
||||
self._inp.onchange = self._events.onchange;
|
||||
|
||||
self._buttonInc = document.createElement('button');
|
||||
self._buttonDec = document.createElement('button');
|
||||
|
||||
if(self._classDec) self._buttonDec.className = self._classDec;
|
||||
if(self._classInc) self._buttonInc.className = self._classInc;
|
||||
|
||||
self._buttonDec.setAttribute('type','button');
|
||||
self._buttonInc.setAttribute('type','button');
|
||||
|
||||
self._buttonDec.appendChild(document.createTextNode('-'));
|
||||
self._buttonInc.appendChild(document.createTextNode('+'));
|
||||
|
||||
self._buttonDec.onmousedown = self._events.dec;
|
||||
self._buttonInc.onmousedown = self._events.inc;
|
||||
|
||||
addEvent(self._buttonDec, "keypress", self._events.keydec, true);
|
||||
addEvent(self._buttonDec, "keyup", self._events.clearTimer, true);
|
||||
addEvent(self._buttonInc, "keypress", self._events.keyinc, true);
|
||||
addEvent(self._buttonInc, "keyup", self._events.clearTimer, true);
|
||||
|
||||
self._buttonInc.onmouseout = self._events.stopTimer;
|
||||
self._buttonDec.onmouseout = self._events.stopTimer;
|
||||
|
||||
addEvent(document, 'mouseup', self._events.stopTimer, false);
|
||||
|
||||
if(self._inp.nextSibling) {
|
||||
self._inp.parentNode.insertBefore( self._buttonDec, self._inp.nextSibling );
|
||||
self._inp.parentNode.insertBefore( self._buttonInc, self._inp.nextSibling );
|
||||
} else {
|
||||
self._inp.parentNode.appendChild( self._buttonInc );
|
||||
self._inp.parentNode.appendChild( self._buttonDec );
|
||||
};
|
||||
};
|
||||
|
||||
var self = this;
|
||||
|
||||
self._timer.ontimer = function() { self.updateValue(); };
|
||||
self.construct();
|
||||
}
|
||||
|
||||
incremetalInputController = {
|
||||
inputCollection: [],
|
||||
constructor: function() {
|
||||
|
||||
if(!document.getElementById || !document.createElement) return;
|
||||
|
||||
// TODO : cut the regExps down to readable levels - they are hideous at present...
|
||||
var regExp_1 = /fd_incremental_inp_range_([-]{0,1}[0-9]+(f[0-9]+){0,1}){1}_([-]{0,1}[0-9]+(f[0-9]+){0,1}){1}/ig;
|
||||
var regExp_2 = /fd_increment_([0-9]+(f[0-9]+){0,1}){1}/ig;
|
||||
var regExp_3 = /fd_classname_inc_([\-_0-9a-zA-Z]+){1}/ig;
|
||||
var regExp_4 = /fd_classname_dec_([\-_0-9a-zA-Z]+){1}/ig;
|
||||
|
||||
var inputCollection = document.getElementsByTagName('input');
|
||||
var obj, range, classname, classes, classInc, classDec, increment;
|
||||
|
||||
for(var i = 0, inp; inp = inputCollection[i]; i++) {
|
||||
if(inp.type == 'text' && inp.className && inp.className.search(regExp_1) != -1) {
|
||||
classes = inp.className.split(' ');
|
||||
increment = 1;
|
||||
range = [0,0];
|
||||
classInc = "";
|
||||
classDec = "";
|
||||
|
||||
for(var z = 0, classname; classname = classes[z]; z++) {
|
||||
if(classname.search(regExp_1) != -1) {
|
||||
range = classname.trim();
|
||||
range = range.replace(/fd_incremental_inp_range_/ig, '');
|
||||
range = range.replace(/f/g,'.');
|
||||
range = range.split('_');
|
||||
} else if(classname.search(regExp_2) != -1) {
|
||||
increment = classname.trim();
|
||||
increment = increment.replace(/fd_increment_/ig, '');
|
||||
increment = increment.replace('f','.');
|
||||
} else if(classname.search(regExp_3) != -1) {
|
||||
classInc = classname.trim();
|
||||
classInc = classInc.replace(/fd_classname_inc_/ig, '');
|
||||
} else if(classname.search(regExp_4) != -1) {
|
||||
classDec = classname.trim();
|
||||
classDec = classDec.replace(/fd_classname_dec_/ig, '');
|
||||
}
|
||||
}
|
||||
|
||||
if (inp.value.length == 0 || isNaN(inp.value) == true) { inp.value = 0; }
|
||||
|
||||
obj = new incrementalInput(inp, range, increment, classInc, classDec);
|
||||
incremetalInputController.inputCollection.push(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Close and call anonymous function
|
||||
})();
|
||||
|
||||
addEvent(window, 'load', incremetalInputController.constructor, true);
|
||||
Loading…
x
Reference in New Issue
Block a user