init
This commit is contained in:
.gitignoreCHANGELOG.txtLICENSE-GPLLICENSE-MITREADME.mdgrunt.jsjquery.ui.datepicker-ru.jsmakezippackage.json
libs
bootstrap204
css
img
js
bootstrap211
css
img
js
bootstrap221
css
img
js
jquery-ui-1.9.1.custom
css
redmond
images
ui-bg_flat_0_aaaaaa_40x100.pngui-bg_flat_55_fbec88_40x100.pngui-bg_glass_75_d0e5f5_1x400.pngui-bg_glass_85_dfeffc_1x400.pngui-bg_glass_95_fef1ec_1x400.pngui-bg_gloss-wave_55_5c9ccc_500x100.pngui-bg_inset-hard_100_f5f8f9_1x100.pngui-bg_inset-hard_100_fcfdfd_1x100.pngui-icons_217bc0_256x240.pngui-icons_2e83ff_256x240.pngui-icons_469bdd_256x240.pngui-icons_6da8d5_256x240.pngui-icons_cd0a0a_256x240.pngui-icons_d8e7f3_256x240.pngui-icons_f9bd01_256x240.png
jquery-ui-1.9.1.custom.cssjquery-ui-1.9.1.custom.min.csssmoothness
images
ui-bg_flat_0_aaaaaa_40x100.pngui-bg_flat_75_ffffff_40x100.pngui-bg_glass_55_fbf9ee_1x400.pngui-bg_glass_65_ffffff_1x400.pngui-bg_glass_75_dadada_1x400.pngui-bg_glass_75_e6e6e6_1x400.pngui-bg_glass_95_fef1ec_1x400.pngui-bg_highlight-soft_75_cccccc_1x100.pngui-icons_222222_256x240.pngui-icons_2e83ff_256x240.pngui-icons_454545_256x240.pngui-icons_888888_256x240.pngui-icons_cd0a0a_256x240.png
jquery-ui-1.9.1.custom.cssjquery-ui-1.9.1.custom.min.cssjs
jquery-ui-datepicker
jquery
mockjax
poshytip
jquery.poshytip.jsjquery.poshytip.min.jsjquery.poshytip_corrected.js
tip-darkgray
tip-green
tip-skyblue
tip-twitter
tip-violet
tip-yellow
tip-yellowsimple
qunit
src
containers
editable-container.csseditable-container.jseditable-inline.jseditable-popover.jseditable-poshytip.jseditable-tooltip.js
editable-form
editable-form-bootstrap.jseditable-form-jqueryui.jseditable-form-utils.jseditable-form.csseditable-form.js
img
element
inputs
abstract.js
date
bootstrap-datepicker.jsdate.jsdatepicker.css
dateui.jsselect.jstext.jstextarea.jslocales
bootstrap-datepicker.bg.jsbootstrap-datepicker.br.jsbootstrap-datepicker.cs.jsbootstrap-datepicker.da.jsbootstrap-datepicker.de.jsbootstrap-datepicker.es.jsbootstrap-datepicker.fi.jsbootstrap-datepicker.fr.jsbootstrap-datepicker.id.jsbootstrap-datepicker.is.jsbootstrap-datepicker.it.jsbootstrap-datepicker.ja.jsbootstrap-datepicker.kr.jsbootstrap-datepicker.lt.jsbootstrap-datepicker.lv.jsbootstrap-datepicker.ms.jsbootstrap-datepicker.nb.jsbootstrap-datepicker.nl.jsbootstrap-datepicker.pl.jsbootstrap-datepicker.pt-BR.jsbootstrap-datepicker.pt.jsbootstrap-datepicker.ru.jsbootstrap-datepicker.sl.jsbootstrap-datepicker.sv.jsbootstrap-datepicker.th.jsbootstrap-datepicker.tr.jsbootstrap-datepicker.zh-CN.jsbootstrap-datepicker.zh-TW.js
test
105
src/editable-form/editable-form-utils.js
Normal file
105
src/editable-form/editable-form-utils.js
Normal file
@ -0,0 +1,105 @@
|
||||
/**
|
||||
* EditableForm utils
|
||||
*/
|
||||
(function ($) {
|
||||
$.extend($.fn.editableform, {
|
||||
utils: {
|
||||
/**
|
||||
* classic JS inheritance function
|
||||
*/
|
||||
inherit: function (Child, Parent) {
|
||||
var F = function() { };
|
||||
F.prototype = Parent.prototype;
|
||||
Child.prototype = new F();
|
||||
Child.prototype.constructor = Child;
|
||||
Child.superclass = Parent.prototype;
|
||||
},
|
||||
|
||||
/**
|
||||
* set caret position in input
|
||||
* see http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area
|
||||
*/
|
||||
setCursorPosition: function(elem, pos) {
|
||||
if (elem.setSelectionRange) {
|
||||
elem.setSelectionRange(pos, pos);
|
||||
} else if (elem.createTextRange) {
|
||||
var range = elem.createTextRange();
|
||||
range.collapse(true);
|
||||
range.moveEnd('character', pos);
|
||||
range.moveStart('character', pos);
|
||||
range.select();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* function to parse JSON in *single* quotes. (jquery automatically parse only double quotes)
|
||||
* That allows such code as: <a data-source="{'a': 'b', 'c': 'd'}">
|
||||
* safe = true --> means no exception will be thrown
|
||||
* for details see http://stackoverflow.com/questions/7410348/how-to-set-json-format-to-html5-data-attributes-in-the-jquery
|
||||
*/
|
||||
tryParseJson: function(s, safe) {
|
||||
if (typeof s === 'string' && s.length && s.match(/^\{.*\}$/)) {
|
||||
if (safe) {
|
||||
try {
|
||||
/*jslint evil: true*/
|
||||
s = (new Function('return ' + s))();
|
||||
/*jslint evil: false*/
|
||||
} catch (e) {} finally {
|
||||
return s;
|
||||
}
|
||||
} else {
|
||||
/*jslint evil: true*/
|
||||
s = (new Function('return ' + s))();
|
||||
/*jslint evil: false*/
|
||||
}
|
||||
}
|
||||
return s;
|
||||
},
|
||||
|
||||
/**
|
||||
* slice object by specified keys
|
||||
*/
|
||||
sliceObj: function(obj, keys, caseSensitive /* default: false */) {
|
||||
var key, keyLower, newObj = {};
|
||||
|
||||
if (!$.isArray(keys) || !keys.length) {
|
||||
return newObj;
|
||||
}
|
||||
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
key = keys[i];
|
||||
if (obj.hasOwnProperty(key)) {
|
||||
newObj[key] = obj[key];
|
||||
}
|
||||
|
||||
if(caseSensitive === true) {
|
||||
continue;
|
||||
}
|
||||
|
||||
//when getting data-* attributes via $.data() it's converted to lowercase.
|
||||
//details: http://stackoverflow.com/questions/7602565/using-data-attributes-with-jquery
|
||||
//workaround is code below.
|
||||
keyLower = key.toLowerCase();
|
||||
if (obj.hasOwnProperty(keyLower)) {
|
||||
newObj[key] = obj[keyLower];
|
||||
}
|
||||
}
|
||||
|
||||
return newObj;
|
||||
},
|
||||
|
||||
/**
|
||||
* exclude complex objects from $.data() before pass to config
|
||||
*/
|
||||
getConfigData: function($element) {
|
||||
var data = {};
|
||||
$.each($element.data(), function(k, v) {
|
||||
if(typeof v !== 'object' || (v && typeof v === 'object' && v.constructor === Object)) {
|
||||
data[k] = v;
|
||||
}
|
||||
});
|
||||
return data;
|
||||
}
|
||||
}
|
||||
});
|
||||
}(window.jQuery));
|
Reference in New Issue
Block a user