mirror of
https://github.com/fusionpbx/fusionpbx.git
synced 2025-12-30 00:53:50 +00:00
Dialplan Edit layout and style mods
Integrated autosize jquery script for text inputs Style and functionality mods on domain selector and Enhanced template
This commit is contained in:
110
resources/jquery/jquery.autosize.input.js
Normal file
110
resources/jquery/jquery.autosize.input.js
Normal file
@@ -0,0 +1,110 @@
|
||||
// source: https://github.com/MartinF/jQuery.Autosize.Input
|
||||
|
||||
var Plugins;
|
||||
(function (Plugins) {
|
||||
var AutosizeInput = (function () {
|
||||
function AutosizeInput(input, options) {
|
||||
var _this = this;
|
||||
this._input = $(input);
|
||||
this._options = options;
|
||||
this._mirror = $('<span style="position:absolute; top:-999px; left:0; white-space:pre;"/>');
|
||||
$.each([
|
||||
'fontFamily',
|
||||
'fontSize',
|
||||
'fontWeight',
|
||||
'fontStyle',
|
||||
'letterSpacing',
|
||||
'textTransform',
|
||||
'wordSpacing',
|
||||
'textIndent'
|
||||
], function (i, val) {
|
||||
_this._mirror[0].style[val] = _this._input.css(val);
|
||||
});
|
||||
$("body").append(this._mirror);
|
||||
this._input.bind("keydown input", function (e) {
|
||||
_this.update();
|
||||
});
|
||||
(function () {
|
||||
_this.update();
|
||||
})();
|
||||
}
|
||||
Object.defineProperty(AutosizeInput.prototype, "options", {
|
||||
get: function () {
|
||||
return this._options;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(AutosizeInput, "instanceKey", {
|
||||
get: function () {
|
||||
return "autosizeInputInstance";
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
AutosizeInput.prototype.update = function () {
|
||||
var value = this._input.val();
|
||||
if(!value) {
|
||||
value = this._input.attr("placeholder");
|
||||
}
|
||||
if(value === this._mirror.text()) {
|
||||
return;
|
||||
}
|
||||
this._mirror.text(value);
|
||||
var newWidth = this._mirror.width() + this._options.space;
|
||||
this._input.width(newWidth);
|
||||
};
|
||||
return AutosizeInput;
|
||||
})();
|
||||
Plugins.AutosizeInput = AutosizeInput;
|
||||
var AutosizeInputOptions = (function () {
|
||||
function AutosizeInputOptions(space) {
|
||||
if (typeof space === "undefined") { space = 30; }
|
||||
this._space = space;
|
||||
}
|
||||
Object.defineProperty(AutosizeInputOptions.prototype, "space", {
|
||||
get: function () {
|
||||
return this._space;
|
||||
},
|
||||
set: function (value) {
|
||||
this._space = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
return AutosizeInputOptions;
|
||||
})();
|
||||
Plugins.AutosizeInputOptions = AutosizeInputOptions;
|
||||
(function ($) {
|
||||
var pluginDataAttributeName = "autosize-input";
|
||||
var validTypes = [
|
||||
"text",
|
||||
"password",
|
||||
"search",
|
||||
"url",
|
||||
"tel",
|
||||
"email"
|
||||
];
|
||||
$.fn.autosizeInput = function (options) {
|
||||
return this.each(function () {
|
||||
if(!(this.tagName == "INPUT" && $.inArray(this.type, validTypes) > -1)) {
|
||||
return;
|
||||
}
|
||||
var $this = $(this);
|
||||
if(!$this.data(Plugins.AutosizeInput.instanceKey)) {
|
||||
if(options == undefined) {
|
||||
var options = $this.data(pluginDataAttributeName);
|
||||
if(!(options && typeof options == 'object')) {
|
||||
options = new AutosizeInputOptions();
|
||||
}
|
||||
}
|
||||
$this.data(Plugins.AutosizeInput.instanceKey, new Plugins.AutosizeInput(this, options));
|
||||
}
|
||||
});
|
||||
};
|
||||
$(function () {
|
||||
$("input[data-" + pluginDataAttributeName + "]").autosizeInput();
|
||||
});
|
||||
})(jQuery);
|
||||
})(Plugins || (Plugins = {}));
|
||||
|
||||
Reference in New Issue
Block a user